1
- /* eslint no-warning-comments: "off" */
2
-
3
1
qx . Class . define ( "qxapp.component.widget.TreeTool" , {
4
2
extend : qx . ui . core . Widget ,
5
3
6
4
construct : function ( projectName , workbenchModel ) {
7
5
this . base ( arguments ) ;
8
6
9
- let treeLayout = new qx . ui . layout . VBox ( 10 ) ;
10
- this . _setLayout ( treeLayout ) ;
11
-
12
7
this . set ( {
13
8
projectName : projectName ,
14
9
workbenchModel : workbenchModel
15
10
} ) ;
16
11
17
- this . __buildLayout ( ) ;
18
- this . buildTree ( ) ;
12
+ this . _setLayout ( new qx . ui . layout . VBox ( ) ) ;
13
+
14
+ this . __tree = this . _createChildControlImpl ( "tree" ) ;
15
+ this . populateTree ( ) ;
19
16
20
17
this . addListener ( "keypress" , function ( keyEvent ) {
21
18
if ( keyEvent . getKeyIdentifier ( ) === "F2" ) {
22
- let treeSelection = this . __tree . getSelection ( ) ;
23
- if ( treeSelection . length < 1 ) {
24
- return ;
25
- }
26
- let selectedItem = treeSelection . toArray ( ) [ 0 ] ;
27
- const selectedNodeId = selectedItem . getNodeId ( ) ;
28
- if ( selectedNodeId === "root" ) {
29
- return ;
30
- }
31
-
32
- let treeItemRenamer = new qxapp . component . widget . TreeItemRenamer ( selectedItem ) ;
33
- treeItemRenamer . addListener ( "LabelChanged" , e => {
34
- const data = e . getData ( ) ;
35
- const newLabel = data . newLabel ;
36
- const nodeId = selectedItem . getNodeId ( ) ;
37
- let nodeModel = this . getWorkbenchModel ( ) . getNodeModel ( nodeId ) ;
38
- nodeModel . setLabel ( newLabel ) ;
39
- } , this ) ;
40
- const bounds = this . getLayoutParent ( ) . getBounds ( ) ;
41
- treeItemRenamer . moveTo ( bounds . left + 100 , bounds . top + 150 ) ;
42
- treeItemRenamer . open ( ) ;
19
+ this . __renameItem ( ) ;
43
20
}
44
21
} , this ) ;
45
22
} ,
@@ -62,27 +39,36 @@ qx.Class.define("qxapp.component.widget.TreeTool", {
62
39
members : {
63
40
__tree : null ,
64
41
65
- __buildLayout : function ( ) {
66
- let tree = this . __tree = new qx . ui . tree . VirtualTree ( null , "label" , "children" ) . set ( {
67
- openMode : "none"
68
- } ) ;
42
+ _createChildControlImpl : function ( id ) {
43
+ let control ;
44
+ switch ( id ) {
45
+ case "tree" :
46
+ control = this . __buildTree ( ) ;
47
+ this . _add ( control , {
48
+ flex : 1
49
+ } ) ;
50
+ break ;
51
+ }
69
52
70
- this . _removeAll ( ) ;
71
- this . _add ( tree , {
72
- flex : 1
73
- } ) ;
53
+ return control || this . base ( arguments , id ) ;
54
+ } ,
74
55
75
- this . __tree . addListener ( "dblclick" , e => {
56
+ __buildTree : function ( ) {
57
+ let tree = new qx . ui . tree . VirtualTree ( null , "label" , "children" ) . set ( {
58
+ openMode : "none"
59
+ } ) ;
60
+ tree . addListener ( "dblclick" , e => {
76
61
let selection = this . __tree . getSelection ( ) ;
77
62
let currentSelection = selection . toArray ( ) ;
78
63
if ( currentSelection . length > 0 ) {
79
64
let selectedRow = currentSelection [ 0 ] ;
80
65
this . fireDataEvent ( "NodeDoubleClicked" , selectedRow . getNodeId ( ) ) ;
81
66
}
82
67
} , this ) ;
68
+ return tree ;
83
69
} ,
84
70
85
- buildTree : function ( ) {
71
+ populateTree : function ( ) {
86
72
const topLevelNodes = this . getWorkbenchModel ( ) . getNodeModels ( ) ;
87
73
let data = {
88
74
label : this . getProjectName ( ) ,
@@ -137,6 +123,40 @@ qx.Class.define("qxapp.component.widget.TreeTool", {
137
123
return null ;
138
124
} ,
139
125
126
+ __getSelection : function ( ) {
127
+ let treeSelection = this . __tree . getSelection ( ) ;
128
+ if ( treeSelection . length < 1 ) {
129
+ return null ;
130
+ }
131
+
132
+ let selectedItem = treeSelection . toArray ( ) [ 0 ] ;
133
+ const selectedNodeId = selectedItem . getNodeId ( ) ;
134
+ if ( selectedNodeId === "root" ) {
135
+ return null ;
136
+ }
137
+
138
+ return selectedItem ;
139
+ } ,
140
+
141
+ __renameItem : function ( ) {
142
+ let selectedItem = this . __getSelection ( ) ;
143
+ if ( selectedItem === null ) {
144
+ return ;
145
+ }
146
+
147
+ let treeItemRenamer = new qxapp . component . widget . TreeItemRenamer ( selectedItem ) ;
148
+ treeItemRenamer . addListener ( "LabelChanged" , e => {
149
+ const data = e . getData ( ) ;
150
+ const newLabel = data . newLabel ;
151
+ const nodeId = selectedItem . getNodeId ( ) ;
152
+ let nodeModel = this . getWorkbenchModel ( ) . getNodeModel ( nodeId ) ;
153
+ nodeModel . setLabel ( newLabel ) ;
154
+ } , this ) ;
155
+ const bounds = this . getLayoutParent ( ) . getBounds ( ) ;
156
+ treeItemRenamer . moveTo ( bounds . left + 100 , bounds . top + 150 ) ;
157
+ treeItemRenamer . open ( ) ;
158
+ } ,
159
+
140
160
nodeSelected : function ( nodeId ) {
141
161
const dataModel = this . __tree . getModel ( ) ;
142
162
let nodeInTree = this . __getNodeInTree ( dataModel , nodeId ) ;
0 commit comments