PatchSet 6714 
Date: 2005/07/07 23:17:20
Author: robilad
Branch: HEAD
Tag: (none) 
Log:
Resynced with GNU Classpath: swing and http fixes

2005-07-08  Dalibor Topic  <[EMAIL PROTECTED]>

        Resynced with GNU classpath.

        2005-07-07  Roman Kennke  <[EMAIL PROTECTED]>

        * javax/swing/plaf/basic/BasicTreeUI.java
        (MouseInputHandler.mouseClicked): Access static TreeSelectionModel
        fields via the class and not via an instance.

        2005-07-07  Roman Kennke  <[EMAIL PROTECTED]>

        * javax/swing/plaf/basic/BasicTreeUI.java:
        Reformatted source file to better match our coding standards.

        2005-07-06  Chris Burdess  <[EMAIL PROTECTED]>

        * gnu/java/net/protocol/http/HTTPConnection.java,
        gnu/java/net/protocol/http/HTTPURLConnection.java:
        Fix bug with multiple threads and persistent connections.

Members: 
        ChangeLog:1.4238->1.4239 
        
libraries/javalib/gnu/java/net/protocol/http/HTTPConnection.java:1.8->1.9 
        
libraries/javalib/gnu/java/net/protocol/http/HTTPURLConnection.java:1.12->1.13 
        libraries/javalib/javax/swing/plaf/basic/BasicTreeUI.java:1.7->1.8 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.4238 kaffe/ChangeLog:1.4239
--- kaffe/ChangeLog:1.4238      Thu Jul  7 03:08:31 2005
+++ kaffe/ChangeLog     Thu Jul  7 23:17:20 2005
@@ -1,3 +1,24 @@
+2005-07-08  Dalibor Topic  <[EMAIL PROTECTED]>
+
+       Resynced with GNU classpath.
+
+       2005-07-07  Roman Kennke  <[EMAIL PROTECTED]>
+
+        * javax/swing/plaf/basic/BasicTreeUI.java
+        (MouseInputHandler.mouseClicked): Access static TreeSelectionModel
+        fields via the class and not via an instance.
+
+       2005-07-07  Roman Kennke  <[EMAIL PROTECTED]>
+
+        * javax/swing/plaf/basic/BasicTreeUI.java:
+        Reformatted source file to better match our coding standards.
+
+       2005-07-06  Chris Burdess  <[EMAIL PROTECTED]>
+
+        * gnu/java/net/protocol/http/HTTPConnection.java,
+        gnu/java/net/protocol/http/HTTPURLConnection.java:
+        Fix bug with multiple threads and persistent connections.
+
 2005-07-07  Dalibor Topic  <[EMAIL PROTECTED]>
 
        * kaffe/kaffe/main.c (main): Duplicate classpath string received from 
getenv
Index: kaffe/libraries/javalib/gnu/java/net/protocol/http/HTTPConnection.java
diff -u 
kaffe/libraries/javalib/gnu/java/net/protocol/http/HTTPConnection.java:1.8 
kaffe/libraries/javalib/gnu/java/net/protocol/http/HTTPConnection.java:1.9
--- kaffe/libraries/javalib/gnu/java/net/protocol/http/HTTPConnection.java:1.8  
Mon Jul  4 00:05:31 2005
+++ kaffe/libraries/javalib/gnu/java/net/protocol/http/HTTPConnection.java      
Thu Jul  7 23:17:25 2005
@@ -402,7 +402,7 @@
    * Retrieves the socket associated with this connection.
    * This creates the socket if necessary.
    */
-  protected Socket getSocket()
+  protected synchronized Socket getSocket()
     throws IOException
   {
     if (socket == null)
@@ -489,7 +489,7 @@
     sslSocketFactory = factory;
   }
 
-  protected InputStream getInputStream()
+  protected synchronized InputStream getInputStream()
     throws IOException
   {
     if (socket == null)
@@ -499,7 +499,7 @@
     return in;
   }
 
