/[classpath]/classpath/javax/swing/plaf/metal/MetalTreeUI.java
ViewVC logotype

Diff of /classpath/javax/swing/plaf/metal/MetalTreeUI.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1.2.4 by gnu_andrew, Tue Sep 20 18:46:34 2005 UTC revision 1.1.2.5 by gnu_andrew, Wed Nov 2 00:44:01 2005 UTC
# Line 44  import java.awt.Rectangle; Line 44  import java.awt.Rectangle;
44  import java.awt.event.ComponentListener;  import java.awt.event.ComponentListener;
45  import java.awt.event.FocusListener;  import java.awt.event.FocusListener;
46  import java.awt.event.KeyListener;  import java.awt.event.KeyListener;
47    import java.awt.event.MouseListener;
48  import java.beans.PropertyChangeListener;  import java.beans.PropertyChangeListener;
 import java.util.HashMap;  
49  import java.util.Hashtable;  import java.util.Hashtable;
50    
51  import javax.swing.JComponent;  import javax.swing.JComponent;
# Line 56  import javax.swing.tree.TreeCellEditor; Line 56  import javax.swing.tree.TreeCellEditor;
56  import javax.swing.tree.TreeModel;  import javax.swing.tree.TreeModel;
57  import javax.swing.tree.TreePath;  import javax.swing.tree.TreePath;
58  import javax.swing.event.CellEditorListener;  import javax.swing.event.CellEditorListener;
 import javax.swing.event.MouseInputListener;  
59  import javax.swing.event.TreeExpansionListener;  import javax.swing.event.TreeExpansionListener;
60  import javax.swing.event.TreeModelListener;  import javax.swing.event.TreeModelListener;
61  import javax.swing.event.TreeSelectionListener;  import javax.swing.event.TreeSelectionListener;
   
