summaryrefslogtreecommitdiffstats
path: root/libjava/classpath/javax/swing/tree/DefaultTreeCellRenderer.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/classpath/javax/swing/tree/DefaultTreeCellRenderer.java')
-rw-r--r--libjava/classpath/javax/swing/tree/DefaultTreeCellRenderer.java442
1 files changed, 233 insertions, 209 deletions
diff --git a/libjava/classpath/javax/swing/tree/DefaultTreeCellRenderer.java b/libjava/classpath/javax/swing/tree/DefaultTreeCellRenderer.java
index 5e93145ae5c..e120b71c167 100644
--- a/libjava/classpath/javax/swing/tree/DefaultTreeCellRenderer.java
+++ b/libjava/classpath/javax/swing/tree/DefaultTreeCellRenderer.java
@@ -1,5 +1,5 @@
/* DefaultTreeCellRenderer.java
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2006, Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,16 +47,17 @@ import java.awt.Graphics;
import java.awt.Insets;
import java.awt.Rectangle;
-import javax.swing.border.Border;
import javax.swing.Icon;
import javax.swing.JLabel;
import javax.swing.JTree;
-import javax.swing.UIManager;
+import javax.swing.LookAndFeel;
import javax.swing.SwingUtilities;
+import javax.swing.UIManager;
+import javax.swing.border.Border;
import javax.swing.plaf.UIResource;
/**
- * DefaultTreeCellRenderer
+ * A default implementation of the {@link TreeCellRenderer} interface.
*
* @author Andrew Selkirk
*/
@@ -64,71 +65,81 @@ public class DefaultTreeCellRenderer
extends JLabel
implements TreeCellRenderer
{
- // -------------------------------------------------------------
- // Variables --------------------------------------------------
- // -------------------------------------------------------------
/**
- * selected
+ * A flag indicating the current selection status.
*/
protected boolean selected;
/**
- * hasFocus
+ * A flag indicating the current focus status.
*/
protected boolean hasFocus;
/**
- * drawsFocusBorderAroundIcon
+ * drawsFocusBorderAroundIcon // FIXME: is this used?
*/
private boolean drawsFocusBorderAroundIcon;
/**
- * closedIcon
+ * The icon used to represent non-leaf nodes that are closed.
+ *
+ * @see #setClosedIcon(Icon)
*/
protected transient Icon closedIcon;
/**
- * leafIcon
+ * The icon used to represent leaf nodes.
+ *
+ * @see #setLeafIcon(Icon)
*/
protected transient Icon leafIcon;
/**
- * openIcon
+ * The icon used to represent non-leaf nodes that are open.
+ *
+ * @see #setOpenIcon(Icon)
*/
protected transient Icon openIcon;
/**
- * textSelectionColor
+ * The color used for text in selected cells.
+ *
+ * @see #setTextSelectionColor(Color)
*/
protected Color textSelectionColor;
/**
- * textNonSelectionColor
+ * The color used for text in non-selected cells.
+ *
+ * @see #setTextNonSelectionColor(Color)
*/
protected Color textNonSelectionColor;
/**
- * backgroundSelectionColor
+ * The background color for selected cells.
+ *
+ * @see #setBackgroundSelectionColor(Color)
*/
protected Color backgroundSelectionColor;
/**
- * backgroundNonSelectionColor
+ * The background color for non-selected cells.
+ *
+ * @see #setBackgroundNonSelectionColor(Color)
*/
protected Color backgroundNonSelectionColor;
/**
- * borderSelectionColor
+ * The border color for selected tree cells.
+ *
+ * @see #setBorderSelectionColor(Color)
*/
protected Color borderSelectionColor;
- // -------------------------------------------------------------
- // Initialization ---------------------------------------------
- // -------------------------------------------------------------
-
/**
- * Constructor DefaultTreeCellRenderer
+ * Creates a new tree cell renderer with defaults appropriate for the
+ * current {@link LookAndFeel}.
*/
public DefaultTreeCellRenderer()
{
@@ -138,19 +149,17 @@ public class DefaultTreeCellRenderer
setTextNonSelectionColor(UIManager.getColor("Tree.textForeground"));
setTextSelectionColor(UIManager.getColor("Tree.selectionForeground"));
- setBackgroundNonSelectionColor(UIManager.getColor("Tree.nonSelectionBackground"));
+ setBackgroundNonSelectionColor(UIManager.getColor("Tree.textBackground"));
setBackgroundSelectionColor(UIManager.getColor("Tree.selectionBackground"));
setBorderSelectionColor(UIManager.getColor("Tree.selectionBorderColor"));
}
- // -------------------------------------------------------------
- // Methods ----------------------------------------------------
- // -------------------------------------------------------------
-
/**
- * getDefaultOpenIcon
+ * Returns the default icon for non-leaf tree cells that are open (expanded).
+ * The icon is fetched from the defaults table for the current
+ * {@link LookAndFeel} using the key <code>Tree.openIcon</code>.
*
- * @returns Icon
+ * @return The default icon.
*/
public Icon getDefaultOpenIcon()
{
@@ -158,9 +167,11 @@ public class DefaultTreeCellRenderer
}
/**
- * getDefaultClosedIcon
+ * Returns the default icon for non-leaf tree cells that are closed (not
+ * expanded). The icon is fetched from the defaults table for the current
+ * {@link LookAndFeel} using the key <code>Tree.closedIcon</code>.
*
- * @returns Icon
+ * @return The default icon.
*/
public Icon getDefaultClosedIcon()
{
@@ -168,9 +179,11 @@ public class DefaultTreeCellRenderer
}
/**
- * getDefaultLeafIcon
+ * Returns the default icon for leaf tree cells. The icon is fetched from
+ * the defaults table for the current {@link LookAndFeel} using the key
+ * <code>Tree.leafIcon</code>.
*
- * @returns Icon
+ * @return The default icon.
*/
public Icon getDefaultLeafIcon()
{
@@ -178,20 +191,25 @@ public class DefaultTreeCellRenderer
}
/**
- * setOpenIcon
+ * Sets the icon to be displayed for non-leaf nodes that are open (expanded).
+ * Set this to <code>null</code> if no icon is required.
+ *
+ * @param icon the icon (<code>null</code> permitted).
*
- * @param i
- * the icon.
+ * @see #getOpenIcon()
*/
- public void setOpenIcon(Icon i)
+ public void setOpenIcon(Icon icon)
{
- openIcon = i;
+ openIcon = icon;
}
/**
- * getOpenIcon
+ * Returns the icon displayed for non-leaf nodes that are open (expanded).
+ * The default value is initialised from the {@link LookAndFeel}.
*
- * @returns Icon
+ * @return The open icon (possibly <code>null</code>).
+ *
+ * @see #setOpenIcon(Icon)
*/
public Icon getOpenIcon()
{
@@ -199,20 +217,25 @@ public class DefaultTreeCellRenderer
}
/**
- * setClosedIcon
+ * Sets the icon to be displayed for non-leaf nodes that are closed. Set
+ * this to <code>null</code> if no icon is required.
+ *
+ * @param icon the icon (<code>null</code> permitted).
*
- * @param i
- * the icon.
+ * @see #getClosedIcon()
*/
- public void setClosedIcon(Icon i)
+ public void setClosedIcon(Icon icon)
{
- closedIcon = i;
+ closedIcon = icon;
}
/**
- * getClosedIcon
+ * Returns the icon displayed for non-leaf nodes that are closed. The
+ * default value is initialised from the {@link LookAndFeel}.
+ *
+ * @return The closed icon (possibly <code>null</code>).
*
- * @returns Icon
+ * @see #setClosedIcon(Icon)
*/
public Icon getClosedIcon()
{
@@ -220,20 +243,25 @@ public class DefaultTreeCellRenderer
}
/**
- * setLeafIcon
+ * Sets the icon to be displayed for leaf nodes. Set this to
+ * <code>null</code> if no icon is required.
*
- * @param i
- * the icon.
+ * @param icon the icon (<code>null</code> permitted).
+ *
+ * @see #getLeafIcon()
*/
- public void setLeafIcon(Icon i)
+ public void setLeafIcon(Icon icon)
{
- leafIcon = i;
+ leafIcon = icon;
}
/**
- * getLeafIcon
+ * Returns the icon displayed for leaf nodes. The default value is
+ * initialised from the {@link LookAndFeel}.
+ *
+ * @return The leaf icon (possibly <code>null</code>).
*
- * @returns Icon
+ * @see #setLeafIcon(Icon)
*/
public Icon getLeafIcon()
{
@@ -241,10 +269,11 @@ public class DefaultTreeCellRenderer
}
/**
- * setTextSelectionColor
+ * Sets the text color for tree cells that are selected.
*
- * @param c
- * the color.
+ * @param c the color (<code>null</code> permitted).
+ *
+ * @see #getTextSelectionColor()
*/
public void setTextSelectionColor(Color c)
{
@@ -252,9 +281,13 @@ public class DefaultTreeCellRenderer
}
/**
- * getTextSelectionColor
+ * Returns the text color for tree cells that are selected.
+ * The default value is obtained from the {@link LookAndFeel} defaults
+ * table using the key <code>Tree.selectionForeground</code>.
+ *
+ * @return The text color for tree cells that are selected.
*
- * @returns Color
+ * @see #setTextSelectionColor(Color)
*/
public Color getTextSelectionColor()
{
@@ -262,10 +295,11 @@ public class DefaultTreeCellRenderer
}
/**
- * setTextNonSelectionColor
+ * Sets the text color for tree cells that are not selected.
+ *
+ * @param c the color (<code>null</code> permitted).
*
- * @param c
- * the color.
+ * @see #getTextNonSelectionColor()
*/
public void setTextNonSelectionColor(Color c)
{
@@ -273,9 +307,13 @@ public class DefaultTreeCellRenderer
}
/**
- * getTextNonSelectionColor
+ * Returns the text color for tree cells that are not selected.
+ * The default value is obtained from the {@link LookAndFeel} defaults
+ * table using the key <code>Tree.selectionForeground</code>.
*
- * @returns Color
+ * @return The background color for tree cells that are not selected.
+ *
+ * @see #setTextgroundNonSelectionColor(Color)
*/
public Color getTextNonSelectionColor()
{
@@ -283,10 +321,11 @@ public class DefaultTreeCellRenderer
}
/**
- * setBackgroundSelectionColor
+ * Sets the background color for tree cells that are selected.
+ *
+ * @param c the color (<code>null</code> permitted).
*
- * @param c
- * the color.
+ * @see #getBackgroundSelectionColor()
*/
public void setBackgroundSelectionColor(Color c)
{
@@ -294,9 +333,13 @@ public class DefaultTreeCellRenderer
}
/**
- * getBackgroundSelectionColor
+ * Returns the background color for tree cells that are selected.
+ * The default value is obtained from the {@link LookAndFeel} defaults
+ * table using the key <code>Tree.selectionBackground</code>.
*
- * @returns Color
+ * @return The background color for tree cells that are selected.
+ *
+ * @see #setBackgroundSelectionColor(Color)
*/
public Color getBackgroundSelectionColor()
{
@@ -304,10 +347,11 @@ public class DefaultTreeCellRenderer
}
/**
- * setBackgroundNonSelectionColor
+ * Sets the background color for tree cells that are not selected.
+ *
+ * @param c the color (<code>null</code> permitted).
*
- * @param c
- * the color.
+ * @see #getBackgroundNonSelectionColor()
*/
public void setBackgroundNonSelectionColor(Color c)
{
@@ -315,9 +359,13 @@ public class DefaultTreeCellRenderer
}
/**
- * getBackgroundNonSelectionColor
+ * Returns the background color for tree cells that are not selected.
+ * The default value is obtained from the {@link LookAndFeel} defaults
+ * table using the key <code>Tree.textBackground</code>.
+ *
+ * @return The background color for tree cells that are not selected.
*
- * @returns Color
+ * @see #setBackgroundNonSelectionColor(Color)
*/
public Color getBackgroundNonSelectionColor()
{
@@ -325,10 +373,11 @@ public class DefaultTreeCellRenderer
}
/**
- * setBorderSelectionColor
+ * Sets the border color for tree cells that are selected.
*
- * @param c
- * the color.
+ * @param c the color (<code>null</code> permitted).
+ *
+ * @see #getBorderSelectionColor()
*/
public void setBorderSelectionColor(Color c)
{
@@ -336,9 +385,13 @@ public class DefaultTreeCellRenderer
}
/**
- * getBorderSelectionColor
+ * Returns the border color for tree cells that are selected.
+ * The default value is obtained from the {@link LookAndFeel} defaults
+ * table using the key <code>Tree.selectionBorderColor</code>.
+ *
+ * @return The border color for tree cells that are selected.
*
- * @returns Color
+ * @see #setBorderSelectionColor(Color)
*/
public Color getBorderSelectionColor()
{
@@ -346,10 +399,11 @@ public class DefaultTreeCellRenderer
}
/**
- * setFont
+ * Sets the font.
*
- * @param f
- * the font.
+ * @param f the font.
+ *
+ * @see #getFont()
*/
public void setFont(Font f)
{
@@ -359,10 +413,9 @@ public class DefaultTreeCellRenderer
}
/**
- * setBackground
+ * Sets the background color.
*
- * @param c
- * the color.
+ * @param c the color.
*/
public void setBackground(Color c)
{
@@ -372,23 +425,18 @@ public class DefaultTreeCellRenderer
}
/**
- * getTreeCellRendererComponent
+ * Returns a component (in fact <code>this</code>) that can be used to
+ * render a tree cell with the specified state.
+ *
+ * @param tree the tree that the cell belongs to.
+ * @param val the cell value.
+ * @param selected indicates whether or not the cell is selected.
+ * @param expanded indicates whether or not the cell is expanded.
+ * @param leaf indicates whether or not the cell is a leaf in the tree.
+ * @param row the row index.
+ * @param hasFocus indicates whether or not the cell has the focus.
*
- * @param tree
- * TODO
- * @param val
- * TODO
- * @param selected
- * TODO
- * @param expanded
- * TODO
- * @param leaf
- * TODO
- * @param row
- * TODO
- * @param hasFocus
- * TODO
- * @returns Component
+ * @return <code>this</code>.
*/
public Component getTreeCellRendererComponent(JTree tree, Object val,
boolean selected,
@@ -433,9 +481,11 @@ public class DefaultTreeCellRenderer
}
/**
- * getFont
+ * Returns the current font.
+ *
+ * @return The current font.
*
- * @return the current Font
+ * @see #setFont(Font)
*/
public Font getFont()
{
@@ -460,7 +510,7 @@ public class DefaultTreeCellRenderer
insets = border.getBorderInsets(this);
FontMetrics fm = getToolkit().getFontMetrics(getFont());
- SwingUtilities.layoutCompoundLabel(((JLabel) this), fm, getText(),
+ SwingUtilities.layoutCompoundLabel((JLabel) this, fm, getText(),
getIcon(), getVerticalAlignment(),
getHorizontalAlignment(),
getVerticalTextPosition(),
@@ -471,7 +521,7 @@ public class DefaultTreeCellRenderer
Rectangle bounds = getBounds(ir);
bounds.x = tr.x - insets.left;
- bounds.width = tr.width + insets.left+insets.right;
+ bounds.width = tr.width + insets.left + insets.right;
g.setColor(super.getBackground());
g.fillRect(bounds.x, bounds.y, bounds.width, bounds.height);
@@ -491,9 +541,9 @@ public class DefaultTreeCellRenderer
}
/**
- * returns the preferred size of the cell.
+ * Returns the preferred size of the cell.
*
- * @returns Dimension
+ * @return The preferred size of the cell.
*/
public Dimension getPreferredSize()
{
@@ -502,7 +552,7 @@ public class DefaultTreeCellRenderer
Rectangle tr = new Rectangle();
FontMetrics fm = getToolkit().getFontMetrics(getFont());
- SwingUtilities.layoutCompoundLabel(((JLabel) this), fm, getText(),
+ SwingUtilities.layoutCompoundLabel((JLabel) this, fm, getText(),
getIcon(), getVerticalAlignment(),
getHorizontalAlignment(),
getVerticalTextPosition(),
@@ -510,182 +560,156 @@ public class DefaultTreeCellRenderer
getIconTextGap());
Rectangle cr = ir.union(tr);
return new Dimension(cr.width, cr.height);
- } // getPreferredSize()
+ }
/**
- * validate
+ * For performance reasons, this method is overridden to do nothing.
*/
public void validate()
{
// Overridden for performance reasons.
- } // validate()
+ }
/**
- * revalidate
+ * For performance reasons, this method is overridden to do nothing.
*/
public void revalidate()
{
// Overridden for performance reasons.
- } // revalidate()
+ }
/**
- * repaint
+ * For performance reasons, this method is overridden to do nothing.
*
- * @param value0
- * TODO
- * @param value1
- * TODO
- * @param value2
- * TODO
- * @param value3
- * TODO
- * @param value4
- * TODO
+ * @param tm ignored
+ * @param x coordinate of the region to mark as dirty
+ * @param y coordinate of the region to mark as dirty
+ * @param width dimension of the region to mark as dirty
+ * @param height dimension of the region to mark as dirty
*/
- public void repaint(long value0, int value1, int value2, int value3,
- int value4)
+ public void repaint(long tm, int x, int y, int width, int height)
{
// Overridden for performance reasons.
- } // repaint()
+ }
/**
- * repaint
+ * For performance reasons, this method is overridden to do nothing.
*
- * @param value0
- * TODO
+ * @param area the area to repaint.
*/
- public void repaint(Rectangle value0)
+ public void repaint(Rectangle area)
{
// Overridden for performance reasons.
- } // repaint()
+ }
/**
- * firePropertyChange
+ * For performance reasons, this method is overridden to do nothing.
*
- * @param value0
- * TODO
- * @param value1
- * TODO
- * @param value2
- * TODO
+ * @param name the property name.
+ * @param oldValue the old value.
+ * @param newValue the new value.
*/
- protected void firePropertyChange(String value0, Object value1, Object value2)
+ protected void firePropertyChange(String name, Object oldValue,
+ Object newValue)
{
// Overridden for performance reasons.
- } // firePropertyChange()
+ }
/**
- * firePropertyChange
+ * For performance reasons, this method is overridden to do nothing.
*
- * @param value0
- * TODO
- * @param value1
- * TODO
- * @param value2
- * TODO
+ * @param name the property name.
+ * @param oldValue the old value.
+ * @param newValue the new value.
*/
- public void firePropertyChange(String value0, byte value1, byte value2)
+ public void firePropertyChange(String name, byte oldValue, byte newValue)
{
// Overridden for performance reasons.
- } // firePropertyChange()
+ }
/**
- * firePropertyChange
+ * For performance reasons, this method is overridden to do nothing.
*
- * @param value0
- * TODO
- * @param value1
- * TODO
- * @param value2
- * TODO
+ * @param name the property name.
+ * @param oldValue the old value.
+ * @param newValue the new value.
*/
- public void firePropertyChange(String value0, char value1, char value2)
+ public void firePropertyChange(String name, char oldValue, char newValue)
{
// Overridden for performance reasons.
- } // firePropertyChange()
+ }
/**
- * firePropertyChange
+ * For performance reasons, this method is overridden to do nothing.
*
- * @param value0
- * TODO
- * @param value1
- * TODO
- * @param value2
- * TODO
+ * @param name the property name.
+ * @param oldValue the old value.
+ * @param newValue the new value.
*/
- public void firePropertyChange(String value0, short value1, short value2)
+ public void firePropertyChange(String name, short oldValue, short newValue)
{
// Overridden for performance reasons.
- } // firePropertyChange()
+ }
/**
- * firePropertyChange
+ * For performance reasons, this method is overridden to do nothing.
*
- * @param value0
- * TODO
- * @param value1
- * TODO
- * @param value2
- * TODO
+ * @param name the property name.
+ * @param oldValue the old value.
+ * @param newValue the new value.
*/
- public void firePropertyChange(String value0, int value1, int value2)
+ public void firePropertyChange(String name, int oldValue, int newValue)
{
// Overridden for performance reasons.
- } // firePropertyChange()
+ }
/**
- * firePropertyChange
+ * For performance reasons, this method is overridden to do nothing.
*
- * @param value0
- * TODO
- * @param value1
- * TODO
- * @param value2
- * TODO
+ * @param name the property name.
+ * @param oldValue the old value.
+ * @param newValue the new value.
*/
- public void firePropertyChange(String value0, long value1, long value2)
+ public void firePropertyChange(String name, long oldValue, long newValue)
{
// Overridden for performance reasons.
- } // firePropertyChange()
+ }
/**
- * firePropertyChange
+ * For performance reasons, this method is overridden to do nothing.
*
- * @param value0
- * TODO
- * @param value1
- * TODO
- * @param value2
- * TODO
+ * @param name the property name.
+ * @param oldValue the old value.
+ * @param newValue the new value.
*/
- public void firePropertyChange(String value0, float value1, float value2)
+ public void firePropertyChange(String name, float oldValue, float newValue)
{
// Overridden for performance reasons.
- } // firePropertyChange()
+ }
/**
- * firePropertyChange
+ * For performance reasons, this method is overridden to do nothing.
*
- * @param value0 TODO
- * @param value1 TODO
- * @param value2 TODO
+ * @param name the property name.
+ * @param oldValue the old value.
+ * @param newValue the new value.
*/
- public void firePropertyChange(String value0, double value1, double value2)
+ public void firePropertyChange(String name, double oldValue, double newValue)
{
// Overridden for performance reasons.
- } // firePropertyChange()
+ }
/**
- * firePropertyChange
+ * For performance reasons, this method is overridden to do nothing.
*
- * @param name the property name.
- * @param v1 the old value.
- * @param v2 the new value.
+ * @param name the property name.
+ * @param oldValue the old value.
+ * @param newValue the new value.
*/
- public void firePropertyChange(String name, boolean v1, boolean v2)
+ public void firePropertyChange(String name, boolean oldValue,
+ boolean newValue)
{
// Overridden for performance reasons.
- } // firePropertyChange()
+ }
-} // DefaultTreeCellRenderer
+}
OpenPOWER on IntegriCloud