KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > genimen > djeneric > tools > administrator > nodes > ModelViewNode


1 /*
2  * Copyright (c) 2001-2005 by Genimen BV (www.genimen.com) All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, is permitted provided that the following conditions are met: -
6  * Redistributions of source code must retain the above copyright notice, this
7  * list of conditions and the following disclaimer. - Redistributions in binary
8  * form must reproduce the above copyright notice, this list of conditions and
9  * the following disclaimer in the documentation and/or other materials
10  * provided with the distribution. - All advertising materials mentioning
11  * features or use of this software must display the following acknowledgment:
12  * "This product includes Djeneric." - Products derived from this software may
13  * not be called "Djeneric" nor may "Djeneric" appear in their names without
14  * prior written permission of Genimen BV. - Redistributions of any form
15  * whatsoever must retain the following acknowledgment: "This product includes
16  * Djeneric."
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS IS"
19  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21  * ARE DISCLAIMED. IN NO EVENT SHALL GENIMEN BV, DJENERIC.ORG, OR CONTRIBUTORS
22  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28  * POSSIBILITY OF SUCH DAMAGE.
29  */

30 package com.genimen.djeneric.tools.administrator.nodes;
31
32 import javax.swing.ImageIcon JavaDoc;
33 import javax.swing.tree.TreePath JavaDoc;
34
35 import com.genimen.djeneric.repository.DjModelView;
36 import com.genimen.djeneric.repository.DjSession;
37 import com.genimen.djeneric.repository.DjUser;
38 import com.genimen.djeneric.tools.administrator.Administrator;
39 import com.genimen.djeneric.tools.administrator.editors.AdminEditor;
40 import com.genimen.djeneric.tools.administrator.editors.ModelViewEditor;
41 import com.genimen.djeneric.tools.administrator.helpers.AdminPanel;
42 import com.genimen.djeneric.util.DjLogger;
43
44 public class ModelViewNode extends AdministratorTreeNode
45 {
46   private static final long serialVersionUID = 1L;
47   DjModelView _view;
48
49   public ModelViewNode(DjModelView view)
50   {
51     _view = view;
52   }
53
54   public ImageIcon JavaDoc getImageIcon()
55   {
56     return Administrator.getImageIcon("modelview.gif");
57   }
58
59   public String JavaDoc toString()
60   {
61     return _view.getCode();
62   }
63
64   public DjModelView getModelView()
65   {
66     return _view;
67   }
68
69   public void reload() throws Exception JavaDoc
70   {
71     _alreadyLoaded = false;
72
73     DjSession session = createSession();
74     try
75     {
76       _view.reload(session);
77     }
78     finally
79     {
80       session.close();
81     }
82     expandNode();
83   }
84
85   public void expandNode() throws Exception JavaDoc
86   {
87     if (_alreadyLoaded) return;
88
89     boolean isCollapsed = _tree.isCollapsed(new TreePath JavaDoc(this.getPath()));
90     removeAllChildren();
91
92     DjSession session = createSession();
93     try
94     {
95       DjUser[] devs = _view.getUsers(session);
96       for (int i = 0; i < devs.length; i++)
97       {
98         UserViewNode an = new UserViewNode(devs[i], _view, true);
99         insertAsChild(an);
100       }
101       _alreadyLoaded = true;
102     }
103     catch (Exception JavaDoc x)
104     {
105       DjLogger.log(x);
106     }
107     finally
108     {
109       session.close();
110       getModel().nodeStructureChanged(this);
111     }
112
113     if (!isCollapsed) _tree.expandPath(new TreePath JavaDoc(this.getPath()));
114   }
115
116   public void delete() throws Exception JavaDoc
117   {
118     DjSession session = createSession();
119     try
120     {
121       _view.delete(session);
122       session.commit();
123     }
124     finally
125     {
126       session.close();
127     }
128     AdministratorTreeNode parent = getParentTreeNode();
129     removeFromParent();
130     getModel().nodeStructureChanged(parent);
131   }
132
133   public AdminEditor getEditor(AdminPanel admin)
134   {
135     return new ModelViewEditor(admin, this, _view);
136   }
137
138   public AdminEditor getCreateEditor(AdminPanel admin) throws Exception JavaDoc
139   {
140     return null;
141   }
142
143   public boolean canEdit()
144   {
145     return true;
146   }
147
148   public boolean canCreate()
149   {
150     return false;
151   }
152
153   public boolean canDelete()
154   {
155     return true;
156   }
157
158   public boolean canImport()
159   {
160     return true;
161   }
162
163   public boolean canExport()
164   {
165     return true;
166   }
167
168   public String JavaDoc getNodeType()
169   {
170     return "View";
171   }
172
173 }
Popular Tags