KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > mmbase > module > gui > html > EditState


1 /*
2
3 This software is OSI Certified Open Source Software.
4 OSI Certified is a certification mark of the Open Source Initiative.
5
6 The license (Mozilla version 1.0) can be read at the MMBase site.
7 See http://www.MMBase.org/license
8
9 */

10 package org.mmbase.module.gui.html;
11
12 import java.util.*;
13 import org.mmbase.util.logging.*;
14 import org.mmbase.module.core.*;
15
16 /**
17  * EditState, controls the users edit session, keeps EditStateNodes
18  *
19  * @application SCAN - Removing this from Core requires changes in Module/MMObjectBuilder
20  * @author Daniel Ockeloen
21  * @author Hans Speijer
22  * @version $Id: EditState.java,v 1.18 2005/10/06 14:07:32 michiel Exp $
23  */

24 public class EditState {
25
26     /**
27     * Logging instance
28     */

29     private static Logger log = Logging.getLoggerInstance(EditState.class.getName());
30
31     private String JavaDoc user;
32
33     Vector nodes=new Vector();
34     EditStateNode curNode;
35     MMBase mmBase;
36
37     public EditState(String JavaDoc user,MMBase mmBase) {
38         if( mmBase != null ) {
39             this.mmBase=mmBase;
40         } else {
41             log.error("EditState("+mmBase+"): MMBase is not valid!");
42         }
43         if (user!=null) {
44             this.user=user;
45         } else {
46             log.error("EditState("+user+"): User is not valid");
47         }
48     }
49
50     public boolean pushState() {
51         curNode=new EditStateNode(mmBase);
52         nodes.addElement(curNode);
53         return true;
54     }
55
56     public boolean clear() {
57         nodes=new Vector();
58         return true;
59     }
60
61     public boolean popState() {
62         nodes.removeElement(curNode);
63         curNode=(EditStateNode)nodes.lastElement();
64         return true;
65     }
66
67     public Vector getEditStates() {
68         return nodes;
69     }
70
71     public boolean setSearchValue(String JavaDoc fieldname,Object JavaDoc value) {
72         boolean result = false;
73
74         if( fieldname != null )
75             if( !fieldname.equals("") )
76                 result = curNode.setSearchValue(fieldname,value);
77             else
78                 log.error("setSearchValue("+fieldname+","+value+"): fieldname is empty!");
79         else
80             log.error("setSearchValue("+fieldname+","+value+"): fieldname is null!");
81
82         return result;
83     }
84
85     public String JavaDoc getSearchValue(String JavaDoc name) {
86         String JavaDoc result = null;
87
88         if(name!=null)
89             if( !name.equals("") )
90                 result = curNode.getSearchValue(name);
91             else
92                 log.error("getSeachValue("+name+"): name is empty!");
93         else
94             log.error("getSeachValue("+name+"): name is null!");
95
96         return result;
97     }
98
99     public Hashtable getSearchValues() {
100         return curNode.getSearchValues();
101     }
102
103     public void clearSearchValues() {
104         curNode.clearSearchValues();
105     }
106
107     public boolean setHtmlValue(String JavaDoc fieldname,Object JavaDoc value) {
108         boolean result = false;
109
110         if( fieldname != null )
111             if( !fieldname.equals("") )
112                 result = curNode.setHtmlValue(fieldname,value);
113             else
114                 log.error("setHtmlValue("+fieldname+","+value+"): fieldname is !");
115         else
116             log.error("setHtmlValue("+fieldname+","+value+"): fieldname is null!");
117
118         return result;
119     }
120
121     public String JavaDoc getHtmlValue(String JavaDoc name) {
122         String JavaDoc result = null;
123
124         if( name != null )
125             if( !name.equals("") )
126                 result = curNode.getHtmlValue(name);
127             else
128                 log.error("getHtmlValue("+name+"): name is empty!");
129         else
130             log.error("getHtmlValue("+name+"): name is null!");
131
132         return result;
133     }
134
135     public Hashtable getHtmlValues() {
136         return curNode.getHtmlValues();
137     }
138
139     public void clearHtmlValues() {
140         curNode.clearHtmlValues();
141     }
142
143     public void setEditNode(String JavaDoc number,String JavaDoc userName) {
144         if( number != null )
145             if(!number.equals(""))
146                 if(userName!=null)
147                     if(!userName.equals("")) {
148                         delInsSaveList();
149                         curNode.setEditNode(number,userName);
150                     } else
151                         log.error("setEditNode("+number+","+userName+"): username is empty!");
152                 else
153                     log.error("setEditNode("+number+","+userName+"): username is null!");
154             else
155                 log.error("setEditNode("+number+","+userName+"): number is empty!");
156         else
157             log.error("setEditNode("+number+","+userName+"): number is null!");
158     }
159
160     public MMObjectNode getEditNode() {
161         if (curNode == null) return null;
162         return curNode.getEditNode();
163     }
164
165     public MMObjectNode getEditNode(int i) {
166         int pos=nodes.indexOf(curNode);
167         if ((pos-i)<0) return null;
168         EditStateNode node=(EditStateNode)nodes.elementAt(pos-i);
169         if (node==null) {
170             return null;
171         } else {
172             return node.getEditNode();
173         }
174     }
175
176     public EditStateNode getEditStateNode(int i) {
177         int pos=nodes.indexOf(curNode);
178         if ((pos-i)<0) return null;
179         EditStateNode node=(EditStateNode)nodes.elementAt(pos-i);
180         if (node==null) {
181             return null;
182         } else {
183             return node;
184         }
185     }
186
187     public void NewNode(String JavaDoc owner) {
188         curNode.getNewNode(owner);
189         delInsSaveList();
190     }
191
192     public void removeNode() {
193         curNode.removeNode();
194     }
195
196     public void removeRelations() {
197         curNode.removeRelations();
198     }
199
200     public void removeEd() {
201         curNode.removeNode();
202     }
203
204     public int getEditNodeNumber() {
205         return curNode.getEditNodeNumber();
206     }
207
208     public int getEditNodeSrcNumber() {
209         MMObjectNode snode=getEditSrcNode();
210         if (snode!=null) {
211             return snode.getIntValue("number");
212         }
213         return -1;
214     }
215
216     public int getEditNodeDstNumber() {
217         MMObjectNode snode=getEditDstNode();
218         if (snode!=null) {
219             return snode.getIntValue("number");
220         }
221         return -1;
222     }
223
224     public String JavaDoc getEditNodeSrcDutchName() {
225         MMObjectNode snode=getEditSrcNode();
226         if (snode!=null) {
227             String JavaDoc dname=snode.getBuilder().getSingularName();
228             if (dname!=null) return dname;
229         }
230         return "";
231     }
232
233     public String JavaDoc getEditNodeDstGuiIndicator() {
234         MMObjectNode dnode=getEditDstNode();
235         if (dnode!=null) {
236             String JavaDoc dgui=dnode.getGUIIndicator();
237             if (dgui!=null) return dgui;
238         }
239         return "";
240     }
241
242     public String JavaDoc getEditNodeSrcGuiIndicator() {
243         MMObjectNode snode=getEditSrcNode();
244         if (snode!=null) {
245             String JavaDoc sgui=snode.getGUIIndicator();
246             if (sgui!=null) return sgui;
247         }
248         return "";
249     }
250
251     public String JavaDoc getEditNodeDstDutchName() {
252         MMObjectNode snode=getEditDstNode();
253         if (snode!=null) {
254             String JavaDoc dname=snode.getBuilder().getSingularName();
255             if (dname!=null) return dname;
256         }
257         return "";
258     }
259
260     public String JavaDoc getEditNodeSrcName() {
261         MMObjectNode snode=getEditSrcNode();
262         if (snode!=null) {
263             String JavaDoc dname=snode.getName();
264             if (dname!=null) return dname;
265         }
266         return "";
267     }
268
269     public String JavaDoc getEditNodeDstName() {
270         MMObjectNode snode=getEditDstNode();
271         if (snode!=null) {
272             String JavaDoc dname=snode.getName();
273             if (dname!=null) return dname;
274         }
275         return "";
276     }
277
278     public MMObjectNode getEditSrcNode() {
279         return curNode.getEditSrcNode();
280     }
281
282     public MMObjectNode getEditDstNode() {
283         return curNode.getEditDstNode();
284     }
285
286     public void setBuilder(String JavaDoc name) {
287         if( name != null ) {
288             if( !name.equals("") ) {
289                 pushState();
290                 curNode.setBuilder(name);
291             } else log.error("setBuilder("+name+"): name is empty!");
292         } else log.error("setBuilder("+name+"): name is null!");
293     }
294
295     public String JavaDoc getBuilderName() {
296         String JavaDoc result= null;
297         if( curNode != null )
298             result = curNode.getBuilderName();
299         else
300             log.error("getBuilderName(): curNode("+curNode+") is null!");
301
302         return result;
303     }
304
305     public MMObjectBuilder getBuilder() {
306         return curNode.getBuilder();
307     }
308
309     public void setSelectionQuery(String JavaDoc query) {
310         curNode.setSelectionQuery(query);
311     }
312
313     public String JavaDoc getSelectionQuery() {
314         return curNode.getSelectionQuery();
315     }
316
317     public boolean isChanged() {
318         return curNode.isChanged();
319     }
320
321     /**
322      * Add a relation (insrel) to the cloud.
323      * Does not change the editstate.
324      * @vpro 14 is a hardcoded value for the vpro reldef type
325      * @deprecated-now this code should not be called
326      */

327     public boolean addRelation(String JavaDoc owner) {
328         boolean result=false;
329         // relations are not saved by themself but saved or dropped
330
// by there caller !!
331
int pos=nodes.indexOf(curNode);
332         int SRC=curNode.getEditNodeNumber();
333         EditStateNode node2=(EditStateNode)nodes.elementAt(pos-1);
334         if (node2!=null) {
335             log.debug("addRelation("+owner+"): Create relation from "+node2.getEditNodeNumber()+" to "+src+" reltype 2");
336             mmBase.getInsRel().insert(owner,node2.getEditNodeNumber(),src,14);
337             result=true;
338         } else {
339             log.error("addRelation("+owner+"): src("+src+"), pos("+pos+"), cannot create relation from "+node2+" to "+src+" reltype 2");
340         }
341         return result;
342     }
343
344     public boolean getInsSave() {
345         return curNode.getInsSave();
346     }
347
348     public void setInsSave(boolean set) {
349         curNode.setInsSave(set);
350     }
351
352     public Vector getInsSaveList() {
353         return curNode.getInsSaveList();
354     }
355
356     public void delInsSaveList() {
357         if (curNode!=null) curNode.delInsSaveList();
358     }
359
360     public Hashtable getRelationTable() {
361         return curNode.getRelationTable();
362     }
363
364     public String JavaDoc getLanguage() {
365         return mmBase.getLanguage();
366     }
367
368     public String JavaDoc getUser() {
369         return user;
370     }
371 }
372
Popular Tags