-  protected OutputStream getOutputStream()
+  protected synchronized OutputStream getOutputStream()
     throws IOException
   {
     if (socket == null)
@@ -512,7 +512,7 @@
   /**
    * Closes the underlying socket, if any.
    */
-  protected void closeConnection()
+  protected synchronized void closeConnection()
     throws IOException
   {
     if (socket != null)
Index: kaffe/libraries/javalib/gnu/java/net/protocol/http/HTTPURLConnection.java
diff -u 
kaffe/libraries/javalib/gnu/java/net/protocol/http/HTTPURLConnection.java:1.12 
kaffe/libraries/javalib/gnu/java/net/protocol/http/HTTPURLConnection.java:1.13
--- 
kaffe/libraries/javalib/gnu/java/net/protocol/http/HTTPURLConnection.java:1.12  
    Mon Jul  4 00:05:31 2005
+++ kaffe/libraries/javalib/gnu/java/net/protocol/http/HTTPURLConnection.java   
Thu Jul  7 23:17:25 2005
@@ -328,6 +328,8 @@
     if (keepAlive)
       {
         StringBuffer buf = new StringBuffer(secure ? "https://"; : "http://";);
+        buf.append(Thread.currentThread().hashCode());
+        buf.append('@');
         buf.append(host);
         buf.append(':');
         buf.append(port);
Index: kaffe/libraries/javalib/javax/swing/plaf/basic/BasicTreeUI.java
diff -u kaffe/libraries/javalib/javax/swing/plaf/basic/BasicTreeUI.java:1.7 
kaffe/libraries/javalib/javax/swing/plaf/basic/BasicTreeUI.java:1.8
--- kaffe/libraries/javalib/javax/swing/plaf/basic/BasicTreeUI.java:1.7 Thu Jul 
 7 02:19:02 2005
+++ kaffe/libraries/javalib/javax/swing/plaf/basic/BasicTreeUI.java     Thu Jul 
 7 23:17:25 2005
@@ -1,36 +1,39 @@
-/*
- * BasicTreeUI.java -- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
- * 
- * This file is part of GNU Classpath.
- * 
- * GNU Classpath is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2, or (at your option) any later 
version.
- * 
- * GNU Classpath is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU General Public License along with
- * GNU Classpath; see the file COPYING. If not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 
USA.
- * 
- * Linking this library statically or dynamically with other modules is making 
a
- * combined work based on this library. Thus, the terms and conditions of the
- * GNU General Public License cover the whole combination.
- * 
- * As a special exception, the copyright holders of this library give you
- * permission to link this library with independent modules to produce an
- * executable, regardless of the license terms of these independent modules, 
and
- * to copy and distribute the resulting executable under terms of your choice,
- * provided that you also meet, for each linked independent module, the terms
- * and conditions of the license of that module. An independent module is a
- * module which is not derived from or based on this library. If you modify 
this
- * library, you may extend this exception to your version of the library, but
- * you are not obligated to do so. If you do not wish to do so, delete this
- * exception statement from your version.
- */
+/* BasicTreeUI.java --
+   Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
+
+   This file is part of GNU Classpath.
+
+   GNU Classpath is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   GNU Classpath is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with GNU Classpath; see the file COPYING.  If not, write to the
+   Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+   02110-1301 USA.
+
+   Linking this library statically or dynamically with other modules is
+   making a combined work based on this library.  Thus, the terms and
+   conditions of the GNU General Public License cover the whole
+   combination.
+
+   As a special exception, the copyright holders of this library give you
+   permission to link this library with independent modules to produce an
+   executable, regardless of the license terms of these independent
+   modules, and to copy and distribute the resulting executable under
+   terms of your choice, provided that you also meet, for each linked
+   independent module, the terms and conditions of the license of that
+   module.  An independent module is a module which is not derived from
+   or based on this library.  If you modify this library, you may extend
+   this exception to your version of the library, but you are not
+   obligated to do so.  If you do not wish to do so, delete this
+   exception statement from your version. */
 
 package javax.swing.plaf.basic;
 
@@ -107,2397 +110,2401 @@
  * @author Lillian Angel ([EMAIL PROTECTED])
  */
 public class BasicTreeUI
-               extends TreeUI
+  extends TreeUI
 {
 
-       /** Collapse Icon for the tree. */
-       protected transient Icon collapsedIcon;
+  /** Collapse Icon for the tree. */
+  protected transient Icon collapsedIcon;
 
-       /** Expanded Icon for the tree. */
-       protected transient Icon expandedIcon;
+  /** Expanded Icon for the tree. */
+  protected transient Icon expandedIcon;
 
-       /** Distance between left margin and where vertical dashes will be 
drawn. */
-       protected int leftChildIndent;
+  /** Distance between left margin and where vertical dashes will be drawn. */
+  protected int leftChildIndent;
 
-       /**
-        * Distance between leftChildIndent and where cell contents will be 
drawn.
-        */
-       protected int rightChildIndent;
-
-       /**
-        * Total fistance that will be indented. The sum of leftChildIndent and
-        * rightChildIndent .
-        */
-       protected int totalChildIndent;
-
-       /** Minimum preferred size. */
-       protected Dimension preferredMinsize;
-
-       /** Index of the row that was last selected. */
-       protected int lastSelectedRow;
-
-       /** Component that we're going to be drawing onto. */
-       protected JTree tree;
-
-       /** Renderer that is being used to do the actual cell drawing. */
-       protected transient TreeCellRenderer currentCellRenderer;
-
-       /**
-        * Set to true if the renderer that is currently in the tree was 
created by
-        * this instance.
-        */
-       protected boolean createdRenderer;
-
-       /** Editor for the tree. */
-       protected transient TreeCellEditor cellEditor;
-
-       /**
-        * Set to true if editor that is currently in the tree was created by 
this
-        * instance.
-        */
-       protected boolean createdCellEditor;
-
-       /**
-        * Set to false when editing and shouldSelectCall() returns true 
meaning the
-        * node should be selected before editing, used in completeEditing.
-        */
-       protected boolean stopEditingInCompleteEditing;
-
-       /** Used to paint the TreeCellRenderer. */
-       protected CellRendererPane rendererPane;
-
-       /** Size needed to completely display all the nodes. */
-       protected Dimension preferredSize;
-
-       /** Is the preferredSize valid? */
-       protected boolean validCachedPreferredSize;
-
-       /** Object responsible for handling sizing and expanded issues. */
-       protected AbstractLayoutCache treeState;
-
-       /** Used for minimizing the drawing of vertical lines. */
-       protected Hashtable drawingCache;
-
-       /**
-        * True if doing optimizations for a largeModel. Subclasses that don't
-        * support this may wish to override createLayoutCache to not return a
-        * FixedHeightLayoutCache instance.
-        */
-       protected boolean largeModel;
-
-       /** Responsible for telling the TreeState the size needed for a node. */
-       protected AbstractLayoutCache.NodeDimensions nodeDimensions;
-
-       /** Used to determine what to display. */
-       protected TreeModel treeModel;
-
-       /** Model maintaining the selection. */
-       protected TreeSelectionModel treeSelectionModel;
-
-       /**
-        * How much the depth should be offset to properly calculate x 
locations.
-        * This is based on whether or not the root is visible, and if the root
-        * handles are visible.
-        */
-       protected int depthOffset;
-
-       /**
-        * When editing, this will be the Component that is doing the actual
-        * editing.
-        */
-       protected Component editingComponent;
-
-       /** Path that is being edited. */
-       protected TreePath editingPath;
-
-       /**
-        * Row that is being edited. Should only be referenced if 
editingComponent
-        * is null.
-        */
-       protected int editingRow;
-
-       /** Set to true if the editor has a different size than the renderer. */
-       protected boolean editorHasDifferentSize;
-
-       /** Listeners */
-       private PropertyChangeListener propertyChangeListener;
-       private FocusListener focusListener;
-       private TreeSelectionListener treeSelectionListener;
-       private MouseInputListener mouseInputListener;
-       private KeyListener keyListener;
-       private PropertyChangeListener selectionModelPropertyChangeListener;
-       private ComponentListener componentListener;
-       private CellEditorListener cellEditorListener;
-       private TreeExpansionListener treeExpansionListener;
-       private TreeModelListener treeModelListener;
-
-       /**
-        * Creates a new BasicTreeUI object.
-        */
-       public BasicTreeUI()
-       {
-               drawingCache = new Hashtable();
-               cellEditor = createDefaultCellEditor();
-               currentCellRenderer = createDefaultCellRenderer();
-               nodeDimensions = createNodeDimensions();
-               rendererPane = createCellRendererPane();
-               configureLayoutCache();
-
-               propertyChangeListener = createPropertyChangeListener();
-               focusListener = createFocusListener();
-               treeSelectionListener = createTreeSelectionListener();
-               mouseInputListener = new MouseInputHandler(null, null, null);
-               keyListener = createKeyListener();
-               selectionModelPropertyChangeListener = 
createSelectionModelPropertyChangeListener();
-               componentListener = createComponentListener();
-               cellEditorListener = createCellEditorListener();
-               treeExpansionListener = createTreeExpansionListener();
-               treeModelListener = createTreeModelListener();
-
-               createdRenderer = true;
-               createdCellEditor = true;
-               editingRow = -1;
-               lastSelectedRow = -1;
-       }
-
-       /**
-        * Returns an instance of the UI delegate for the specified component.
-        * 
-        * @param c the <code>JComponent</code> for which we need a UI delegate
-        *        for.
-        * @return the <code>ComponentUI</code> for c.
-        */
-       public static ComponentUI createUI(JComponent c)
-       {
-               return new BasicTreeUI();
-       }
-
-       /**
-        * Returns the Hash color.
-        * 
-        * @return the <code>Color</code> of the Hash.
-        */
-       protected Color getHashColor()
-       {
-               return UIManager.getLookAndFeelDefaults().getColor("Tree.hash");
-       }
-
-       /**
-        * Sets the Hash color.
-        * 
-        * @param the <code>Color</code> to set the Hash to.
-        */
-       protected void setHashColor(Color color)
-       {
-               // FIXME: not implemented
-
-       }
-
-       /**
-        * Sets the left child's indent value.
-        * 
-        * @param newAmount is the new indent value for the left child.
-        */
-       public void setLeftChildIndent(int newAmount)
-       {
-               leftChildIndent = newAmount;
-       }
-
-       /**
-        * Returns the indent value for the left child.
-        * 
-        * @return the indent value for the left child.
-        */
-       public int getLeftChildIndent(int newAmount)
-       {
-               return leftChildIndent;
-       }
-
-       /**
-        * Sets the right child's indent value.
-        * 
-        * @param newAmount is the new indent value for the right child.
-        */
-       public void setRightChildIndent(int newAmount)
-       {
-               rightChildIndent = newAmount;
-       }
-
-       /**
-        * Returns the indent value for the right child.
-        * 
-        * @return the indent value for the right child.
-        */
-       public int getRightChildIndent(int newAmount)
-       {
-               return rightChildIndent;
-       }
-
-       /**
-        * Sets the expanded icon.
-        * 
-        * @param newG is the new expanded icon.
-        */
-       public void setExpandedIcon(Icon newG)
-       {
-               expandedIcon = newG;
-       }
-
-       /**
-        * Returns the current expanded icon.
-        * 
-        * @return the current expanded icon.
-        */
-       public Icon getExpandedIcon()
-       {
-               return expandedIcon;
-       }
-
-       /**
-        * Sets the collapsed icon.
-        * 
-        * @param newG is the new collapsed icon.
-        */
-       public void setCollapsedIcon(Icon newG)
-       {
-               collapsedIcon = newG;
-       }
-
-       /**
-        * Returns the current collapsed icon.
-        * 
-        * @return the current collapsed icon.
-        */
-       public Icon getCollapsedIcon()
-       {
-               return collapsedIcon;
-       }
-
-       /**
-        * Updates the componentListener, if necessary.
-        * 
-        * @param largeModel sets this.largeModel to it.
-        */
-       protected void setLargeModel(boolean largeModel)
-       {
-               if (largeModel != this.largeModel)
-               {
-                       tree.removeComponentListener(componentListener);
-                       this.largeModel = largeModel;
-                       tree.addComponentListener(componentListener);
-               }
-       }
-
-       /**
-        * Returns true if largeModel is set
-        * 
-        * @return true if largeModel is set, otherwise false.
-        */
-       protected boolean isLargeModel()
-       {
-               return largeModel;
-       }
-
-       /**
-        * Sets the row height.
-        * 
-        * @param rowHeight is the height to set this.rowHeight to.
-        */
-       protected void setRowHeight(int rowHeight)
-       {
-               treeState.setRowHeight(rowHeight);
-       }
-
-       /**
-        * Returns the current row height.
-        * 
-        * @return current row height.
-        */
-       protected int getRowHeight()
-       {
-               return treeState.getRowHeight();
-       }
-
-       /**
-        * Sets the TreeCellRenderer to <code>tcr</code>. This invokes
-        * <code>updateRenderer</code>.
-        * 
-        * @param tcr is the new TreeCellRenderer.
-        */
-       protected void setCellRenderer(TreeCellRenderer tcr)
-       {
-               currentCellRenderer = tcr;
-               updateRenderer();
-       }
-
-       /**
-        * Return currentCellRenderer, which will either be the trees renderer, 
or
-        * defaultCellRenderer, which ever was not null.
-        * 
-        * @return the current Cell Renderer
-        */
-       protected TreeCellRenderer getCellRenderer()
-       {
-               if (currentCellRenderer != null)
-                       return currentCellRenderer;
-
-               return createDefaultCellRenderer();
-       }
-
-       /**
-        * Sets the tree's model.
-        * 
-        * @param model to set the treeModel to.
-        */
-       protected void setModel(TreeModel model)
-       {
-               treeState.setModel(model);
-               treeModel = model;
-       }
-
-       /**
-        * Returns the tree's model
-        * 
-        * @return treeModel
-        */
-       protected TreeModel getModel()
-       {
-               return treeModel;
-       }
-
-       /**
-        * Sets the root to being visible.
-        * 
-        * @param newValue sets the visibility of the root
-        */
-       protected void setRootVisible(boolean newValue)
-       {
-               treeState.setRootVisible(newValue);
-       }
-
-       /**
-        * Returns true if the root is visible.
-        * 
-        * @return true if the root is visible.
-        */
-       protected boolean isRootVisible()
-       {
-               return treeState.isRootVisible();
-       }
-
-       /**
-        * Determines whether the node handles are to be displayed.
-        * 
-        * @param newValue sets whether or not node handles should be displayed.
-        */
-       protected void setShowsRootHandles(boolean newValue)
-       {
-               tree.setShowsRootHandles(newValue);
-       }
-
-       /**
-        * Returns true if the node handles are to be displayed.
-        * 
-        * @return true if the node handles are to be displayed.
-        */
-       protected boolean getShowsRootHandles()
-       {
-               return tree.getShowsRootHandles();
-       }
-
-       /**
-        * Sets the cell editor.
-        * 
-        * @param editor to set the cellEditor to.
-        */
-       protected void setCellEditor(TreeCellEditor editor)
-       {
-               cellEditor = editor;
-       }
-
-       /**
-        * Returns the <code>TreeCellEditor</code> for this tree.
-        * 
-        * @return the cellEditor for this tree.
-        */
-       protected TreeCellEditor getCellEditor()
-       {
-               return cellEditor;
-       }
-
-       /**
-        * Configures the receiver to allow, or not allow, editing.
-        * 
-        * @param newValue sets the receiver to allow editing if true.
-        */
-       protected void setEditable(boolean newValue)
-       {
-               tree.setEditable(newValue);
-       }
-
-       /**
-        * Returns true if the receiver allows editing.
-        * 
-        * @return true if the receiver allows editing.
-        */
-       protected boolean isEditable()
-       {
-               return tree.isEditable();
-       }
-
-       /**
-        * Resets the selection model. The appropriate listeners are installed 
on
-        * the model.
-        * 
-        * @param newLSM resets the selection model.
-        */
-       protected void setSelectionModel(TreeSelectionModel newLSM)
-       {
-               if (newLSM != null)
-               {
-                       treeSelectionModel = newLSM;
-                       tree.setSelectionModel(treeSelectionModel);
-               }
-       }
-
-       /**
-        * Returns the current selection model.
-        * 
-        * @return the current selection model.
-        */
-       protected TreeSelectionModel getSelectionModel()
-       {
-               return treeSelectionModel;
-       }
-
-       /**
-        * Returns the Rectangle enclosing the label portion that the last item 
in
-        * path will be drawn to. Will return null if any component in path is
-        * currently valid.
-        * 
-        * @param tree is the current tree the path will be drawn to.
-        * @param path is the current path the tree to draw to.
-        * @return the Rectangle enclosing the label portion that the last item 
in
-        *         the path will be drawn to.
-        */
-       public Rectangle getPathBounds(JTree tree, TreePath path)
-       {
-               // FIXME: not implemented
-               return null;
-       }
-
-       /**
-        * Returns the path for passed in row. If row is not visible null is
-        * returned.
-        * 
-        * @param tree is the current tree to return path for.
-        * @param row is the row number of the row to return.
-        * @return the path for passed in row. If row is not visible null is
-        *         returned.
-        */
-       public TreePath getPathForRow(JTree tree, int row)
-       {
-               DefaultMutableTreeNode node = ((DefaultMutableTreeNode) (tree
-                               .getModel()).getRoot());
+  /**
+   * Distance between leftChildIndent and where cell contents will be drawn.
+   */
+  protected int rightChildIndent;
+
+  /**
+   * Total fistance that will be indented. The sum of leftChildIndent and
+   * rightChildIndent .
+   */
+  protected int totalChildIndent;
+
+  /** Minimum preferred size. */
+  protected Dimension preferredMinsize;
+
+  /** Index of the row that was last selected. */
+  protected int lastSelectedRow;
+
+  /** Component that we're going to be drawing onto. */
+  protected JTree tree;
+
+  /** Renderer that is being used to do the actual cell drawing. */
+  protected transient TreeCellRenderer currentCellRenderer;
+
+  /**
+   * Set to true if the renderer that is currently in the tree was created by
+   * this instance.
+   */
+  protected boolean createdRenderer;
+
+  /** Editor for the tree. */
+  protected transient TreeCellEditor cellEditor;
+
+  /**
+   * Set to true if editor that is currently in the tree was created by this
+   * instance.
+   */
+  protected boolean createdCellEditor;
+
+  /**
+   * Set to false when editing and shouldSelectCall() returns true meaning the
+   * node should be selected before editing, used in completeEditing.
+   */
+  protected boolean stopEditingInCompleteEditing;
+
+  /** Used to paint the TreeCellRenderer. */
+  protected CellRendererPane rendererPane;
+
+  /** Size needed to completely display all the nodes. */
+  protected Dimension preferredSize;
+
+  /** Is the preferredSize valid? */
+  protected boolean validCachedPreferredSize;
+
+  /** Object responsible for handling sizing and expanded issues. */
+  protected AbstractLayoutCache treeState;
+
+  /** Used for minimizing the drawing of vertical lines. */
+  protected Hashtable drawingCache;
+
+  /**
+   * True if doing optimizations for a largeModel. Subclasses that don't
+   * support this may wish to override createLayoutCache to not return a
+   * FixedHeightLayoutCache instance.
+   */
+  protected boolean largeModel;
+
+  /** Responsible for telling the TreeState the size needed for a node. */
+  protected AbstractLayoutCache.NodeDimensions nodeDimensions;
+
+  /** Used to determine what to display. */
+  protected TreeModel treeModel;
+
+  /** Model maintaining the selection. */
+  protected TreeSelectionModel treeSelectionModel;
+
+  /**
+   * How much the depth should be offset to properly calculate x locations.
+   * This is based on whether or not the root is visible, and if the root
+   * handles are visible.
+   */
+  protected int depthOffset;
+
+  /**
+   * When editing, this will be the Component that is doing the actual
+   * editing.
+   */
+  protected Component editingComponent;
+
+  /** Path that is being edited. */
+  protected TreePath editingPath;
+
+  /**
+   * Row that is being edited. Should only be referenced if editingComponent
+   * is null.
+   */
+  protected int editingRow;
+
+  /** Set to true if the editor has a different size than the renderer. */
+  protected boolean editorHasDifferentSize;
+
+  /** Listeners */
+  private PropertyChangeListener propertyChangeListener;
+  private FocusListener focusListener;
+  private TreeSelectionListener treeSelectionListener;
+  private MouseInputListener mouseInputListener;
+  private KeyListener keyListener;
+  private PropertyChangeListener selectionModelPropertyChangeListener;
+  private ComponentListener componentListener;
+  private CellEditorListener cellEditorListener;
+  private TreeExpansionListener treeExpansionListener;
+  private TreeModelListener treeModelListener;
+
+  /**
+   * Creates a new BasicTreeUI object.
+   */
+  public BasicTreeUI()
+  {
+    drawingCache = new Hashtable();
+    cellEditor = createDefaultCellEditor();
+    currentCellRenderer = createDefaultCellRenderer();
+    nodeDimensions = createNodeDimensions();
+    rendererPane = createCellRendererPane();
+    configureLayoutCache();
+
+    propertyChangeListener = createPropertyChangeListener();
+    focusListener = createFocusListener();
+    treeSelectionListener = createTreeSelectionListener();
+    mouseInputListener = new MouseInputHandler(null, null, null);
+    keyListener = createKeyListener();
+    selectionModelPropertyChangeListener =
+      createSelectionModelPropertyChangeListener();
+    componentListener = createComponentListener();
+    cellEditorListener = createCellEditorListener();
+    treeExpansionListener = createTreeExpansionListener();
+    treeModelListener = createTreeModelListener();
+
+    createdRenderer = true;
+    createdCellEditor = true;
+    editingRow = -1;
+    lastSelectedRow = -1;
+  }
+
+  /**
+   * Returns an instance of the UI delegate for the specified component.
+   * 
+   * @param c the <code>JComponent</code> for which we need a UI delegate
+   *        for.
+   * @return the <code>ComponentUI</code> for c.
+   */
+  public static ComponentUI createUI(JComponent c)
+  {
+    return new BasicTreeUI();
+  }
+
+  /**
+   * Returns the Hash color.
+   * 
+   * @return the <code>Color</code> of the Hash.
+   */
+  protected Color getHashColor()
+  {
+    return UIManager.getLookAndFeelDefaults().getColor("Tree.hash");
+  }
+
+  /**
+   * Sets the Hash color.
+   * 
+   * @param the <code>Color</code> to set the Hash to.
+   */
+  protected void setHashColor(Color color)
+  {
+    // FIXME: not implemented
+    
+  }
+
+  /**
+   * Sets the left child's indent value.
+   * 
+   * @param newAmount is the new indent value for the left child.
+   */
+  public void setLeftChildIndent(int newAmount)
+  {
+    leftChildIndent = newAmount;
+  }
+
+  /**
+   * Returns the indent value for the left child.
+   * 
+   * @return the indent value for the left child.
+   */
+  public int getLeftChildIndent(int newAmount)
+  {
+    return leftChildIndent;
+  }
+
+  /**
+   * Sets the right child's indent value.
+   * 
+   * @param newAmount is the new indent value for the right child.
+   */
+  public void setRightChildIndent(int newAmount)
+  {
+    rightChildIndent = newAmount;
+  }
+
+  /**
+   * Returns the indent value for the right child.
+   * 
+   * @return the indent value for the right child.
+   */
+  public int getRightChildIndent(int newAmount)
+  {
+    return rightChildIndent;
+  }
+
+  /**
+   * Sets the expanded icon.
+   * 
+   * @param newG is the new expanded icon.
+   */
+  public void setExpandedIcon(Icon newG)
+  {
+    expandedIcon = newG;
+  }
+
+  /**
+   * Returns the current expanded icon.
+   * 
+   * @return the current expanded icon.
+   */
+  public Icon getExpandedIcon()
+  {
+    return expandedIcon;
+  }
+
+  /**
+   * Sets the collapsed icon.
+   * 
+   * @param newG is the new collapsed icon.
+   */
+  public void setCollapsedIcon(Icon newG)
+  {
+    collapsedIcon = newG;
+  }
+
+  /**
+   * Returns the current collapsed icon.
+   * 
+   * @return the current collapsed icon.
+   */
+  public Icon getCollapsedIcon()
+  {
+    return collapsedIcon;
+  }
+
+  /**
+   * Updates the componentListener, if necessary.
+   * 
+   * @param largeModel sets this.largeModel to it.
+   */
+  protected void setLargeModel(boolean largeModel)
+  {
+    if (largeModel != this.largeModel)
+      {
+        tree.removeComponentListener(componentListener);
+        this.largeModel = largeModel;
+        tree.addComponentListener(componentListener);
+      }
+  }
+
+  /**
+   * Returns true if largeModel is set
+   * 
+   * @return true if largeModel is set, otherwise false.
+   */
+  protected boolean isLargeModel()
+  {
+    return largeModel;
+  }
+
+  /**
+   * Sets the row height.
+   * 
+   * @param rowHeight is the height to set this.rowHeight to.
+   */
+  protected void setRowHeight(int rowHeight)
+  {
+    treeState.setRowHeight(rowHeight);
+  }
+
+  /**
+   * Returns the current row height.
+   * 
+   * @return current row height.
+   */
+  protected int getRowHeight()
+  {
+    return treeState.getRowHeight();
+  }
+
+  /**
+   * Sets the TreeCellRenderer to <code>tcr</code>. This invokes
+   * <code>updateRenderer</code>.

*** Patch too long, truncated ***

_______________________________________________
kaffe mailing list
[email protected]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe

Reply via email to