CallGraphicController: protect agains null values
[scilab.git] / scilab / modules / graphic_objects / src / java / org / scilab / modules / graphic_objects / CallGraphicController.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2010 - DIGITEO - Bruno JOFRET
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
13 package org.scilab.modules.graphic_objects;
14
15 import org.scilab.modules.graphic_objects.console.Console;
16 import org.scilab.modules.graphic_objects.graphicController.GraphicController;
17 import org.scilab.modules.graphic_objects.graphicObject.GraphicObject;
18 import org.scilab.modules.graphic_objects.graphicView.ScilabView;
19 import org.scilab.modules.graphic_objects.utils.MenuBarBuilder;
20
21 /**
22  * This is a static class to access all controller capabilities
23  * from C/C++ code through JNI
24  * See SCI/modules/graphic_objects/src/jni/graphic_objects.giws.xml for other details.
25  **/
26 public final class CallGraphicController {
27
28     public static void setGraphicObjectRelationship(String parentId, String childId) {
29         GraphicController.getController().setGraphicObjectRelationship(parentId, childId);
30     }
31
32     public static void removeRelationShipAndDelete(String parentId) {
33         GraphicController.getController().removeRelationShipAndDelete(parentId);
34     }
35
36     public static String cloneGraphicObject(String id) {
37         return GraphicController.getController().cloneObject(id);
38     }
39
40     public static String askGraphicObject(int typeName) {
41         return GraphicController.getController().askObject(GraphicObject.getTypeFromName(typeName));
42     }
43
44     public static void deleteGraphicObject(String id) {
45         GraphicController.getController().deleteObject(id);
46     }
47
48     private static boolean setGraphicObjectProperty(String id, int propertyName, Object value) {
49         return GraphicController.getController().setProperty(id, propertyName, value);
50     }
51
52     private static Object getGraphicObjectProperty(String id, int propertyName) {
53         return GraphicController.getController().getProperty(id, propertyName);
54     }
55
56     public static boolean setGraphicObjectProperty(String id, int propertyName, String value) {
57         return setGraphicObjectProperty(id, propertyName, (Object) value);
58     }
59
60     public static boolean setGraphicObjectProperty(String id, int propertyName, String[] value) {
61         return setGraphicObjectProperty(id, propertyName, (Object) value);
62     }
63
64     public static boolean setGraphicObjectProperty(String id, int propertyName, double value) {
65         return setGraphicObjectProperty(id, propertyName, (Object) new Double(value));
66     }
67
68     public static boolean setGraphicObjectProperty(String id, int propertyName, double[] value) {
69         Double[] array = new Double[value.length];
70
71         for (int i = 0; i < value.length; i++) {
72             array[i] = value[i];
73         }
74
75         return setGraphicObjectProperty(id, propertyName, (Object) array);
76     }
77
78
79     public static boolean setGraphicObjectProperty(String id, int propertyName, int value) {
80         return setGraphicObjectProperty(id, propertyName, (Object) new Integer(value));
81     }
82
83     public static boolean setGraphicObjectProperty(String id, int propertyName, int[] value) {
84         Integer[] array = new Integer[value.length];
85
86         for (int i = 0; i < value.length; i++) {
87             array[i] = value[i];
88         }
89
90         return setGraphicObjectProperty(id, propertyName, (Object) array);
91     }
92
93     public static boolean setGraphicObjectProperty(String id, int propertyName, boolean value) {
94         return setGraphicObjectProperty(id, propertyName, (Object) new Boolean(value));
95     }
96
97     public static boolean setGraphicObjectProperty(String id, int propertyName, boolean[] value) {
98         Boolean[] array = new Boolean[value.length];
99
100         for (int i = 0; i < value.length; i++) {
101             array[i] = value[i];
102         }
103
104         return setGraphicObjectProperty(id, propertyName, (Object) array);
105     }
106
107     public static String getGraphicObjectPropertyAsString(String id, int propertyName) {
108         return (String) getGraphicObjectProperty(id, propertyName);
109     }
110
111     public static String[] getGraphicObjectPropertyAsStringVector(String id, int propertyName) {
112         return (String[]) getGraphicObjectProperty(id, propertyName);
113     }
114
115     public static double getGraphicObjectPropertyAsDouble(String id, int propertyName) {
116         return (Double) getGraphicObjectProperty(id, propertyName);
117     }
118
119     public static double[] getGraphicObjectPropertyAsDoubleVector(String id, int propertyName) {
120         Double[] tmp = (Double[]) getGraphicObjectProperty(id, propertyName);
121
122         if (tmp == null) {
123             return null;
124         }
125
126         double[] result = new double[tmp.length];
127
128         for (int i = 0; i < result.length; i++) {
129             result[i] = tmp[i];
130         }
131
132         return result;
133     }
134
135     public static int getGraphicObjectPropertyAsInteger(String id, int propertyName) {
136         return (Integer) getGraphicObjectProperty(id, propertyName);
137     }
138
139     public static int[] getGraphicObjectPropertyAsIntegerVector(String id, int propertyName) {
140         Integer[] tmp = (Integer[]) getGraphicObjectProperty(id, propertyName);
141
142         if (tmp == null) {
143             return null;
144         }
145
146         int[] result = new int[tmp.length];
147
148         for (int i = 0; i < result.length; i++) {
149             result[i] = tmp[i];
150         }
151
152         return result;
153     }
154
155     public static int getGraphicObjectPropertyAsBoolean(String id, int propertyName) {
156         int result;
157
158         Boolean tmpValue = (Boolean) getGraphicObjectProperty(id, propertyName);
159
160         result = Boolean.TRUE.equals(tmpValue) ? 1 : 0;
161
162         return result;
163     }
164
165     public static int[] getGraphicObjectPropertyAsBooleanVector(String id, int propertyName) {
166         Boolean[] tmp = (Boolean[]) getGraphicObjectProperty(id, propertyName);
167
168         if (tmp == null) {
169             return null;
170         }
171
172         int[] result = new int[tmp.length];
173
174         for (int i = 0; i < result.length; i++) {
175             result[i] = tmp[i] ? 1 : 0;
176         }
177
178         return result;
179     }
180
181     public static void registerScilabView() {
182         GraphicController.getController().register(ScilabView.getScilabView());
183     }
184
185     public static void unregisterScilabView() {
186         GraphicController.getController().unregister(ScilabView.getScilabView());
187     }
188
189     public static String getConsoleIdentifier() {
190         return Console.getConsole().getIdentifier();
191     }
192
193     public static void buildFigureMenuBar(String figureId) {
194         MenuBarBuilder.buildFigureMenuBar(figureId);
195     }
196 }