aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/org/apache/poi/hssf/usermodel/HSSFShape.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/java/org/apache/poi/hssf/usermodel/HSSFShape.java')
-rw-r--r--src/java/org/apache/poi/hssf/usermodel/HSSFShape.java195
1 files changed, 195 insertions, 0 deletions
diff --git a/src/java/org/apache/poi/hssf/usermodel/HSSFShape.java b/src/java/org/apache/poi/hssf/usermodel/HSSFShape.java
new file mode 100644
index 0000000000..61620f2351
--- /dev/null
+++ b/src/java/org/apache/poi/hssf/usermodel/HSSFShape.java
@@ -0,0 +1,195 @@
+package org.apache.poi.hssf.usermodel;
+
+/**
+ * An abstract shape.
+ *
+ * @author Glen Stampoultzis (glens at apache.org)
+ */
+public abstract class HSSFShape
+{
+ public static final int LINEWIDTH_ONE_PT = 12700;
+ public static final int LINEWIDTH_DEFAULT = 9525;
+
+ public static final int LINESTYLE_SOLID = 0; // Solid (continuous) pen
+ public static final int LINESTYLE_DASHSYS = 1; // PS_DASH system dash style
+ public static final int LINESTYLE_DOTSYS = 2; // PS_DOT system dash style
+ public static final int LINESTYLE_DASHDOTSYS = 3; // PS_DASHDOT system dash style
+ public static final int LINESTYLE_DASHDOTDOTSYS = 4; // PS_DASHDOTDOT system dash style
+ public static final int LINESTYLE_DOTGEL = 5; // square dot style
+ public static final int LINESTYLE_DASHGEL = 6; // dash style
+ public static final int LINESTYLE_LONGDASHGEL = 7; // long dash style
+ public static final int LINESTYLE_DASHDOTGEL = 8; // dash short dash
+ public static final int LINESTYLE_LONGDASHDOTGEL = 9; // long dash short dash
+ public static final int LINESTYLE_LONGDASHDOTDOTGEL = 10; // long dash short dash short dash
+ public static final int LINESTYLE_NONE = -1;
+
+ HSSFShape parent;
+ HSSFAnchor anchor;
+ int lineStyleColor = 0x08000040;
+ int fillColor = 0x08000009;
+ int lineWidth = LINEWIDTH_DEFAULT; // 12700 = 1pt
+ int lineStyle = LINESTYLE_SOLID;
+ boolean noFill = false;
+
+ /**
+ * Create a new shape with the specified parent and anchor.
+ */
+ HSSFShape( HSSFShape parent, HSSFAnchor anchor )
+ {
+ this.parent = parent;
+ this.anchor = anchor;
+ }
+
+ /**
+ * Gets the parent shape.
+ */
+ public HSSFShape getParent()
+ {
+ return parent;
+ }
+
+ /**
+ * @return the anchor that is used by this shape.
+ */
+ public HSSFAnchor getAnchor()
+ {
+ return anchor;
+ }
+
+ /**
+ * Sets a particular anchor. A top-level shape must have an anchor of
+ * HSSFClientAnchor. A child anchor must have an anchor of HSSFChildAnchor
+ *
+ * @param anchor the anchor to use.
+ * @throws IllegalArgumentException when the wrong anchor is used for
+ * this particular shape.
+ *
+ * @see HSSFChildAnchor
+ * @see HSSFClientAnchor
+ */
+ public void setAnchor( HSSFAnchor anchor )
+ {
+ if ( parent == null )
+ {
+ if ( anchor instanceof HSSFChildAnchor )
+ throw new IllegalArgumentException( "Must use client anchors for shapes directly attached to sheet." );
+ }
+ else
+ {
+ if ( anchor instanceof HSSFClientAnchor )
+ throw new IllegalArgumentException( "Must use child anchors for shapes attached to groups." );
+ }
+
+ this.anchor = anchor;
+ }
+
+ /**
+ * The color applied to the lines of this shape.
+ */
+ public int getLineStyleColor()
+ {
+ return lineStyleColor;
+ }
+
+ /**
+ * The color applied to the lines of this shape.
+ */
+ public void setLineStyleColor( int lineStyleColor )
+ {
+ this.lineStyleColor = lineStyleColor;
+ }
+
+ /**
+ * The color applied to the lines of this shape.
+ */
+ public void setLineStyleColor( int red, int green, int blue )
+ {
+ this.lineStyleColor = ((blue) << 16) | ((green) << 8) | red;
+ }
+
+ /**
+ * The color used to fill this shape.
+ */
+ public int getFillColor()
+ {
+ return fillColor;
+ }
+
+ /**
+ * The color used to fill this shape.
+ */
+ public void setFillColor( int fillColor )
+ {
+ this.fillColor = fillColor;
+ }
+
+ /**
+ * The color used to fill this shape.
+ */
+ public void setFillColor( int red, int green, int blue )
+ {
+ this.fillColor = ((blue) << 16) | ((green) << 8) | red;
+ }
+
+ /**
+ * @return returns with width of the line in EMUs. 12700 = 1 pt.
+ */
+ public int getLineWidth()
+ {
+ return lineWidth;
+ }
+
+ /**
+ * Sets the width of the line. 12700 = 1 pt.
+ *
+ * @param lineWidth width in EMU's. 12700EMU's = 1 pt
+ *
+ * @see HSSFShape#LINEWIDTH_ONE_PT
+ */
+ public void setLineWidth( int lineWidth )
+ {
+ this.lineWidth = lineWidth;
+ }
+
+ /**
+ * @return One of the constants in LINESTYLE_*
+ */
+ public int getLineStyle()
+ {
+ return lineStyle;
+ }
+
+ /**
+ * Sets the line style.
+ *
+ * @param lineStyle One of the constants in LINESTYLE_*
+ */
+ public void setLineStyle( int lineStyle )
+ {
+ this.lineStyle = lineStyle;
+ }
+
+ /**
+ * @return true if this shape is not filled with a color.
+ */
+ public boolean isNoFill()
+ {
+ return noFill;
+ }
+
+ /**
+ * Sets whether this shape is filled or transparent.
+ */
+ public void setNoFill( boolean noFill )
+ {
+ this.noFill = noFill;
+ }
+
+ /**
+ * Count of all children and their childrens children.
+ */
+ public int countOfAllChildren()
+ {
+ return 1;
+ }
+}