@@ DEV @@ : Try to use Java MVC for graphics component.
[scilab.git] / scilab / modules / graphic_objects / src / java / org / scilab / modules / graphic_objects / graphicController / GraphicController.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.graphicController;
14
15 import java.rmi.server.UID;
16 import java.util.HashSet;
17 import java.util.Iterator;
18 import java.util.Set;
19
20 import org.scilab.modules.graphic_objects.graphicModel.GraphicModel;
21 import org.scilab.modules.graphic_objects.graphicObject.GraphicObject.Type;
22
23
24 /**
25  * GraphicController class
26  * @author Bruno JOFRET
27  */
28 public class GraphicController {
29
30     // TBD, deactivated for now
31     //private Set<IView> allViews = new HashSet<IView>();
32     
33     private static GraphicController me = null; 
34     
35     /**
36      * Default constructor
37      */
38     private GraphicController() { }
39     
40     /**
41      * Returns the controller
42      * @return the controller
43      */
44     public static GraphicController getController() {
45         if (me == null) {
46             me = new GraphicController();
47         }
48         
49         return me;
50     }
51     
52     // TBD, deactivated for now
53     /*
54     public void register(IView view) {
55         allViews.add(view);
56     }
57     */
58     
59     /**
60      * Creates a UID
61      * @return the created UID
62      */
63     public UID createUID() {
64         return new UID();
65     }
66     
67     /**
68      * Returns the object associated to an id 
69      * @param id the object id
70      * @return the object
71      */
72     public Object getObjectFromId(String id) {
73         Object object;
74         object = GraphicModel.getModel().getObjectFromId(id);
75
76         return object;
77     }
78     
79     /**
80      * Fast property set method
81      * @param id the object id
82      * @param prop the property name
83      * @param value the property value
84      */
85     public void setPropertyFast(String id, String prop, Object value) {
86         GraphicModel.getModel().setPropertyFast(id, prop, value);
87     }
88
89     /**
90      * Fast property get method
91      * @param id the object id
92      * @param prop the property name
93      * @return the property value
94      */
95     public Object getPropertyFast(String id, String prop) {
96         return GraphicModel.getModel().getPropertyFast(id, prop);
97     }
98
99     /**
100      * Sets a property
101      * @param id the object id
102      * @param prop the property name
103      * @param value the property value
104      */
105     public void setProperty(String id, String prop, Object value) {
106         GraphicModel.getModel().setProperty(id, prop, value);
107         objectUpdate(id);
108     }
109     
110     /**
111      * Returns a null property
112      * @param id the object id
113      * @param prop the property name
114      * @return the null property
115      */
116     public Object getNullProperty(String id, String prop) {
117         return GraphicModel.getModel().getNullProperty(id, prop);
118     }
119     
120     /**
121      * Returns a property
122      * @param id the object id
123      * @param prop the property name
124      * @return the property value
125      */
126         public Object getProperty(String id, String prop) {
127                 return GraphicModel.getModel().getProperty(id, prop);
128     }
129     
130         /**
131          * Asks the model to create a new object
132          * @param type the object type
133          * @return the created object's id
134          */
135     public String askObject(Type type) {
136         UID id = createUID();
137         GraphicModel.getModel().createObject(id.toString(), type);
138         objectCreated(id.toString());
139         
140         return id.toString();
141     }
142     
143     
144     /**
145      * Notifies the existing views that an object has been created
146      * @param id the created object's id
147      */
148     public void objectCreated(String id) {
149         // TBD, deactivated for now
150     
151         /*
152         Iterator<IView> itr = allViews.iterator();
153         while (itr.hasNext()) {
154                 System.out.format("createObject: %s\n", id.toString());
155             IView currentView = itr.next();
156             currentView.createObject(id);
157         }
158         objectUpdate(id);
159         */
160     }
161
162     /**
163      * Notified the existing views that an object has been updated 
164      * @param id the updated object's id
165      */
166     public void objectUpdate(String id) {
167         
168     // TBD, deactivated for now
169     /*
170         Iterator<IView> itr = allViews.iterator();
171         while (itr.hasNext()) {
172             itr.next().updateObject(id);
173         }
174         */
175     }
176
177
178     /**
179      * Deletes an object
180      * @param id the deleted object's id
181      */
182     public void deleteObject(String id) {
183            GraphicModel.getModel().deleteObject(id);
184            
185            // TBD, deactivated for now
186            /*
187            Iterator<IView> itr = allViews.iterator();
188                 while (itr.hasNext()) {
189                     itr.next().deleteObject(id);
190                 }
191                 */
192     }
193 }