Bug 6840 fixed: Add new line_style
[scilab.git] / scilab / modules / graphic_objects / src / java / org / scilab / modules / graphic_objects / contouredObject / Line.java
index 0323c98..d172f91 100644 (file)
@@ -24,15 +24,15 @@ public class Line {
     public enum LinePropertyType { MODE, LINESTYLE, THICKNESS, COLOR };
 
     /** Line style */
-    public enum LineType { SOLID, DASH, DASH_DOT, LONG_DASH_DOT, BIG_DASH_DOT, BIG_DASH_LONG_DASH, DOT, DOUBLE_DOT;
-
-                           /**
-                            * Converts a scilab line style index to the corresponding line type.
-                            * @param sciIndex the scilab index.
-                            * @return the line type as enum.
-                            */
-    public static LineType fromScilabIndex(Integer sciIndex) {
-        switch (sciIndex) {
+    public enum LineType { SOLID, DASH, DASH_DOT, LONG_DASH_DOT, BIG_DASH_DOT, BIG_DASH_LONG_DASH, DOT, DOUBLE_DOT, LONG_BLANK_DOT, BIG_BLANK_DOT;
+
+        /**
+         * Converts a scilab line style index to the corresponding line type.
+         * @param sciIndex the scilab index.
+         * @return the line type as enum.
+         */
+        public static LineType fromScilabIndex(Integer sciIndex) {
+            switch (sciIndex) {
             case 1:
                 return SOLID;
             case 2:
@@ -49,25 +49,29 @@ public class Line {
                 return DOT;
             case 8:
                 return DOUBLE_DOT;
+            case 9:
+                return LONG_BLANK_DOT;
+            case 10:
+                return BIG_BLANK_DOT;
             default:
                 return SOLID;
+            }
         }
-    }
 
-    /**
-     * Converts the line type to the corresponding scilab line style index.
-     * @return  the scilab line style index corresponding to this line type.
-     */
-    public int asScilabIndex() {
-        return ordinal() + 1;
-    }
+        /**
+         * Converts the line type to the corresponding scilab line style index.
+         * @return  the scilab line style index corresponding to this line type.
+         */
+        public int asScilabIndex() {
+            return ordinal() + 1;
+        }
 
-    /**
-     * Converts the line type to a 16-bit pattern.
-     * @return the 16-bit pattern corresponding to the line type.
-     */
-    public short asPattern() {
-        switch (this) {
+        /**
+         * Converts the line type to a 16-bit pattern.
+         * @return the 16-bit pattern corresponding to the line type.
+         */
+        public short asPattern() {
+            switch (this) {
             case DASH:
                 return (short) 0x07FF; // 5 blanks, 11 solids
             case DASH_DOT:
@@ -82,12 +86,16 @@ public class Line {
                 return (short) 0x5555; // (1 blank, 1 solid) x 8
             case DOUBLE_DOT:
                 return (short) 0x3333; // (2 blanks, 2 solids) x 4
+            case LONG_BLANK_DOT:
+                return (short) 0x1111; // (3 blanks, 1 solids) x 4
+            case BIG_BLANK_DOT:
+                return (short) 0x0101; // (7 blanks, 1 solids) x 2
             default:
             case SOLID:
                 return (short) 0xFFFF; // 16 solids, unused equivalent to no stipple
+            }
         }
     }
-                         }
 
     /** Specifies whether the line is drawn or not */
     private boolean mode;