Bug 6840 fixed: Add new line_style 52/12652/2
Calixte DENIZET [Tue, 24 Sep 2013 15:34:54 +0000 (17:34 +0200)]
Change-Id: I133c825dc2a68bf48a4ef74105d46a74f6aff1fb

scilab/CHANGES_5.5.X
scilab/modules/graphic_objects/src/java/org/scilab/modules/graphic_objects/contouredObject/Line.java
scilab/modules/graphics/help/en_US/axes_operations/axes_properties.xml
scilab/modules/graphics/tests/unit_tests/line_style.dia.ref
scilab/modules/graphics/tests/unit_tests/line_style.tst

index 2a7c77b..49fb460 100644 (file)
@@ -284,6 +284,8 @@ Bug Fixes
 
 * Bug #6752 fixed - unit test scilab.tst has been split in different tests.
 
+* Bug #6840 fixed - Add new line_style.
+
 * Bug #6988 fixed - Error messages in modules/data_structures/src/c/hmops.c were not standard.
 
 * Bug #7026 fixed - There was no unit test for plot2d.
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;
index 7bd358f..b63e776 100644 (file)
                                     This field contains the default <literal>line_style</literal>
                                     property value for Segs, Arcs, Rectangle and Polyline objects.
                                     <literal>line_style</literal> selects the type of line to be used to
-                                    draw lines . Its value should be an integer in [1 8]. 1
+                                    draw lines . Its value should be an integer in [1 10]. 1
                                     stand for solid, the other values stand for a selection of dashes
-                                    (dash, dash dot, longdash dot, bigdash dot, bigdash longdash, dot, double dot).
+                                    (dash, dash dot, longdash dot, bigdash dot, bigdash longdash, dot, double dot, longblank dot, bigblank dot).
                                 </para>
                             </listitem>
                         </varlistentry>
@@ -977,6 +977,10 @@ a.y_ticks = tlist(["ticks", "locations", "labels"], (-2:0.5:2)', ["0";"1";"2";"3
                 <revnumber>5.4.0</revnumber>
                 <revremark>line_style value 0 is obsolete, use 1 instead (both are equivalent for SOLID). Using value 0 will produce an error in Scilab 5.4.1.</revremark>
             </revision>
+            <revision>
+                <revnumber>5.5.0</revnumber>
+                <revremark>line_style values 9 and 10 can be used to have respectively longblank dot and bigblank dot styles.</revremark>
+            </revision>
         </revhistory>
     </refsection>
 </refentry>
index e33671f..93546a8 100644 (file)
@@ -1,6 +1,7 @@
 // =============================================================================
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) 2010 - DIGITEO - pierre.lando@scilab.org
+// Copyright (C) 2013 - Scilab Enterprises - Calixte DENIZET
 //
 // This file is distributed under the same license as the Scilab package.
 // =============================================================================
 // <-- Short Description -->
 //   Check line_style correctness
 // Try this :
-for i = [1:9] do
+for i = [1:11] do
   plot([i,i]);
   e=gce();
   e=e.children();
   e.line_style = i;
 end
-// check that you have bottom to up : dash, dash dot, longdash dot, bigdash dot, bigdash longdash, dot, double dot.
+// check that you have bottom to up : dash, dash dot, longdash dot, bigdash dot, bigdash longdash, dot, double dot, longblank dot, bigblank dot.
index 92f910d..64963e7 100644 (file)
@@ -1,6 +1,7 @@
 // =============================================================================
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) 2010 - DIGITEO - pierre.lando@scilab.org
+// Copyright (C) 2013 - Scilab Enterprises - Calixte DENIZET
 //
 // This file is distributed under the same license as the Scilab package.
 // =============================================================================
 
 // Try this :
 
-for i = [1:9] do
-  plot([i,i]);
-  e=gce();
-  e=e.children();
-  e.line_style = i;
+for i = [1:11] do
+    plot([i,i]);
+    e=gce();
+    e=e.children();
+    e.line_style = i;
 end
 
-// check that you have bottom to up : dash, dash dot, longdash dot, bigdash dot, bigdash longdash, dot, double dot.
+// check that you have bottom to up : dash, dash dot, longdash dot, bigdash dot, bigdash longdash, dot, double dot, longblank dot, bigblank dot.