-package org.simantics.spreadsheet.ui;\r
-\r
-import java.awt.Color;\r
-import java.awt.Component;\r
-import java.awt.Graphics;\r
-import java.awt.Insets;\r
-\r
-import javax.swing.border.AbstractBorder;\r
-import javax.swing.border.Border;\r
-\r
-public class TableBorder extends AbstractBorder {\r
-\r
- private static final long serialVersionUID = -2732591061826521471L;\r
- private static Border blackLine;\r
- private static Border grayLine;\r
-\r
- protected int thickness;\r
- protected Color lineColor;\r
- protected boolean roundedCorners;\r
-\r
- final public static TableBorder BORDER = new TableBorder(DefaultLookup.BORDER, 0);\r
-\r
- /** Convenience method for getting the Color.black LineBorder of thickness 1.\r
- */\r
- public static Border createBlackLineBorder() {\r
- if (blackLine == null) {\r
- blackLine = new TableBorder(Color.black, 1);\r
- }\r
- return blackLine;\r
- }\r
-\r
- /** Convenience method for getting the Color.gray LineBorder of thickness 1.\r
- */\r
- public static Border createGrayLineBorder() {\r
- if (grayLine == null) {\r
- grayLine = new TableBorder(Color.gray, 1);\r
- }\r
- return grayLine;\r
- }\r
-\r
- /** \r
- * Creates a line border with the specified color and a \r
- * thickness = 1.\r
- * @param color the color for the border\r
- */\r
- public TableBorder(Color color) {\r
- this(color, 1, false);\r
- }\r
-\r
- /**\r
- * Creates a line border with the specified color and thickness.\r
- * @param color the color of the border\r
- * @param thickness the thickness of the border\r
- */\r
- public TableBorder(Color color, int thickness) {\r
- this(color, thickness, false);\r
- }\r
-\r
- /**\r
- * Creates a line border with the specified color, thickness,\r
- * and corner shape.\r
- * @param color the color of the border\r
- * @param thickness the thickness of the border\r
- * @param roundedCorners whether or not border corners should be round\r
- * @since 1.3\r
- */\r
- public TableBorder(Color color, int thickness, boolean roundedCorners) {\r
- lineColor = color;\r
- this.thickness = thickness;\r
- this.roundedCorners = roundedCorners;\r
- }\r
-\r
- /**\r
- * Paints the border for the specified component with the \r
- * specified position and size.\r
- * @param c the component for which this border is being painted\r
- * @param g the paint graphics\r
- * @param x the x position of the painted border\r
- * @param y the y position of the painted border\r
- * @param width the width of the painted border\r
- * @param height the height of the painted border\r
- */\r
- public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {\r
-\r
- Color oldColor = g.getColor();\r
- int i;\r
-\r
- /// PENDING(klobad) How/should do we support Roundtangles?\r
- g.setColor(lineColor);\r
- g.drawLine(1, height-1, 1 + width-1, height-1);\r
- g.drawLine(width-1, 0, width-1, height-1);\r
- // for(i = 0; i < thickness; i++) {\r
- // if(!roundedCorners)\r
- // g.drawRect(x+i, y+i, width-i-i-1, height-i-i-1);\r
- // else\r
- // g.drawRoundRect(x+i, y+i, width-i-i-1, height-i-i-1, thickness, thickness);\r
- // }\r
- g.setColor(oldColor);\r
-\r
- }\r
-\r
- /**\r
- * Returns the insets of the border.\r
- * @param c the component for which this border insets value applies\r
- */\r
- public Insets getBorderInsets(Component c) {\r
- return new Insets(thickness, thickness, thickness, thickness);\r
- }\r
-\r
- /** \r
- * Reinitialize the insets parameter with this Border's current Insets. \r
- * @param c the component for which this border insets value applies\r
- * @param insets the object to be reinitialized\r
- */\r
- public Insets getBorderInsets(Component c, Insets insets) {\r
- insets.left = insets.top = insets.right = insets.bottom = thickness;\r
- return insets;\r
- }\r
-\r
- /**\r
- * Returns the color of the border.\r
- */\r
- public Color getLineColor() {\r
- return lineColor;\r
- }\r
-\r
- /**\r
- * Returns the thickness of the border.\r
- */\r
- public int getThickness() {\r
- return thickness;\r
- }\r
-\r
- /**\r
- * Returns whether this border will be drawn with rounded corners.\r
- * @since 1.3\r
- */\r
- public boolean getRoundedCorners() {\r
- return roundedCorners;\r
- }\r
-\r
- /**\r
- * Returns whether or not the border is opaque.\r
- */\r
- public boolean isBorderOpaque() { \r
- return !roundedCorners; \r
- }\r
-\r
-}\r
+package org.simantics.spreadsheet.ui;
+
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Graphics;
+import java.awt.Insets;
+
+import javax.swing.border.AbstractBorder;
+import javax.swing.border.Border;
+
+public class TableBorder extends AbstractBorder {
+
+ private static final long serialVersionUID = -2732591061826521471L;
+ private static Border blackLine;
+ private static Border grayLine;
+
+ protected int thickness;
+ protected Color lineColor;
+ protected boolean roundedCorners;
+
+ final public static TableBorder BORDER = new TableBorder(DefaultLookup.BORDER, 0);
+
+ /** Convenience method for getting the Color.black LineBorder of thickness 1.
+ */
+ public static Border createBlackLineBorder() {
+ if (blackLine == null) {
+ blackLine = new TableBorder(Color.black, 1);
+ }
+ return blackLine;
+ }
+
+ /** Convenience method for getting the Color.gray LineBorder of thickness 1.
+ */
+ public static Border createGrayLineBorder() {
+ if (grayLine == null) {
+ grayLine = new TableBorder(Color.gray, 1);
+ }
+ return grayLine;
+ }
+
+ /**
+ * Creates a line border with the specified color and a
+ * thickness = 1.
+ * @param color the color for the border
+ */
+ public TableBorder(Color color) {
+ this(color, 1, false);
+ }
+
+ /**
+ * Creates a line border with the specified color and thickness.
+ * @param color the color of the border
+ * @param thickness the thickness of the border
+ */
+ public TableBorder(Color color, int thickness) {
+ this(color, thickness, false);
+ }
+
+ /**
+ * Creates a line border with the specified color, thickness,
+ * and corner shape.
+ * @param color the color of the border
+ * @param thickness the thickness of the border
+ * @param roundedCorners whether or not border corners should be round
+ * @since 1.3
+ */
+ public TableBorder(Color color, int thickness, boolean roundedCorners) {
+ lineColor = color;
+ this.thickness = thickness;
+ this.roundedCorners = roundedCorners;
+ }
+
+ /**
+ * Paints the border for the specified component with the
+ * specified position and size.
+ * @param c the component for which this border is being painted
+ * @param g the paint graphics
+ * @param x the x position of the painted border
+ * @param y the y position of the painted border
+ * @param width the width of the painted border
+ * @param height the height of the painted border
+ */
+ public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
+
+ Color oldColor = g.getColor();
+ int i;
+
+ /// PENDING(klobad) How/should do we support Roundtangles?
+ g.setColor(lineColor);
+ g.drawLine(1, height-1, 1 + width-1, height-1);
+ g.drawLine(width-1, 0, width-1, height-1);
+ // for(i = 0; i < thickness; i++) {
+ // if(!roundedCorners)
+ // g.drawRect(x+i, y+i, width-i-i-1, height-i-i-1);
+ // else
+ // g.drawRoundRect(x+i, y+i, width-i-i-1, height-i-i-1, thickness, thickness);
+ // }
+ g.setColor(oldColor);
+
+ }
+
+ /**
+ * Returns the insets of the border.
+ * @param c the component for which this border insets value applies
+ */
+ public Insets getBorderInsets(Component c) {
+ return new Insets(thickness, thickness, thickness, thickness);
+ }
+
+ /**
+ * Reinitialize the insets parameter with this Border's current Insets.
+ * @param c the component for which this border insets value applies
+ * @param insets the object to be reinitialized
+ */
+ public Insets getBorderInsets(Component c, Insets insets) {
+ insets.left = insets.top = insets.right = insets.bottom = thickness;
+ return insets;
+ }
+
+ /**
+ * Returns the color of the border.
+ */
+ public Color getLineColor() {
+ return lineColor;
+ }
+
+ /**
+ * Returns the thickness of the border.
+ */
+ public int getThickness() {
+ return thickness;
+ }
+
+ /**
+ * Returns whether this border will be drawn with rounded corners.
+ * @since 1.3
+ */
+ public boolean getRoundedCorners() {
+ return roundedCorners;
+ }
+
+ /**
+ * Returns whether or not the border is opaque.
+ */
+ public boolean isBorderOpaque() {
+ return !roundedCorners;
+ }
+
+}