Bug 12673 fixed: Ticks were drawn outside of axes area 88/13188/2
Calixte DENIZET [Wed, 20 Nov 2013 16:31:50 +0000 (17:31 +0100)]
Change-Id: Idcc4ac6a20a5d8ad5b60ac3c77830f0ce7224728

scilab/CHANGES_5.5.X
scilab/modules/graphics/tests/nonreg_tests/bug_12673.tst [new file with mode: 0644]
scilab/modules/renderer/src/java/org/scilab/modules/renderer/JoGLView/axes/ruler/UserDefineGraduation.java

index 54cac8b..985b100 100644 (file)
@@ -88,6 +88,8 @@ Scilab Bug Fixes
 
 * Bug #12492 fixed - Exported EPS files were invalid when dash patterns were too long.
 
+* Bug #12673 fixed - Ticks were drawn outside of axes area.
+
 * Bug #12682 fixed - Key events were disabled after zooming.
 
 * Bug #12769 fixed - xset("window", 1) did not set the current axes.
diff --git a/scilab/modules/graphics/tests/nonreg_tests/bug_12673.tst b/scilab/modules/graphics/tests/nonreg_tests/bug_12673.tst
new file mode 100644 (file)
index 0000000..15414e6
--- /dev/null
@@ -0,0 +1,23 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Calixte DENIZET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- INTERACTIVE TEST -->
+
+// <-- Non-regression test for bug 12673 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/12673
+//
+// <-- Short Description -->
+// Ticks were drawn outside of axes area
+
+clf();
+plot([0,1], [0,1]);
+a = gca();
+
+// Check that there are no ticks (-0.1 & 1.2) outside the x axis.
+a.x_ticks = tlist(["ticks", "locations", "labels"], -0.1:0.2:1.2, string(-0.1:0.2:1.2));
\ No newline at end of file
index 46aa52d..044ce41 100644 (file)
@@ -73,7 +73,13 @@ class UserDefineGraduation implements Graduations {
     @Override
     public List<Double> getAllValues() {
         if (allValues == null) {
-            allValues = new LinkedList<Double>(Arrays.asList(axisProperty.getTicksLocations()));
+            Double[] locs = axisProperty.getTicksLocations();
+            allValues = new LinkedList<Double>();
+            for (Double d : locs) {
+                if (contain(d)) {
+                    allValues.add(d);
+                }
+            }
         }
         return allValues;
     }