source: ComponentRegistry/branches/ComponentRegistry-1.13.0-olha/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/browser/BrowserOverviewList.mxml @ 2313

Last change on this file since 2313 was 2313, checked in by olhsha, 12 years ago

context menu created, but does not show link because I need to make a pop-up window to show this link

File size: 5.5 KB
Line 
1<?xml version="1.0" encoding="utf-8"?>
2
3<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"
4                 xmlns:comp="clarin.cmdi.componentregistry.common.components.*"
5                 xmlns:common="clarin.cmdi.componentregistry.common.*"
6                 xmlns:rictus="com.rictus.controls.*"
7                 creationComplete="scrollToSelected()">
8
9        <mx:Metadata>
10                [Event(name="browserItemSelected",type="clarin.cmdi.componentregistry.browser.BrowserSelectionEvent")]
11                [Event(name="createNew", type="clarin.cmdi.componentregistry.browser.CreateNewComponentEvent")]
12        </mx:Metadata>
13
14        <mx:Array id="browserColumns"/>
15       
16        <mx:Script>
17                <![CDATA[
18                        import clarin.cmdi.componentregistry.common.components.RssContextMenu;
19                        import clarin.cmdi.componentregistry.common.ItemDescription;
20                        import clarin.cmdi.componentregistry.common.components.BrowseContextMenu;
21                        import clarin.cmdi.componentregistry.common.components.RegistryViewStack;
22                        import clarin.cmdi.componentregistry.services.Config;
23                       
24                        import mx.collections.ArrayCollection;
25                        import mx.controls.Text;
26                       
27                        private var defaultColor:Object;
28                        private var currentSelectedItem:ItemDescription;
29                        [Bindable]
30                        private var menu:BrowseContextMenu;
31                       
32                        [Bindable]
33                        public var rssLinkMenu:RssContextMenu;
34
35                        private var _itemToScrollTo:ItemDescription;
36                       
37                        //[Bindable]
38                        //public var rssUri:String;
39                       
40                        [Bindable]
41                        public var viewStack:RegistryViewStack;
42                       
43                        [Bindable]
44                        public var buttonsEnabled:Boolean = true;
45                       
46                        [Bindable]
47                        public var spaceSwitchEnabled:Boolean = false;
48                       
49                        public function set browserDataProvider(dataProvider:ArrayCollection):void {
50                                if (dataProvider) {
51                                        var data:ArrayCollection = new ArrayCollection(dataProvider.toArray().slice());
52                                        this.dataGrid.dataProvider = data
53                                        dataGrid.doFiltering();
54                                        scrollToSelected();
55                                }
56                        }
57
58                        private function dispatchBrowserSelectionEvent():void {
59                                if (this.dataGrid.selectedItem != null) {
60                                        var item:ItemDescription = dataGrid.selectedItem as ItemDescription
61                                        if (currentSelectedItem == null || currentSelectedItem.id != item.id) { //Only update when the item selected is different.
62                                                currentSelectedItem = item;
63                                                var event:BrowserSelectionEvent = new BrowserSelectionEvent(item);
64                                                dispatchEvent(event);
65                                        }
66                                }
67                        }
68
69                        public function set itemToScrollTo(itemToScrollTo:ItemDescription):void {
70                                _itemToScrollTo = itemToScrollTo;
71                                scrollToSelected();
72                        }
73
74                        private function scrollToSelected():void {
75                                if (_itemToScrollTo && dataGrid.dataProvider) {
76                                        for (var i:int; i < dataGrid.dataProvider.length; i++) {
77                                                var item:ItemDescription = dataGrid.dataProvider.getItemAt(i) as ItemDescription;
78                                                if (item.id == _itemToScrollTo.id) {
79                                                        dataGrid.selectedItem = item;
80                                                        dispatchBrowserSelectionEvent();
81                                                        dataGrid.setFocus();
82                                                        dataGrid.scrollToIndex(i);
83                                                        break;
84                                                }
85                                        }
86                                }
87                        }
88
89                        public function set browseMenu(browseMenu:BrowseContextMenu):void {
90                                this.menu = browseMenu;
91                                menu.dataGrid = dataGrid;
92                        }
93
94                        private function handleKeyUp(event:KeyboardEvent):void {
95                                if (event.keyCode == Keyboard.DELETE) {
96                                        menu.deleteSelectedItems();
97                                }
98                        }
99                       
100                        private function editItem():void {
101                                var item:ItemDescription = dataGrid.selectedItem as ItemDescription;
102                                viewStack.switchToEditor(item);
103                        }
104                       
105                        private function importItem():void{
106                                viewStack.switchToImport();
107                        }
108                       
109                        private function dispatchCreateNewEvent():void{
110                                dispatchEvent(new CreateNewComponentEvent());
111                        }
112                       
113                       
114                       
115                ]]>
116        </mx:Script>
117       
118        <mx:VBox id="linkToFeed"
119                         contextMenu="{rssLinkMenu.cm}"
120                         >
121                <mx:Label text ="Feed"/>
122                <comp:LinkRenderer text = "{rssLinkMenu.rssUri}" />
123        </mx:VBox>
124       
125       
126       
127        <mx:HBox paddingLeft="5"
128                         paddingRight="5"
129                         width="100%">
130               
131                <mx:Box paddingTop="5" paddingLeft="5"
132                                visible="{spaceSwitchEnabled}"
133                                includeInLayout="{spaceSwitchEnabled}">
134                        <comp:SpaceSwitch id="userSpaceCB" />
135                </mx:Box>
136               
137                <mx:HBox horizontalAlign="left"
138                                 verticalAlign="middle"
139                                 width="70%"
140                                 visible="{buttonsEnabled}">
141                       
142                       
143                        <mx:Button label="Create new"
144                                           toolTip="Create a new item in the private workspace"
145                                           click="dispatchCreateNewEvent()"
146                                           />
147                        <mx:Button label="Edit"
148                                           toolTip="Edit the selected item in the editor"
149                                           visible="{Config.instance.userSpace}"
150                                           includeInLayout="{Config.instance.userSpace}"
151                                           enabled="{Config.instance.userSpace &amp;&amp; dataGrid.selectedItem != null}"
152                                           click="editItem()" />
153                        <mx:Button label="Edit as new"
154                                           toolTip="Edit the selected item as a new item in the private workspace"
155                                           visible="{!Config.instance.userSpace}"
156                                           includeInLayout="{!Config.instance.userSpace}"
157                                           enabled="{!Config.instance.userSpace &amp;&amp; dataGrid.selectedItem != null}"
158                                           click="editItem()" />
159                        <mx:Button label="Import"
160                                           toolTip="Import an item from a local file"
161                                           click="importItem()" />
162                </mx:HBox>
163               
164                <mx:HBox horizontalAlign="right"
165                                 verticalAlign="middle"
166                                 width="30%">
167       
168                        <rictus:SearchBox id="searchBox"
169                                                          label="filter..."/>
170                        <mx:Label text="Showing {dataGrid.dataProvider.length} of {dataGrid.unfilteredLength}"/>
171                </mx:HBox>
172        </mx:HBox>
173
174        <comp:FilteringDataGrid id="dataGrid"
175                                                        x="0"
176                                                        y="112"
177                                                        width="100%"
178                                                        height="100%"
179                                                        click="dispatchBrowserSelectionEvent()"
180                                                        columns="{browserColumns}"
181                                                        contextMenu="{menu.cm}"
182                                                        allowMultipleSelection="true"
183                                                        searchInput="{searchBox}"
184                                                        keyUp="handleKeyUp(event)"
185                                                        useRollOver="false"
186                                                        showDataTips="true">
187        </comp:FilteringDataGrid>
188</mx:VBox>
Note: See TracBrowser for help on using the repository browser.