Update Copyright + Do not generate files if propertiesMap not changed
[scilab.git] / scilab / modules / graphic_objects / src / java / org / scilab / modules / graphic_objects / graphicObject / GraphicClippableObject.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2010 - DIGITEO - Manuel JULIACHS
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.1-en.txt
10  *
11  */
12
13 package org.scilab.modules.graphic_objects.graphicObject;
14
15 import org.scilab.modules.graphic_objects.graphicObject.ClippableProperty.ClipStateType;
16 import org.scilab.modules.graphic_objects.graphicObject.ClippableProperty.ClippablePropertyType;
17 import static org.scilab.modules.graphic_objects.graphicObject.GraphicObjectProperties.*;
18
19 /**
20  * GraphicClippableObject class
21  * @author Manuel JULIACHS
22  */
23 public abstract class GraphicClippableObject extends GraphicObject {
24     /** GraphicClippableObject properties names */
25     private enum GraphicClippableObjectProperty { CLIPPROPERTY };
26
27     /** Stores the actual clipping state */
28     private ClippableProperty clipProperty;
29
30     /** Default constructor */
31     public GraphicClippableObject() {
32         super();
33         clipProperty = new ClippableProperty();
34     }
35
36     /**
37      * Returns the enum associated to a property name
38      * @param propertyName the property name
39      * @return the property enum
40      */
41     public Object getPropertyFromName(int propertyName) {
42         switch (propertyName) {
43             case __GO_CLIP_PROPERTY__ :
44                 return GraphicClippableObjectProperty.CLIPPROPERTY;
45             case __GO_CLIP_STATE__ :
46                 return ClippablePropertyType.CLIPSTATE;
47             case __GO_CLIP_BOX__ :
48                 return ClippablePropertyType.CLIPBOX;
49             case __GO_CLIP_BOX_SET__ :
50                 return ClippablePropertyType.CLIPBOXSET;
51             default :
52                 return super.getPropertyFromName(propertyName);
53         }
54     }
55
56     /**
57      * Fast property get method
58      * @param property the property to get
59      * @return the property value
60      */
61     public Object getProperty(Object property) {
62         if (property == GraphicClippableObjectProperty.CLIPPROPERTY) {
63             return getClipProperty();
64         } else if (property == ClippablePropertyType.CLIPSTATE) {
65             return getClipState();
66         } else if (property == ClippablePropertyType.CLIPBOX) {
67             return getClipBox();
68         } else if (property == ClippablePropertyType.CLIPBOXSET) {
69             return getClipBoxSet();
70         } else {
71             return super.getProperty(property);
72         }
73     }
74
75     /**
76      * Fast property set method
77      * @param property the property to set
78      * @param value the property value
79      * @return true if the property has been set, false otherwise
80      */
81     public UpdateStatus setProperty(Object property, Object value) {
82         if (property == GraphicClippableObjectProperty.CLIPPROPERTY) {
83             setClipProperty((ClippableProperty) value);
84         } else if (property == ClippablePropertyType.CLIPSTATE) {
85             setClipState((Integer) value);
86         } else if (property == ClippablePropertyType.CLIPBOX) {
87             setClipBox((Double[]) value);
88         } else if (property == ClippablePropertyType.CLIPBOXSET) {
89             setClipBoxSet((Boolean) value);
90         } else {
91             return super.setProperty(property, value);
92         }
93
94         return UpdateStatus.Success;
95     }
96
97     /**
98      * @return the clipProperty
99      */
100     public ClippableProperty getClipProperty() {
101         return clipProperty;
102     }
103
104     /**
105      * @param clipProperty the clipProperty to set
106      */
107     public void setClipProperty(ClippableProperty clipProperty) {
108         this.clipProperty = clipProperty;
109     }
110
111     /**
112      * @return the clipBox
113      */
114     public Double[] getClipBox() {
115         return clipProperty.getClipBox();
116     }
117
118     /**
119      * @param clipBox the clipBox to set
120      */
121     public void setClipBox(Double[] clipBox) {
122         clipProperty.setClipBox(clipBox);
123     }
124
125     /**
126      * @return the clipState
127      */
128     public Integer getClipState() {
129         return getClipStateAsEnum().ordinal();
130     }
131
132     /**
133      * @return the clipState
134      */
135     public ClipStateType getClipStateAsEnum() {
136         return clipProperty.getClipState();
137     }
138
139     /**
140      * @param clipState the clipState to set
141      */
142     public void setClipState(Integer clipState) {
143         setClipStateAsEnum(ClipStateType.intToEnum(clipState));
144     }
145
146     /**
147      * @param clipState the clipState to set
148      */
149     public void setClipStateAsEnum(ClipStateType clipState) {
150         clipProperty.setClipState(clipState);
151     }
152
153     /**
154      * @return the clipBoxSet
155      */
156     public Boolean getClipBoxSet() {
157         return clipProperty.getClipBoxSet();
158     }
159
160     /**
161      * @param clipBoxSet the clipBoxSet to set
162      */
163     public void setClipBoxSet(Boolean clipBoxSet) {
164         clipProperty.setClipBoxSet(clipBoxSet);
165     }
166
167 }