summaryrefslogtreecommitdiff
path: root/libjava/classpath/javax/swing/BorderFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/classpath/javax/swing/BorderFactory.java')
-rw-r--r--libjava/classpath/javax/swing/BorderFactory.java456
1 files changed, 456 insertions, 0 deletions
diff --git a/libjava/classpath/javax/swing/BorderFactory.java b/libjava/classpath/javax/swing/BorderFactory.java
new file mode 100644
index 000000000..f5c4cbbb6
--- /dev/null
+++ b/libjava/classpath/javax/swing/BorderFactory.java
@@ -0,0 +1,456 @@
+/* BorderFactory.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. */
+
+
+package javax.swing;
+
+import java.awt.Color;
+import java.awt.Font;
+
+import javax.swing.border.BevelBorder;
+import javax.swing.border.Border;
+import javax.swing.border.CompoundBorder;
+import javax.swing.border.EmptyBorder;
+import javax.swing.border.EtchedBorder;
+import javax.swing.border.LineBorder;
+import javax.swing.border.MatteBorder;
+import javax.swing.border.TitledBorder;
+
+/**
+ * A factory for commonly used borders.
+ *
+ * @author original author unknown
+ */
+public class BorderFactory
+{
+ private BorderFactory()
+ {
+ // Do nothing.
+ }
+
+ /**
+ * Creates a line border withe the specified color.
+ *
+ * @param color A color to use for the line.
+ *
+ * @return The Border object
+ */
+ public static Border createLineBorder(Color color)
+ {
+ return createLineBorder(color, 1);
+ }
+
+ /**
+ * Creates a line border withe the specified color and width. The width
+ * applies to all 4 sides of the border. To specify widths individually for
+ * the top, bottom, left, and right, use
+ * createMatteBorder(int,int,int,int,Color).
+ *
+ * @param color A color to use for the line.
+ * @param thickness An int specifying the width in pixels.
+ *
+ * @return The Border object
+ */
+ public static Border createLineBorder(Color color, int thickness)
+ {
+ return new LineBorder(color, thickness);
+ }
+
+ /**
+ * Created a border with a raised beveled edge, using brighter shades of
+ * the component's current background color for highlighting, and darker
+ * shading for shadows. (In a raised border, highlights are on top and
+ * shadows are underneath.)
+ *
+ * @return The Border object
+ */
+ public static Border createRaisedBevelBorder()
+ {
+ return new BevelBorder(BevelBorder.RAISED);
+ }
+
+ /**
+ * Created a border with a lowered beveled edge, using brighter shades of
+ * the component's current background color for highlighting, and darker
+ * shading for shadows. (In a lowered border, shadows are on top and
+ * highlights are underneath.)
+ *
+ * @return The Border object
+ */
+ public static Border createLoweredBevelBorder()
+ {
+ return new BevelBorder(BevelBorder.LOWERED);
+ }
+
+ /**
+ * Create a beveled border of the specified type, using brighter shades of
+ * the component's current background color for highlighting, and darker
+ * shading for shadows. (In a lowered border, shadows are on top and
+ * highlights are underneath.).
+ *
+ * @param type An int specifying either BevelBorder.LOWERED or
+ * BevelBorder.RAISED
+ *
+ * @return The Border object
+ */
+ public static Border createBevelBorder(int type)
+ {
+ return new BevelBorder(type);
+ }
+
+ /**
+ * Create a beveled border of the specified type, using the specified
+ * highlighting and shadowing. The outer edge of the highlighted area uses
+ * a brighter shade of the highlight color. The inner edge of the shadow
+ * area uses a brighter shade of the shadaw color.
+ *
+ * @param type An int specifying either BevelBorder.LOWERED or
+ * BevelBorder.RAISED
+ * @param highlight A Color object for highlights
+ * @param shadow A Color object for shadows
+ *
+ * @return The Border object
+ */
+ public static Border createBevelBorder(int type, Color highlight, Color shadow)
+ {
+ return new BevelBorder(type, highlight, shadow);
+ }
+
+ /**
+ * Create a beveled border of the specified type, using the specified colors
+ * for the inner and outer highlight and shadow areas.
+ *
+ * @param type An int specifying either BevelBorder.LOWERED or
+ * BevelBorder.RAISED
+ * @param highlightOuter A Color object for the outer edge of the
+ * highlight area
+ * @param highlightInner A Color object for the inner edge of the
+ * highlight area
+ * @param shadowOuter A Color object for the outer edge of the shadow area
+ * @param shadowInner A Color object for the inner edge of the shadow area
+ *
+ * @return The Border object
+ */
+ public static Border createBevelBorder(int type, Color highlightOuter,
+ Color highlightInner,
+ Color shadowOuter, Color shadowInner)
+ {
+ return new BevelBorder(type, highlightOuter, highlightInner, shadowOuter,
+ shadowInner);
+ }
+
+ /**
+ * Create a border with an "etched" look using the component's current
+ * background color for highlighting and shading.
+ *
+ * @return The Border object
+ */
+ public static Border createEtchedBorder()
+ {
+ return new EtchedBorder();
+ }
+
+ /**
+ * Create a border with an "etched" look using the component's current
+ * background color for highlighting and shading.
+ *
+ * @return The Border object
+ */
+ public static Border createEtchedBorder(int etchType)
+ {
+ return new EtchedBorder(etchType);
+ }
+
+ /**
+ * Create a border with an "etched" look using the specified highlighting and
+ * shading colors.
+ *
+ * @param highlight A Color object for the border highlights
+ * @param shadow A Color object for the border shadows
+ *
+ * @return The Border object
+ */
+ public static Border createEtchedBorder(Color highlight, Color shadow)
+ {
+ return new EtchedBorder(highlight, shadow);
+ }
+
+ /**
+ * Create a border with an "etched" look using the specified highlighting and
+ * shading colors.
+ *
+ * @param highlight A Color object for the border highlights
+ * @param shadow A Color object for the border shadows
+ *
+ * @return The Border object
+ */
+ public static Border createEtchedBorder(int etchType, Color highlight,
+ Color shadow)
+ {
+ return new EtchedBorder(etchType, highlight, shadow);
+ }
+
+ /**
+ * Create a new title border specifying the text of the title, using the
+ * default border (etched), using the default text position (sitting on the
+ * top line) and default justification (left) and using the default font and
+ * text color determined by the current look and feel.
+ *
+ * @param title A String containing the text of the title
+ *
+ * @return The TitledBorder object
+ */
+ public static TitledBorder createTitledBorder(String title)
+ {
+ return new TitledBorder(title);
+ }
+
+ /**
+ * Create a new title border with an empty title specifying the border
+ * object, using the default text position (sitting on the top line) and
+ * default justification (left) and using the default font, text color,
+ * and border determined by the current look and feel. (The Motif and Windows
+ * look and feels use an etched border; The Java look and feel use a
+ * gray border.)
+ *
+ * @param border The Border object to add the title to
+ *
+ * @return The TitledBorder object
+ */
+ public static TitledBorder createTitledBorder(Border border)
+ {
+ return new TitledBorder(border);
+ }
+
+ /**
+ * Add a title to an existing border, specifying the text of the title, using
+ * the default positioning (sitting on the top line) and default
+ * justification (left) and using the default font and text color determined
+ * by the current look and feel.
+ *
+ * @param border The Border object to add the title to
+ * @param title A String containing the text of the title
+ *
+ * @return The TitledBorder object
+ */
+ public static TitledBorder createTitledBorder(Border border, String title)
+ {
+ return new TitledBorder(border, title);
+ }
+
+ /**
+ * Add a title to an existing border, specifying the text of the title along
+ * with its positioning, using the default font and text color determined by
+ * the current look and feel.
+ *
+ * @param border The Border object to add the title to
+ * @param title A String containing the text of the title
+ * @param titleJustification An int specifying the left/right position of
+ * the title -- one of TitledBorder.LEFT, TitledBorder.CENTER, or
+ * TitledBorder.RIGHT, TitledBorder.DEFAULT_JUSTIFICATION (left).
+ * @param titlePosition An int specifying the vertical position of the text
+ * in relation to the border -- one of: TitledBorder.ABOVE_TOP,
+ * TitledBorder.TOP (sitting on the top line), TitledBorder.BELOW_TOP,
+ * TitledBorder.ABOVE_BOTTOM, TitledBorder.BOTTOM (sitting on the bottom
+ * line), TitledBorder.BELOW_BOTTOM, or TitledBorder.DEFAULT_POSITION
+ * (top).
+ *
+ * @return The TitledBorder object
+ */
+ public static TitledBorder createTitledBorder(Border border, String title,
+ int titleJustification,
+ int titlePosition)
+ {
+ return new TitledBorder(border, title, titleJustification, titlePosition);
+ }
+
+ /**
+ * Add a title to an existing border, specifying the text of the title along
+ * with its positioning and font, using the default text color determined by
+ * the current look and feel.
+ *
+ * @param border - the Border object to add the title to
+ * @param title - a String containing the text of the title
+ * @param titleJustification - an int specifying the left/right position of
+ * the title -- one of TitledBorder.LEFT, TitledBorder.CENTER, or
+ * TitledBorder.RIGHT, TitledBorder.DEFAULT_JUSTIFICATION (left).
+ * @param titlePosition - an int specifying the vertical position of the
+ * text in relation to the border -- one of: TitledBorder.ABOVE_TOP,
+ * TitledBorder.TOP (sitting on the top line), TitledBorder.BELOW_TOP,
+ * TitledBorder.ABOVE_BOTTOM, TitledBorder.BOTTOM (sitting on the bottom
+ * line), TitledBorder.BELOW_BOTTOM, or TitledBorder.DEFAULT_POSITION (top).
+ * @param titleFont - a Font object specifying the title font
+ *
+ * @return The TitledBorder object
+ */
+ public static TitledBorder createTitledBorder(Border border, String title,
+ int titleJustification,
+ int titlePosition,
+ Font titleFont)
+ {
+ return new TitledBorder(border, title, titleJustification, titlePosition,
+ titleFont);
+ }
+
+ /**
+ * Add a title to an existing border, specifying the text of the title along
+ * with its positioning, font, and color.
+ *
+ * @param border - the Border object to add the title to
+ * @param title - a String containing the text of the title
+ * @param titleJustification - an int specifying the left/right position of
+ * the title -- one of TitledBorder.LEFT, TitledBorder.CENTER, or
+ * TitledBorder.RIGHT, TitledBorder.DEFAULT_JUSTIFICATION (left).
+ * @param titlePosition - an int specifying the vertical position of the text
+ * in relation to the border -- one of: TitledBorder.ABOVE_TOP,
+ * TitledBorder.TOP (sitting on the top line), TitledBorder.BELOW_TOP,
+ * TitledBorder.ABOVE_BOTTOM, TitledBorder.BOTTOM (sitting on the bottom
+ * line), TitledBorder.BELOW_BOTTOM, or TitledBorder.DEFAULT_POSITION (top).
+ * @param titleFont - a Font object specifying the title font
+ * @param titleColor - a Color object specifying the title color
+ *
+ * @return The TitledBorder object
+ */
+ public static TitledBorder createTitledBorder(Border border, String title,
+ int titleJustification,
+ int titlePosition,
+ Font titleFont, Color titleColor)
+ {
+ return new TitledBorder(border, title, titleJustification, titlePosition,
+ titleFont, titleColor);
+ }
+
+ /**
+ * Creates an empty border that takes up no space. (The width of the top,
+ * bottom, left, and right sides are all zero.)
+ *
+ * @return The Border object
+ */
+ public static Border createEmptyBorder()
+ {
+ return new EmptyBorder(0, 0, 0, 0);
+ }
+
+ /**
+ * Creates an empty border that takes up no space but which does no drawing,
+ * specifying the width of the top, left, bottom, and right sides.
+ *
+ * @param top An int specifying the width of the top in pixels
+ * @param left An int specifying the width of the left side in pixels
+ * @param bottom An int specifying the width of the right side in pixels
+ * @param right An int specifying the width of the bottom in pixels
+ *
+ * @return The Border object
+ */
+ public static Border createEmptyBorder(int top, int left, int bottom,
+ int right)
+ {
+ return new EmptyBorder(top, left, bottom, right);
+ }
+
+ /**
+ * Create a compound border with a null inside edge and a null outside edge.
+ *
+ * @return The CompoundBorder object
+ */
+ public static CompoundBorder createCompoundBorder()
+ {
+ return new CompoundBorder();
+ }
+
+ /**
+ * Create a compound border specifying the border objects to use for the
+ * outside and inside edges.
+ *
+ * @param outsideBorder A Border object for the outer edge of the
+ * compound border
+ * @param insideBorder A Border object for the inner edge of the
+ * compound border
+ *
+ * @return The CompoundBorder object
+ */
+ public static CompoundBorder createCompoundBorder(Border outsideBorder,
+ Border insideBorder)
+ {
+ return new CompoundBorder(outsideBorder, insideBorder);
+ }
+
+ /**
+ * Create a matte-look border using a solid color. (The difference between
+ * this border and a line border is that you can specify the individual border
+ * dimensions.)
+ *
+ * @param top
+ * An int specifying the width of the top in pixels
+ * @param left
+ * An int specifying the width of the left side in pixels
+ * @param bottom
+ * An int specifying the width of the right side in pixels
+ * @param right
+ * An int specifying the width of the bottom in pixels
+ * @param color
+ * A Color to use for the border
+ * @return The MatteBorder object
+ */
+ public static MatteBorder createMatteBorder(int top, int left, int bottom,
+ int right, Color color)
+ {
+ return new MatteBorder(top, left, bottom, right, color);
+ }
+
+ /**
+ * Create a matte-look border that consists of multiple tiles of a specified
+ * icon. Multiple copies of the icon are placed side-by-side to fill up the
+ * border area.
+ *
+ * Note:
+ * If the icon doesn't load, the border area is painted gray.
+ *
+ * @param top An int specifying the width of the top in pixels
+ * @param left An int specifying the width of the left side in pixels
+ * @param bottom An int specifying the width of the right side in pixels
+ * @param right An int specifying the width of the bottom in pixels
+ * @param tileIcon The Icon object used for the border tiles
+ *
+ * @return The MatteBorder object
+ */
+ public static MatteBorder createMatteBorder(int top, int left, int bottom,
+ int right, Icon tileIcon)
+ {
+ return new MatteBorder(top, left, bottom, right, tileIcon);
+ }
+}