a24501ac2e9ff6c3abb693134d11edc760acf5b9
[scilab.git] / scilab / modules / renderer / src / java / org / scilab / modules / renderer / JoGLView / axes / ruler / UserDefineGraduation.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2009-2012 - DIGITEO - Pierre Lando
4  *
5  * This file must be used under the terms of the CeCILL.
6  * This source file is licensed as described in the file COPYING, which
7  * you should have received as part of this distribution.  The terms
8  * are also available at
9  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10  */
11
12 package org.scilab.modules.renderer.JoGLView.axes.ruler;
13
14 import org.scilab.forge.scirenderer.ruler.graduations.Graduations;
15 import org.scilab.modules.graphic_objects.axes.AxisProperty;
16
17 import java.text.DecimalFormat;
18 import java.util.Arrays;
19 import java.util.LinkedList;
20 import java.util.List;
21
22 /**
23  * @author Pierre Lando
24  */
25 class UserDefineGraduation implements Graduations {
26     private final AxisProperty axisProperty;
27     private final double lowerBound;
28     private final double upperBound;
29
30     private List<Double> allValues;
31
32     public UserDefineGraduation(AxisProperty axisProperty, double lowerBound, double upperBound) {
33         this.axisProperty = axisProperty;
34         this.lowerBound = lowerBound;
35         this.upperBound = upperBound;
36     }
37
38     @Override
39     public double getLowerBound() {
40         return lowerBound;
41     }
42
43     @Override
44     public boolean isLowerBoundIncluded() {
45         return true;
46     }
47
48     @Override
49     public double getUpperBound() {
50         return upperBound;
51     }
52
53     @Override
54     public boolean isUpperBoundIncluded() {
55         return true;
56     }
57
58     @Override
59     public boolean contain(double value) {
60         return (getLowerBound() <= value) && (value <= getUpperBound());
61     }
62
63     @Override
64     public DecimalFormat getFormat() {
65         /**
66          * Will never be used. The label was defined by the user too.
67          */
68         return new DecimalFormat();
69     }
70
71     @Override
72     public List<Double> getAllValues() {
73         if (allValues == null) {
74             allValues = new LinkedList<Double>(Arrays.asList(axisProperty.getTicksLocations()));
75         }
76         return allValues;
77     }
78
79     @Override
80     public List<Double> getNewValues() {
81         return getAllValues();
82     }
83
84     @Override
85     public Graduations getParentGraduations() {
86         return null;
87     }
88
89     @Override
90     public Graduations getMore() {
91         return null;
92     }
93
94     @Override
95     public Graduations getAlternative() {
96         return null;
97     }
98
99     @Override
100     public Graduations getSubGraduations() {
101         // TODO
102         return null;
103     }
104
105     @Override
106     public int getSubDensity() {
107         return axisProperty.getSubticks() + 1;
108     }
109
110 }