62  import javax.swing.plaf.ComponentUI;  import javax.swing.plaf.ComponentUI;
63  import javax.swing.plaf.basic.BasicTreeUI;  import javax.swing.plaf.basic.BasicTreeUI;
64    
65  public class MetalTreeUI  /**
66    extends BasicTreeUI   * A UI delegate for the {@link JTree} component.
67     */
68    public class MetalTreeUI extends BasicTreeUI
69  {  {
70    
71    /** Listeners */    /** Listeners */
72    private PropertyChangeListener propertyChangeListener;    private PropertyChangeListener propertyChangeListener;
73    private FocusListener focusListener;    private FocusListener focusListener;
74    private TreeSelectionListener treeSelectionListener;    private TreeSelectionListener treeSelectionListener;
75    private MouseInputListener mouseInputListener;    private MouseListener mouseListener;
76    private KeyListener keyListener;    private KeyListener keyListener;
77    private PropertyChangeListener selectionModelPropertyChangeListener;    private PropertyChangeListener selectionModelPropertyChangeListener;
78    private ComponentListener componentListener;    private ComponentListener componentListener;
# Line 80  public class MetalTreeUI Line 80  public class MetalTreeUI
80    private TreeExpansionListener treeExpansionListener;    private TreeExpansionListener treeExpansionListener;
81    private TreeModelListener treeModelListener;    private TreeModelListener treeModelListener;
82            
   /** The UI instances for MetalTreeUIs */  
   private static HashMap instances = null;  
   
83    /**    /**
84     * Constructs a new instance of MetalTreeUI.     * Constructs a new instance of <code>MetalTreeUI</code>.
85     */     */
86    public MetalTreeUI()    public MetalTreeUI()
87    {    {
# Line 92  public class MetalTreeUI Line 89  public class MetalTreeUI
89    }    }
90    
91    /**    /**
92     * Returns an instance of MetalTreeUI.     * Returns a new instance of <code>MetalTreeUI</code>.
93     *     *
94     * @param component the component for which we return an UI instance     * @param component the component for which we return an UI instance
95     *     *
96     * @return an instance of MetalTreeUI     * @return A new instance of <code>MetalTreeUI</code>.
97     */     */
98    public static ComponentUI createUI(JComponent component)    public static ComponentUI createUI(JComponent component)
99    {    {
100      if (instances == null)      return new MetalTreeUI();
       instances = new HashMap();  
   
     Object o = instances.get(component);  
     MetalTreeUI instance;  
     if (o == null)  
       {  
         instance = new MetalTreeUI();  
         instances.put(component, instance);  
       }  
     else  
       instance = (MetalTreeUI) o;  
   
     return instance;  
101    }    }
102        
103    /**    /**
# Line 156  public class MetalTreeUI Line 140  public class MetalTreeUI
140      rightChildIndent = defaults.getInt("Tree.rightChildIndent");      rightChildIndent = defaults.getInt("Tree.rightChildIndent");
141      leftChildIndent = defaults.getInt("Tree.leftChildIndent");      leftChildIndent = defaults.getInt("Tree.leftChildIndent");
142      setRowHeight(defaults.getInt("Tree.rowHeight"));      setRowHeight(defaults.getInt("Tree.rowHeight"));
143        tree.setRowHeight(defaults.getInt("Tree.rowHeight"));
144      tree.requestFocusInWindow(false);      tree.requestFocusInWindow(false);
145            
146      setExpandedIcon(defaults.getIcon("Tree.expandedIcon"));      setExpandedIcon(defaults.getIcon("Tree.expandedIcon"));
# Line 168  public class MetalTreeUI Line 153  public class MetalTreeUI
153      createdCellEditor = true;      createdCellEditor = true;
154      TreeModel mod = tree.getModel();      TreeModel mod = tree.getModel();
155      setModel(mod);      setModel(mod);
156      tree.setRootVisible(true);  
     if (mod != null)  
       tree.expandPath(new TreePath(mod.getRoot()));  
157      treeSelectionModel = tree.getSelectionModel();      treeSelectionModel = tree.getSelectionModel();
158      drawingCache = new Hashtable();      drawingCache = new Hashtable();
159      nodeDimensions = createNodeDimensions();      nodeDimensions = createNodeDimensions();
# Line 178  public class MetalTreeUI Line 161  public class MetalTreeUI
161      propertyChangeListener = createPropertyChangeListener();      propertyChangeListener = createPropertyChangeListener();
162      focusListener = createFocusListener();      focusListener = createFocusListener();
163      treeSelectionListener = createTreeSelectionListener();      treeSelectionListener = createTreeSelectionListener();
164      mouseInputListener = new MouseInputHandler(null, null, null);      mouseListener = createMouseListener();
165      keyListener = createKeyListener();      keyListener = createKeyListener();
166      selectionModelPropertyChangeListener = createSelectionModelPropertyChangeListener();      selectionModelPropertyChangeListener = createSelectionModelPropertyChangeListener();
167      componentListener = createComponentListener();      componentListener = createComponentListener();
# Line 194  public class MetalTreeUI Line 177  public class MetalTreeUI
177      tree.addPropertyChangeListener(propertyChangeListener);      tree.addPropertyChangeListener(propertyChangeListener);
178      tree.addFocusListener(focusListener);      tree.addFocusListener(focusListener);
179      tree.addTreeSelectionListener(treeSelectionListener);      tree.addTreeSelectionListener(treeSelectionListener);
180      tree.addMouseListener(mouseInputListener);      tree.addMouseListener(mouseListener);
181      tree.addKeyListener(keyListener);      tree.addKeyListener(keyListener);
182      tree.addPropertyChangeListener(selectionModelPropertyChangeListener);      tree.addPropertyChangeListener(selectionModelPropertyChangeListener);
183      tree.addComponentListener(componentListener);      tree.addComponentListener(componentListener);
# Line 202  public class MetalTreeUI Line 185  public class MetalTreeUI
185      if (treeModel != null)      if (treeModel != null)
186        treeModel.addTreeModelListener(treeModelListener);        treeModel.addTreeModelListener(treeModelListener);
187            
188        if (mod != null)
189          {
190            TreePath path = new TreePath(mod.getRoot());
191            if (!tree.isExpanded(path))
192              toggleExpandState(path);
193          }
194        
195      completeUIInstall();      completeUIInstall();
196    }    }
197        
# Line 231  public class MetalTreeUI Line 221  public class MetalTreeUI
221      tree.removePropertyChangeListener(propertyChangeListener);      tree.removePropertyChangeListener(propertyChangeListener);
222      tree.removeFocusListener(focusListener);      tree.removeFocusListener(focusListener);
223      tree.removeTreeSelectionListener(treeSelectionListener);      tree.removeTreeSelectionListener(treeSelectionListener);
224      tree.removeMouseListener(mouseInputListener);      tree.removeMouseListener(mouseListener);
225      tree.removeKeyListener(keyListener);      tree.removeKeyListener(keyListener);
226      tree.removePropertyChangeListener(selectionModelPropertyChangeListener);      tree.removePropertyChangeListener(selectionModelPropertyChangeListener);
227      tree.removeComponentListener(componentListener);      tree.removeComponentListener(componentListener);

Legend:
Removed from v.1.1.2.4  
changed lines
  Added in v.1.1.2.5

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26