KickJava   Java API By Example, From Geeks To Geeks.

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


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 modification, is permitted
5  * provided that the following conditions are met:
6  * - Redistributions of source code must retain the above copyright notice, this list of conditions
7  * and the following disclaimer.
8  * - Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * - All advertising materials mentioning features or use of this software must display the
12  * following acknowledgment: "This product includes Djeneric."
13  * - Products derived from this software may not be called "Djeneric" nor may
14  * "Djeneric" appear in their names without prior written permission of Genimen BV.
15  * - Redistributions of any form whatsoever must retain the following acknowledgment: "This
16  * product includes 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,
22  * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28  * SOFTWARE, EVEN IF ADVISED OF THE 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.util.DjLogger;
40
41 public class UserViewNode extends AdministratorTreeNode
42 {
43   private static final long serialVersionUID = 1L;
44   DjUser _user;
45   DjModelView _view;
46   boolean _parentIsView;
47
48   public UserViewNode(DjUser user, DjModelView view, boolean parentIsView)
49   {
50     _user = user;
51     _view = view;
52     _parentIsView = parentIsView;
53   }
54
55   public ImageIcon JavaDoc getImageIcon()
56   {
57     if (_user.isAdministrator()) return Administrator.getImageIcon("usrmvwadmin.gif");
58     return Administrator.getImageIcon("usrmvw.gif");
59   }
60
61   public String JavaDoc toString()
62   {
63     if (_parentIsView) return _user.getCode() + " (" + _user.getName() + ")";
64     return _view.getCode();
65   }
66
67   public void reload() throws Exception JavaDoc
68   {
69     _alreadyLoaded = false;
70     DjSession session = createSession();
71     try
72     {
73       _user.reload(session);
74       _view.reload(session);
75     }
76     finally
77     {
78       session.close();
79     }
80     expandNode();
81   }
82
83   public void expandNode() throws Exception JavaDoc
84   {
85     if (_alreadyLoaded) return;
86
87     boolean isCollapsed = _tree.isCollapsed(new TreePath JavaDoc(this.getPath()));
88     removeAllChildren();
89
90     try
91     {
92       _alreadyLoaded = true;
93     }
94     catch (Exception JavaDoc x)
95     {
96       DjLogger.log(x);
97     }
98     finally
99     {
100       getModel().nodeStructureChanged(this);
101     }
102
103     if (!isCollapsed) _tree.expandPath(new TreePath JavaDoc(this.getPath()));
104   }
105
106   public void delete() throws Exception JavaDoc
107   {
108     DjSession session = createSession();
109     try
110     {
111       if (_parentIsView) _view.removeUser(session, _user);
112       else _user.removeView(session, _view);
113       session.commit();
114     }
115     finally
116     {
117       session.close();
118     }
119     AdministratorTreeNode parent = getParentTreeNode();
120     removeFromParent();
121     getModel().nodeStructureChanged(parent);
122   }
123
124   public boolean canEdit()
125   {
126     return false;
127   }
128
129   public boolean canCreate()
130   {
131     return false;
132   }
133
134   public boolean canDelete()
135   {
136     return true;
137   }
138
139   public String JavaDoc getNodeType()
140   {
141     return "User View";
142   }
143
144 }
Popular Tags