Commit c925ea6f551b7ee5be3c65928c4a5e1c2988c52f

  • avatar
  • Sergey 'Jin' Bostandzhyan <jin @deve…per.digitalstrom.org>
  • Thu Jul 29 16:57:20 CEST 2010
Improved selection handling after refresh
dss-setup-interface/dSS/ScenesPanel.js
(36 / 5)
  
3939
4040 var treeHolder = new Ext.Panel(
4141 {
42 title: "System",
42 title: _("Scenes"),
4343 region: 'west',
4444 layout: 'fit',
4545 split: true,
6868 this.updateTree();
6969 dSS.data.Loader.getZoneStore().addListener('datachanged',
7070 this.updateTree,
71 this);
71 this,
72 { buffer: 1000 });
7273 },
7374 this
7475 );
186186 ];
187187 }
188188
189 var selModel = this.treePanel.getSelectionModel();
190 var selectedNode = selModel.getSelectedNode();
191 var selectedPath = '';
192 if (selectedNode != null) {
193 selectedPath = selectedNode.getPath();
194 }
195
189196 var zStore = dSS.data.Loader.getZoneStore();
190197 var devStore = dSS.data.Loader.getDeviceStore();
191198 var nodes = [];
214214 this
215215 );
216216 var root = new Ext.tree.AsyncTreeNode({ children: nodes, id: 'root', leaf: false });
217 this.treePanel.setRootNode(root);
217 this.treePanel.setRootNode(root);
218
219 if (selectedPath.length > 0) {
220 this.treePanel.selectPath(selectedPath, null,
221 function(result, node) {
222 if (result === false) {
223 if (root.firstChild != null) {
224 root.firstChild.select();
225 }
226 }
227 });
228 } else {
229 if (root.firstChild != null) {
230 root.firstChild.select();
231 }
232 }
233
234 if (selModel.getSelectedNode() != null) {
235 this.handleNodeClick(selModel.getSelectedNode());
236 }
237
218238 },
219239 handleNodeClick: function(node) {
220 var store = dSS.data.Loader.getDeviceStore();
221 store.clearFilter();
240 if (!this.isVisible()) {
241 return;
242 }
222243
223244 if (node === null) {
224245 return;
251251 return;
252252 }
253253
254 var store = dSS.data.Loader.getDeviceStore();
255 store.clearFilter();
254256 store.filterBy(function(record) {
255257 if (record.get('zoneId') === parseInt(path[1])) {
256258 if (path.length == 2) {