KickJava   Java API By Example, From Geeks To Geeks.

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


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.DjSession;
36 import com.genimen.djeneric.repository.DjUserContextAssociation;
37 import com.genimen.djeneric.tools.administrator.Administrator;
38 import com.genimen.djeneric.util.DjLogger;
39
40 public class AssociationNode extends AdministratorTreeNode
41 {
42   private static final long serialVersionUID = 1L;
43   DjUserContextAssociation _dca;
44
45   boolean _parentIsUser = false;
46
47   public AssociationNode(DjUserContextAssociation dca, boolean parentIsUser)
48   {
49     _dca = dca;
50     _parentIsUser = parentIsUser;
51   }
52
53   public ImageIcon JavaDoc getImageIcon()
54   {
55     if (_dca.getUser().isAdministrator()) return Administrator.getImageIcon("usrctxadmin.gif");
56     return Administrator.getImageIcon("usrctx.gif");
57   }
58
59   public String JavaDoc toString()
60   {
61     if (_parentIsUser) return _dca.getContext().getName();
62     return _dca.getUser().getName();
63   }
64
65   public void reload() throws Exception JavaDoc
66   {
67     _alreadyLoaded = false;
68     DjSession session = createSession();
69     try
70     {
71       _dca.reload(session);
72     }
73     finally
74     {
75       session.close();
76     }
77     expandNode();
78   }
79
80   public void expandNode() throws Exception JavaDoc
81   {
82     if (_alreadyLoaded) return;
83
84     boolean isCollapsed = _tree.isCollapsed(new TreePath JavaDoc(this.getPath()));
85     removeAllChildren();
86
87     try
88     {
89       _alreadyLoaded = true;
90     }
91     catch (Exception JavaDoc x)
92     {
93       DjLogger.log(x);
94     }
95     finally
96     {
97       getModel().nodeStructureChanged(this);
98     }
99
100     if (!isCollapsed) _tree.expandPath(new TreePath JavaDoc(this.getPath()));
101   }
102
103   public void delete() throws Exception JavaDoc
104   {
105     DjSession session = createSession();
106     try
107     {
108       _dca.delete(session);
109       session.commit();
110     }
111     finally
112     {
113       session.close();
114     }
115     AdministratorTreeNode parent = getParentTreeNode();
116     removeFromParent();
117     getModel().nodeStructureChanged(parent);
118   }
119
120   public boolean canEdit()
121   {
122     return false;
123   }
124
125   public boolean canCreate()
126   {
127     return false;
128   }
129
130   public boolean canDelete()
131   {
132     return true;
133   }
134
135   public String JavaDoc getNodeType()
136   {
137     return "Association";
138   }
139
140 }
Popular Tags