| 1 30 package com.genimen.djeneric.tools.modeler.userperspective; 31 32 import java.awt.BorderLayout ; 33 import java.awt.Color ; 34 import java.awt.Dimension ; 35 import java.awt.FlowLayout ; 36 import java.awt.event.ActionEvent ; 37 import java.awt.event.ActionListener ; 38 import java.awt.event.KeyAdapter ; 39 import java.awt.event.KeyEvent ; 40 import java.awt.event.MouseEvent ; 41 import java.util.ArrayList ; 42 import java.util.Collections ; 43 import java.util.HashMap ; 44 import java.util.Iterator ; 45 46 import javax.swing.BorderFactory ; 47 import javax.swing.DefaultComboBoxModel ; 48 import javax.swing.JButton ; 49 import javax.swing.JCheckBox ; 50 import javax.swing.JComboBox ; 51 import javax.swing.JLabel ; 52 import javax.swing.JList ; 53 import javax.swing.JOptionPane ; 54 import javax.swing.JPanel ; 55 import javax.swing.JScrollPane ; 56 import javax.swing.JSplitPane ; 57 import javax.swing.JTabbedPane ; 58 import javax.swing.JTextArea ; 59 import javax.swing.JTextField ; 60 import javax.swing.JToolTip ; 61 import javax.swing.JTree ; 62 import javax.swing.border.Border ; 63 import javax.swing.border.TitledBorder ; 64 import javax.swing.event.TreeSelectionEvent ; 65 import javax.swing.tree.DefaultMutableTreeNode ; 66 import javax.swing.tree.DefaultTreeModel ; 67 import javax.swing.tree.TreeNode ; 68 import javax.swing.tree.TreePath ; 69 70 import com.genimen.djeneric.language.Messages; 71 import com.genimen.djeneric.repository.DjExtent; 72 import com.genimen.djeneric.repository.DjProperty; 73 import com.genimen.djeneric.repository.DjRelation; 74 import com.genimen.djeneric.repository.exceptions.CatalogException; 75 import com.genimen.djeneric.repository.exceptions.DjenericException; 76 import com.genimen.djeneric.repository.exceptions.ObjectNotDefinedException; 77 import com.genimen.djeneric.structure.EditorDefinition; 78 import com.genimen.djeneric.structure.EditorDefinitionComparator; 79 import com.genimen.djeneric.structure.ExtentUsage; 80 import com.genimen.djeneric.structure.RelationDescriptor; 81 import com.genimen.djeneric.structure.RelationUsage; 82 import com.genimen.djeneric.structure.ResourceDefinition; 83 import com.genimen.djeneric.structure.ResourceDefinitionComparator; 84 import com.genimen.djeneric.structure.ScriptDefinition; 85 import com.genimen.djeneric.tools.io.DjenericDocumentHandler; 86 import com.genimen.djeneric.tools.modeler.ModelEditor; 87 import com.genimen.djeneric.tools.modeler.dialogs.ExtentSelectorDialog; 88 import com.genimen.djeneric.ui.DjCloseable; 89 import com.genimen.djeneric.ui.DjMultiLineToolTip; 90 import com.genimen.djeneric.ui.DjPropertyPathCompleter; 91 import com.genimen.djeneric.ui.DjVerticalFlowLayout; 92 import com.genimen.djeneric.ui.Util; 93 import com.genimen.djeneric.util.DjLogger; 94 import com.genimen.djeneric.util.DjStringComparator; 95 96 public class ViewEditor extends JPanel implements DjCloseable 97 { 98 private static final long serialVersionUID = 1L; 99 BorderLayout borderLayout1 = new BorderLayout (); 100 JSplitPane _treeSplitter = new JSplitPane (); 101 ExtentNode _root = new ExtentNode(new ExtentUsage()); 102 DefaultTreeModel _treeModel = new DefaultTreeModel (_root); 103 ExtentNodeRenderer _treeCellRendrer = new ExtentNodeRenderer(); 104 boolean _ignoreEditorChange = false; 105 boolean _ignoreImageIconChange = false; 106 107 DefaultTreeModel _editorTreeModel; 108 109 ModelEditor _modelEditor; 110 JPanel jPanel9 = new JPanel (); 111 JScrollPane jScrollPane1 = new JScrollPane (); 112 BorderLayout borderLayout8 = new BorderLayout (); 113 JCheckBox _chkDeleteAllowed = new JCheckBox (); 114 JCheckBox _chkInsertAllowed = new JCheckBox (); 115 JPanel _pnlVisualRight = new JPanel (); 116 JCheckBox _chkEditAllowed = new JCheckBox (); 117 DjVerticalFlowLayout verticalFlowLayout2 = new DjVerticalFlowLayout(); 118 JPanel _pnlVisualLeft = new JPanel (); 119 DjVerticalFlowLayout verticalFlowLayout = new DjVerticalFlowLayout(); 120 JTree _tree = new JTree (); 121 JLabel _lblTitle = new JLabel (); 122 JTextField _edtNodeTitle = new JTextField (); 123 JLabel _lblExtent = new JLabel (); 124 JLabel _lblExtentName = new JLabel (); 125 JLabel _lblImageIcon = new JLabel (); 126 JTextField _edtDescriptor = new JTextField () 127 { 128 private static final long serialVersionUID = 1L; 129 130 public JToolTip createToolTip() 131 { 132 DjMultiLineToolTip tip = new DjMultiLineToolTip(); 133 tip.setComponent(this); 134 return tip; 135 } 136 }; 137 JLabel _lblId = new JLabel (); 138 JTextField _edtNodeId = new JTextField (); 139 JCheckBox _chkRecursive = new JCheckBox (); 140 JTabbedPane _mainTab = new JTabbedPane (); 141 JList _lstExtents = new JList (); 142 JPanel _pnlExtents = new JPanel (); 143 JButton _butStructureAdd = new JButton (); 144 JButton _butStructureDelete = new JButton (); 145 DjVerticalFlowLayout verticalFlowLayout1 = new DjVerticalFlowLayout(); 146 JButton _butStructureUp = new JButton (); 147 JPanel _pnlRightBelow = new JPanel (); 148 JPanel jPanel3 = new JPanel (); 149 JPanel _pnlButtons = new JPanel (); 150 BorderLayout borderLayout3 = new BorderLayout (); 151 BorderLayout borderLayout2 = new BorderLayout (); 152 JButton _butStructureDown = new JButton (); 153 JScrollPane _scrExtents = new JScrollPane (); 154 JCheckBox _chkHideAddedExtents = new JCheckBox (); 155 EditorEditor _pnlEditor = new EditorEditor(); 156 ArrayList _allEditors = new ArrayList (); 157 ArrayList _allScripts = new ArrayList (); 158 ArrayList _allResources = new ArrayList (); 159 BorderLayout borderLayout5 = new BorderLayout (); 160 Border border1; 161 TitledBorder titledBorder1; 162 JLabel _lblOqlWhere = new JLabel (); 163 JLabel _lblRecursive = new JLabel (); 164 JComboBox _cbbEditor = new JComboBox (); 165 JComboBox _cbbEditorTarget = new JComboBox (); 166 JLabel _lblDescriptor = new JLabel (); 167 JTextArea _edtOqlWhere = new JTextArea (); 168 ResourceManagerPanel _pnlResources = new ResourceManagerPanel(); 169 JLabel _lblEditorTarget = new JLabel (); 170 JLabel _lblEditor = new JLabel (); 171 JComboBox _cbbImageIcon = new JComboBox (); 172 ScriptEditor _pnlScripts = new ScriptEditor(); 173 boolean _isVersionSafeToSafe = true; 174 JPanel _pnlOptions = new JPanel (); 175 FlowLayout flowLayoutCheckboxes = new FlowLayout (); 176 JCheckBox _chkOnDiagramOnly = new JCheckBox (); 177 DjPropertyPathCompleter _oqlCompleter = null; 178 DjPropertyPathCompleter _descriptorCompleter = null; 179 JTabbedPane _nodeTab = new JTabbedPane (); 180 JPanel _pnlNodeVisuals = new JPanel (); 181 JPanel _pnlNodeEditing = new JPanel (); 182 JPanel _pnlNodeAdvanced = new JPanel (); 183 BorderLayout borderLayout4 = new BorderLayout (); 184 BorderLayout borderLayout6 = new BorderLayout (); 185 BorderLayout borderLayout9 = new BorderLayout (); 186 JPanel _pnlEditingLeft = new JPanel (); 187 JPanel _pnlEditingRight = new JPanel (); 188 JPanel _pnlAdvancedLeft = new JPanel (); 189 JPanel _pnlAdvancedRight = new JPanel (); 190 DjVerticalFlowLayout verticalFlowLayout3 = new DjVerticalFlowLayout(); 191 DjVerticalFlowLayout verticalFlowLayout4 = new DjVerticalFlowLayout(); 192 DjVerticalFlowLayout verticalFlowLayout5 = new DjVerticalFlowLayout(); 193 DjVerticalFlowLayout verticalFlowLayout6 = new DjVerticalFlowLayout(); 194 JLabel _lblCustomNodeClass = new JLabel (); 195 JCheckBox _chkCustomNodeClass = new JCheckBox (); 196 JLabel _lblCustomNodeClassChk = new JLabel (); 197 JTextField _edtCustomNodeClass = new JTextField (); 198 JPanel _pnlCustomNodeClass = new JPanel (); 199 BorderLayout borderLayout7 = new BorderLayout (); 200 JButton _butAddCustom = new JButton (); 201 JScrollPane jScrollPane2 = new JScrollPane (); 202 JPanel jPanel1 = new JPanel (); 203 BorderLayout borderLayout10 = new BorderLayout (); 204 205 public ViewEditor() 206 { 207 } 208 209 public ViewEditor(ModelEditor editor) 210 { 211 _modelEditor = editor; 212 213 try 214 { 215 _pnlEditor.setEditorReferences(this); 216 _pnlResources.setEditorReferences(this); 217 _pnlScripts.setEditorReferences(this); 218 jbInit(); 219 _butAddCustom.setIcon(ModelEditor.getImageIcon("addcustom.gif")); 220 _butStructureAdd.setIcon(ModelEditor.getImageIcon("add.gif")); 221 _butStructureDelete.setIcon(ModelEditor.getImageIcon("remove.gif")); 222 _butStructureUp.setIcon(ModelEditor.getImageIcon("up.gif")); 223 _butStructureDown.setIcon(ModelEditor.getImageIcon("down.gif")); 224 _tree.putClientProperty("JTree.lineStyle", "Angled"); 225 _cbbImageIcon.setRenderer(new ResourceListRenderer(false)); 226 227 _oqlCompleter = new DjPropertyPathCompleter(null, _edtOqlWhere); 228 _oqlCompleter.addStatusListener(editor); 229 230 _descriptorCompleter = new DjPropertyPathCompleter(null, _edtDescriptor); 231 _descriptorCompleter.addStatusListener(editor); 232 233 } 234 catch (Exception ex) 235 { 236 JOptionPane.showMessageDialog(this, ex.getMessage()); 237 DjLogger.log(ex); 238 } 239 } 240 241 void jbInit() throws Exception  242 { 243 flowLayoutCheckboxes.setAlignment(FlowLayout.LEFT); 244 border1 = BorderFactory.createEtchedBorder(Color.white, new Color (142, 142, 142)); 245 titledBorder1 = new TitledBorder (border1, Messages.getString("ViewEditor.NodeSettings")); 246 this.setLayout(borderLayout1); 247 jPanel9.setLayout(borderLayout8); 248 _pnlVisualRight.setLayout(verticalFlowLayout2); 249 _pnlVisualLeft.setLayout(verticalFlowLayout1); 250 _tree.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener () 251 { 252 public void valueChanged(TreeSelectionEvent e) 253 { 254 _tree_valueChanged(e); 255 } 256 }); 257 _tree.setCellRenderer(_treeCellRendrer); 258 _tree.setModel(_treeModel); 259 _tree.setShowsRootHandles(false); 260 _tree.setAutoscrolls(true); 261 _tree.setDoubleBuffered(true); 262 _tree.setToggleClickCount(0); 263 _lblTitle.setText(Messages.getString("global.Title")); 264 _edtNodeTitle.addKeyListener(new java.awt.event.KeyAdapter () 265 { 266 public void keyReleased(KeyEvent e) 267 { 268 _edtNodeTitle_keyReleased(e); 269 } 270 }); 271 _chkEditAllowed.addActionListener(new java.awt.event.ActionListener () 272 { 273 public void actionPerformed(ActionEvent e) 274 { 275 _chkEditAllowed_actionPerformed(e); 276 } 277 }); 278 _chkInsertAllowed.addActionListener(new java.awt.event.ActionListener () 279 { 280 public void actionPerformed(ActionEvent e) 281 { 282 _chkInsertAllowed_actionPerformed(e); 283 } 284 }); 285 _chkDeleteAllowed.addActionListener(new java.awt.event.ActionListener () 286 { 287 public void actionPerformed(ActionEvent e) 288 { 289 _chkDeleteAllowed_actionPerformed(e); 290 } 291 }); 292 _lblExtent.setText(Messages.getString("global.Extent")); 293 _lblRecursive.setText(Messages.getString("ViewEditor.Recursive")); 294 _chkEditAllowed.setText(Messages.getString("global.EditAllowed")); 295 _chkInsertAllowed.setText(Messages.getString("global.Insertallowed")); 296 _chkDeleteAllowed.setToolTipText(""); 297 _chkDeleteAllowed.setText(Messages.getString("global.DeleteAllowed")); 298 _lblImageIcon.setText(Messages.getString("ViewEditor.ImageIcon")); 299 _edtDescriptor.addKeyListener(new java.awt.event.KeyAdapter () 300 { 301 public void keyReleased(KeyEvent e) 302 { 303 _edtDescriptor_keyReleased(e); 304 } 305 }); 306 _edtDescriptor.setToolTipText(Messages.getString("global.Descriptor")); 307 308 _lblId.setText(Messages.getString("ViewEditor.ID")); 309 _lblId.setToolTipText(Messages.getString("ViewEditor.IDTooltip")); 310 _edtNodeId.setToolTipText(Messages.getString("ViewEditor.IDTooltip")); 311 _edtNodeId.addKeyListener(new java.awt.event.KeyAdapter () 312 { 313 public void keyReleased(KeyEvent e) 314 { 315 _edtNodeId_keyReleased(e); 316 } 317 }); 318 _chkRecursive.setText(""); 319 _lblRecursive.setToolTipText(Messages.getString("ViewEditor.RecursiveTooltip")); 320 _chkRecursive.setToolTipText(Messages.getString("ViewEditor.RecursiveTooltip")); 321 _chkRecursive.addActionListener(new java.awt.event.ActionListener () 322 { 323 public void actionPerformed(ActionEvent e) 324 { 325 _chkRecursive_actionPerformed(e); 326 } 327 }); 328 _lstExtents.addMouseListener(new java.awt.event.MouseAdapter () 329 { 330 public void mouseClicked(MouseEvent e) 331 { 332 _lstExtents_mouseClicked(e); 333 } 334 }); 335 336 _pnlExtents.setLayout(borderLayout3); 337 _butStructureAdd.setPreferredSize(new Dimension (24, 24)); 338 _butStructureAdd.addActionListener(new java.awt.event.ActionListener () 339 { 340 public void actionPerformed(ActionEvent e) 341 { 342 _butStructureAdd_actionPerformed(e); 343 } 344 }); 345 _butStructureDelete.setPreferredSize(new Dimension (24, 24)); 346 _butStructureDelete.addActionListener(new java.awt.event.ActionListener () 347 { 348 public void actionPerformed(ActionEvent e) 349 { 350 _butStructureDelete_actionPerformed(e); 351 } 352 }); 353 _butStructureUp.setPreferredSize(new Dimension (24, 24)); 354 _butStructureUp.addActionListener(new java.awt.event.ActionListener () 355 { 356 public void actionPerformed(ActionEvent e) 357 { 358 _butStructureUp_actionPerformed(e); 359 } 360 }); 361 _pnlRightBelow.setLayout(borderLayout5); 362 jPanel3.setLayout(borderLayout2); 363 _pnlButtons.setLayout(verticalFlowLayout); 364 _butStructureDown.setPreferredSize(new Dimension (24, 24)); 365 _butStructureDown.addActionListener(new java.awt.event.ActionListener () 366 { 367 public void actionPerformed(ActionEvent e) 368 { 369 _butStructureDown_actionPerformed(e); 370 } 371 }); 372 _chkHideAddedExtents.setSelected(true); 373 _chkHideAddedExtents.setText(Messages.getString("ViewEditor.HideAdded")); 374 _chkHideAddedExtents.addActionListener(new java.awt.event.ActionListener () 375 { 376 public void actionPerformed(ActionEvent e) 377 { 378 _chkHideAddedExtents_actionPerformed(e); 379 } 380 }); 381 _lblOqlWhere.setText(Messages.getString("ViewEditor.OQLWhere")); 382 _cbbEditor.setPreferredSize(new Dimension (130, 21)); 383 _cbbEditor.addActionListener(new java.awt.event.ActionListener () 384 { 385 public void actionPerformed(ActionEvent e) 386 { 387 _cbbEditor_actionPerformed(e); 388 } 389 }); 390 _cbbEditorTarget.setPreferredSize(new Dimension (130, 21)); 391 _cbbEditorTarget.addActionListener(new java.awt.event.ActionListener () 392 { 393 public void actionPerformed(ActionEvent e) 394 { 395 _cbb_cbbEditorTarget_actionPerformed(e); 396 } 397 }); 398 _lblDescriptor.setText(Messages.getString("global.Descriptor")); 399 _edtOqlWhere.addKeyListener(new java.awt.event.KeyAdapter () 400 { 401 public void keyReleased(KeyEvent e) 402 { 403 _edtQBEFilter_keyReleased(e); 404 } 405 }); 406 _edtOqlWhere.setFont(new java.awt.Font ("Monospaced", 0, 12)); 407 _edtOqlWhere.setToolTipText(Messages.getString("ViewEditor.Oql2FilterWith")); 408 409 _edtDescriptor.setFont(new java.awt.Font ("Monospaced", 0, 12)); 410 _lblEditorTarget.setText(Messages.getString("ViewEditor.EditorTarget")); 411 _lblEditor.setText(Messages.getString("ViewEditor.Editor")); 412 _cbbImageIcon.addActionListener(new java.awt.event.ActionListener () 413 { 414 public void actionPerformed(ActionEvent e) 415 { 416 _cbbImageIcon_actionPerformed(e); 417 } 418 }); 419 _cbbImageIcon.setPreferredSize(new Dimension (130, 21)); 420 _pnlOptions.setLayout(flowLayoutCheckboxes); 421 _chkOnDiagramOnly.setSelected(true); 422 _chkOnDiagramOnly.setText(Messages.getString("ViewEditor.DiagramExtentsOnly")); 423 _chkOnDiagramOnly.addActionListener(new java.awt.event.ActionListener () 424 { 425 public void actionPerformed(ActionEvent e) 426 { 427 _chkOnDiagramOnly_actionPerformed(e); 428 } 429 }); 430 _pnlNodeVisuals.setLayout(borderLayout4); 431 _pnlNodeEditing.setLayout(borderLayout6); 432 _pnlNodeAdvanced.setLayout(borderLayout9); 433 _pnlEditingLeft.setLayout(verticalFlowLayout3); 434 _pnlEditingRight.setLayout(verticalFlowLayout4); 435 _pnlAdvancedRight.setLayout(verticalFlowLayout5); 436 _pnlAdvancedLeft.setLayout(verticalFlowLayout6); 437 _lblCustomNodeClass.setText(Messages.getString("ViewEditor.CustomNodeClass")); 438 _lblCustomNodeClassChk.setText(Messages.getString("ViewEditor.HasCustomNodeClass")); 439 _edtCustomNodeClass.setFont(new java.awt.Font ("Monospaced", 0, 12)); 440 _edtCustomNodeClass.setToolTipText(Messages.getString("ViewEditor.CustomNodeClassTooltip")); 441 _edtCustomNodeClass.addKeyListener(new KeyAdapter () 442 { 443 public void keyReleased(KeyEvent e) 444 { 445 _edtCustomNodeClass_keyReleased(e); 446 } 447 }); 448 _chkCustomNodeClass.addActionListener(new ActionListener () 449 { 450 public void actionPerformed(ActionEvent e) 451 { 452 _chkCustomNodeClass_actionPerformed(e); 453 } 454 }); 455 _pnlCustomNodeClass.setLayout(borderLayout7); 456 _butAddCustom.setToolTipText(Messages.getString("ViewEditor.AddCustom")); 457 _butAddCustom.addActionListener(new ActionListener () 458 { 459 public void actionPerformed(ActionEvent e) 460 { 461 _butAddCustom_actionPerformed(e); 462 } 463 }); 464 _butAddCustom.setPreferredSize(new Dimension (24, 24)); 465 jPanel1.setLayout(borderLayout10); 466 _pnlOptions.add(_chkOnDiagramOnly, null); 467 _pnlOptions.add(_chkHideAddedExtents, null); 468 jPanel3.add(_scrExtents, BorderLayout.CENTER); 469 jPanel3.add(_pnlButtons, BorderLayout.WEST); 470 _scrExtents.getViewport().add(_lstExtents); 471 _treeSplitter.add(jPanel9, JSplitPane.LEFT); 472 jPanel9.add(jScrollPane1, BorderLayout.CENTER); 473 _treeSplitter.add(_pnlExtents, JSplitPane.RIGHT); 474 _pnlExtents.add(jPanel3, BorderLayout.CENTER); 475 jScrollPane1.getViewport().add(_tree, null); 476 jPanel3.add(_pnlRightBelow, BorderLayout.SOUTH); 477 _pnlButtons.add(_butStructureAdd); 478 _pnlButtons.add(_butAddCustom); 479 _pnlButtons.add(_butStructureDelete); 480 _pnlButtons.add(_butStructureUp); 481 _pnlButtons.add(_butStructureDown); 482 _mainTab.add(_treeSplitter, Messages.getString("ViewEditor.TreeStructure")); 483 _mainTab.add(_pnlEditor, Messages.getString("ViewEditor.Editors")); 484 _mainTab.add(_pnlResources, Messages.getString("global.Resources")); 485 _mainTab.add(_pnlScripts, Messages.getString("ViewEditor.Scripts")); 486 487 _pnlVisualLeft.add(_lblExtent, null); 488 _pnlVisualLeft.add(_lblId, null); 489 _pnlVisualLeft.add(_lblTitle, null); 490 _pnlVisualLeft.add(_lblDescriptor, null); 491 _pnlVisualLeft.add(_lblImageIcon, null); 492 _pnlVisualLeft.add(_lblRecursive, null); 493 494 _pnlVisualRight.add(_lblExtentName, null); 495 _pnlVisualRight.add(_edtNodeId, null); 496 _pnlVisualRight.add(_edtNodeTitle, null); 497 _pnlVisualRight.add(_edtDescriptor, null); 498 _pnlVisualRight.add(_cbbImageIcon, null); 499 _pnlVisualRight.add(_chkRecursive); 500 _pnlNodeVisuals.add(_pnlVisualLeft, java.awt.BorderLayout.WEST); 501 this.add(_mainTab, BorderLayout.CENTER); 502 _pnlNodeVisuals.add(_pnlVisualRight, java.awt.BorderLayout.CENTER); 503 _pnlRightBelow.add(_pnlOptions, java.awt.BorderLayout.CENTER); 504 _pnlRightBelow.add(_nodeTab, java.awt.BorderLayout.SOUTH); 505 _nodeTab.add(_pnlNodeVisuals, Messages.getString("global.General")); 506 _nodeTab.add(_pnlNodeEditing, Messages.getString("global.Editing")); 507 _nodeTab.add(_pnlNodeAdvanced, Messages.getString("global.Advanced")); 508 _pnlNodeEditing.add(_pnlEditingLeft, java.awt.BorderLayout.WEST); 509 _pnlEditingLeft.add(_lblEditorTarget); 510 _pnlEditingLeft.add(_lblEditor); 511 _pnlEditingLeft.add(_chkInsertAllowed); 512 _pnlEditingLeft.add(_chkEditAllowed); 513 _pnlNodeEditing.add(_pnlEditingRight, java.awt.BorderLayout.CENTER); 514 _pnlEditingRight.add(_cbbEditorTarget); 515 _pnlEditingRight.add(_cbbEditor); 516 _pnlEditingRight.add(_chkDeleteAllowed); 517 _pnlNodeAdvanced.add(_pnlAdvancedLeft, java.awt.BorderLayout.WEST); 518 _pnlAdvancedLeft.add(_lblCustomNodeClassChk); 519 _pnlAdvancedLeft.add(_lblOqlWhere, null); 520 _pnlAdvancedRight.add(_pnlCustomNodeClass); 521 _pnlCustomNodeClass.add(_chkCustomNodeClass, java.awt.BorderLayout.WEST); 522 _pnlCustomNodeClass.add(_edtCustomNodeClass, java.awt.BorderLayout.CENTER); 523 jScrollPane2.getViewport().add(_edtOqlWhere); 524 _pnlNodeAdvanced.add(jPanel1, java.awt.BorderLayout.CENTER); 525 jPanel1.add(_pnlAdvancedRight, java.awt.BorderLayout.NORTH); 526 jPanel1.add(jScrollPane2, java.awt.BorderLayout.CENTER); 527 _treeSplitter.setDividerLocation(350); 528 _root.setTree(_tree); 529 _root.setModel(_treeModel); 530 Util.sizeLabels(_pnlVisualLeft); 531 Util.sizeLabels(_pnlVisualRight); 532 Util.sizeLabels(_pnlEditingLeft); 533 Util.sizeLabels(_pnlEditingRight); 534 Util.sizeLabels(_pnlAdvancedRight); 535 Util.sizeLabels(_pnlAdvancedLeft); 536 } 537 538 public ExtentNode[] getSelectedNodes() 539 { 540 if (_tree.getSelectionPath() == null) return new ExtentNode[0]; 541 ArrayList result = new ArrayList (10); 542 543 TreePath [] tp = _tree.getSelectionPaths(); 544 545 for (int qq = 0; qq < tp.length; qq++) 546 { 547 DefaultMutableTreeNode node = (DefaultMutableTreeNode ) (tp[qq].getLastPathComponent()); 548 if (node instanceof ExtentNode) result.add(node); 549 } 550 return (ExtentNode[]) result.toArray(new ExtentNode[0]); 551 } 552 553 void enableEditors(boolean b) 554 { 555 _edtNodeTitle.setEnabled(b); 556 _edtOqlWhere.setEnabled(b); 557 _edtDescriptor.setEnabled(b); 558 _chkDeleteAllowed.setEnabled(b); 559 _chkEditAllowed.setEnabled(b); 560 _chkInsertAllowed.setEnabled(b); 561 _chkRecursive.setEnabled(b); 562 _cbbEditor.setEnabled(b); 563 _cbbEditorTarget.setEnabled(b); 564 _cbbImageIcon.setEnabled(b); 565 _chkCustomNodeClass.setEnabled(b); 566 _edtCustomNodeClass.setEnabled(b && _chkCustomNodeClass.isSelected()); 567 } 568 569 void _tree_valueChanged(TreeSelectionEvent e) 570 { 571 updateSelectedNodeData(); 572 } 573 574 public void load(DjenericDocumentHandler dh) throws DjenericException 575 { 576 clear(); 577 ExtentUsage[] usages = dh.getTreeStructure(_modelEditor.getPersistenceManager()); 578 for (int i = 0; i < usages.length; i++) 579 { 580 ExtentNode aRoot = createRootExtent(usages[i].getExtent()); 581 createSubTree(aRoot, usages[i], new HashMap (), 0); 582 } 583 584 EditorDefinition[] editors = dh.getEditors(_modelEditor.getPersistenceManager()); 585 586 for (int i = 0; i < editors.length; i++) 587 { 588 _allEditors.add(editors[i]); 589 } 590 sortEditors(); 591 592 ResourceDefinition[] resources = dh.getResources(); 593 594 for (int i = 0; i < resources.length; i++) 595 { 596 _allResources.add(resources[i]); 597 } 598 599 sortResources(); 600 601 ScriptDefinition[] scripts = dh.getScripts(_modelEditor); 602 603 for (int i = 0; i < scripts.length; i++) 604 { 605 _allScripts.add(scripts[i]); 606 } 607 608 synchronize(); 609 610 _isVersionSafeToSafe = dh.isVersionSafeToSave(); 611 } 612 613 public boolean isVersionSafeToSave() 614 { 615 return _isVersionSafeToSafe; 616 } 617 618 public EditorDefinition[] getEditors() 619 { 620 return (EditorDefinition[]) _allEditors.toArray(new EditorDefinition[0]); 621 } 622 623 public EditorDefinition getEditorByName(String name) 624 { 625 for (int i = |