View Javadoc
1 package com.bonevich.erj.ui; 2 3 import com.bonevich.erj.model.*; 4 import com.bonevich.erj.ui.editor.IdentifierTextField; 5 6 import java.awt.*; 7 import java.awt.event.ActionEvent; 8 import java.awt.event.ActionListener; 9 10 import javax.swing.*; 11 import javax.swing.tree.TreeCellEditor; 12 import javax.swing.tree.TreeCellRenderer; 13 14 import java.util.EventObject; 15 16 /*** 17 * 18 * @author Jeffrey Bonevich <bonevich@telocity.com> 19 * @version $Id: ErjTreeCellEditor.html,v 1.1 2009/03/07 17:55:33 jbonevic Exp $ 20 */ 21 public class ErjTreeCellEditor 22 extends DefaultCellEditor //AbstractCellEditor implements TreeCellEditor 23 { 24 private ErjTreeNode _nodeEditing; 25 private TreeCellRenderer _renderer; 26 private JTextField _editor; 27 private JPanel _panel = new JPanel(); 28 private JLabel _icon = new JLabel(); 29 private Component _strut = Box.createHorizontalStrut(5); 30 31 public ErjTreeCellEditor(ErjTreeCellRenderer renderer) 32 { 33 super(new IdentifierTextField()); 34 _renderer = renderer; 35 _editor = (JTextField)editorComponent; 36 initComponents(); 37 addListeners(); 38 } 39 40 private void initComponents() 41 { 42 _panel.setLayout(new FlowLayout(FlowLayout.CENTER,0,0)); 43 _panel.add(_icon); 44 _panel.add(_strut); 45 _panel.add(_editor); 46 47 _editor.setOpaque(false); 48 _panel.setOpaque(false); 49 _icon.setOpaque(false); 50 } 51 52 private void addListeners() 53 { 54 _editor.addActionListener( 55 new ActionListener() 56 { 57 public void actionPerformed(ActionEvent e) 58 { 59 //System.err.println("edited " + _nodeEditing); 60 ModelElement elt = (ModelElement)_nodeEditing.getUserObject(); 61 String newId = _editor.getText(); 62 elt.setIdentifier(newId); 63 if (!elt.isNameInitialized()) 64 { 65 elt.setName(newId); 66 } 67 ErjFrame.getInstance().getApplication().getCurrentProject().markAsModified(); 68 } 69 } 70 ); 71 } 72 73 public Component getTreeCellEditorComponent( 74 JTree tree, Object value, 75 boolean selected, boolean expanded, 76 boolean leaf, int row 77 ) 78 { 79 _nodeEditing = (ErjTreeNode) value; 80 81 ModelElement elt = (ModelElement)_nodeEditing.getUserObject(); 82 _editor.setText(elt.getIdentifier()); 83 _editor.selectAll(); 84 85 JLabel label = (JLabel)_renderer.getTreeCellRendererComponent( 86 tree, value, selected, expanded, leaf, row, true 87 ); 88 _icon.setIcon(label.getIcon()); 89 90 return _panel; 91 } 92 93 public Object getCellEditorValue() 94 { 95 return _nodeEditing.getUserObject(); 96 } 97 98 } /*** end class ErjTreeCellEditor */

This page was automatically generated by Maven