source: ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/editor/ValueSchemeEnumerationGrid.mxml @ 238

Last change on this file since 238 was 238, checked in by patdui, 14 years ago
File size: 2.4 KB
Line 
1<?xml version="1.0" encoding="utf-8"?>
2<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml">
3        <mx:Script>
4                <![CDATA[
5                        import mx.events.DataGridEventReason;
6                        import clarin.cmdi.componentregistry.common.ComponentMD;
7                        import mx.collections.XMLListCollection;
8                        import mx.controls.TextInput;
9                        import mx.events.DataGridEvent;
10                        import mx.collections.ArrayCollection;
11                        import mx.managers.PopUpManager;
12
13                        private static const ADD_ROW:String = "Click to add a row";
14
15                        [Bindable]
16                        public var valueSchemeEnumeration:ArrayCollection = new ArrayCollection([{item: ADD_ROW, conceptLink: "", appInfo: ""}]);
17
18
19                        private function editEnd(e:DataGridEvent):void {
20                                if (e.rowIndex == valueSchemeEnumeration.length - 1 && e.columnIndex == 0 && e.reason != DataGridEventReason.CANCELLED) {
21                                        var row:Object = valueSchemeEnumeration.getItemAt(valueSchemeEnumeration.length - 1);
22                                        var input:Object = TextInput(e.currentTarget.itemEditorInstance);
23                                        if (row.item == ADD_ROW && input.text != ADD_ROW) {
24                                                valueSchemeEnumeration.addItem({item: ADD_ROW, conceptLink: "", appInfo: ""});
25                                                //scroll down
26                                                dataGrid.validateNow();
27                                                dataGrid.selectedIndex = valueSchemeEnumeration.length - 1;
28                                                dataGrid.scrollToIndex(valueSchemeEnumeration.length);
29                                        }
30                                }
31                        }
32
33                        private function checkEdit(event:DataGridEvent):void {
34                                // Do not allow editing of "Add row" row except for "Click to Add" column
35                                if (event.rowIndex == valueSchemeEnumeration.length - 1 && event.columnIndex != 0)
36                                        event.preventDefault();
37                        }
38
39                        private function handleKeyUp(event:KeyboardEvent):void {
40                                if (event.keyCode == Keyboard.DELETE) {
41                                        var indices:Array = dataGrid.selectedIndices;
42                                        for each (var index:int in indices) {
43                                                if (index != valueSchemeEnumeration.length - 1) { //Don't delete last row
44                                                        valueSchemeEnumeration.removeItemAt(index);
45                                                }
46                                        }
47                                        dataGrid.validateNow();
48                                }
49                        }
50                ]]>
51        </mx:Script>
52
53        <mx:DataGrid id="dataGrid"
54                                 editable="true"
55                                 doubleClickEnabled="true"
56                                 sortableColumns="false"
57                                 dataProvider="{valueSchemeEnumeration}"
58                                 itemEditEnd="editEnd(event)"
59                                 itemEditBeginning="checkEdit(event)"
60                                 allowMultipleSelection="true"
61                                 keyUp="handleKeyUp(event)">
62                <mx:columns>
63                        <mx:DataGridColumn dataField="item"/>
64                        <mx:DataGridColumn dataField="conceptLink"/>
65                        <mx:DataGridColumn dataField="appInfo"/>
66                </mx:columns>
67        </mx:DataGrid>
68</mx:VBox>
Note: See TracBrowser for help on using the repository browser.