1 30 package com.genimen.djeneric.tools.administrator.nodes; 31 32 import javax.swing.ImageIcon ; 33 import javax.swing.tree.TreePath ; 34 35 import com.genimen.djeneric.repository.DjContext; 36 import com.genimen.djeneric.repository.DjSession; 37 import com.genimen.djeneric.repository.DjUserContextAssociation; 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.ContextEditor; 41 import com.genimen.djeneric.tools.administrator.helpers.AdminPanel; 42 import com.genimen.djeneric.util.DjLogger; 43 44 public class ContextNode extends AdministratorTreeNode 45 { 46 private static final long serialVersionUID = 1L; 47 DjContext _context; 48 49 public ContextNode(DjContext context) 50 { 51 _context = context; 52 } 53 54 public ImageIcon getImageIcon() 55 { 56 return Administrator.getImageIcon("context.gif"); 57 } 58 59 public String toString() 60 { 61 return _context.getCode() + " (" + _context.getName() + ")"; 62 } 63 64 public DjContext getContext() 65 { 66 return _context; 67 } 68 69 public void reload() throws Exception 70 { 71 _alreadyLoaded = false; 72 73 DjSession session = createSession(); 74 try 75 { 76 _context.reload(session); 77 } 78 finally 79 { 80 session.close(); 81 } 82 expandNode(); 83 } 84 85 public void expandNode() throws Exception 86 { 87 if (_alreadyLoaded) return; 88 89 boolean isCollapsed = _tree.isCollapsed(new TreePath (this.getPath())); 90 removeAllChildren(); 91 92 DjSession session = createSession(); 93 try 94 { 95 DjUserContextAssociation[] dca = _context.getUsers(session); 96 for (int i = 0; i < dca.length; i++) 97 { 98 AssociationNode an = new AssociationNode(dca[i], false); 99 insertAsChild(an); 100 } 101 _alreadyLoaded = true; 102 } 103 catch (Exception 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 (this.getPath())); 114 } 115 116 public void delete() throws Exception 117 { 118 DjSession session = createSession(); 119 try 120 { 121 _context.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 void clearContext() throws Exception 134 { 135 DjSession session = createSession(); 136 try 137 { 138 _context.deleteContents(session); 139 session.commit(); 140 } 141 finally 142 { 143 session.close(); 144 } 145 } 146 147 public AdminEditor getEditor(AdminPanel admin) 148 { 149 return new ContextEditor(admin, this, _context); 150 } 151 152 public AdminEditor getCreateEditor(AdminPanel admin) throws Exception 153 { 154 return new ContextEditor(admin, getParentTreeNode(), admin.getManager().getContextManager().createNewContext()); 155 } 156 157 public boolean canEdit() 158 { 159 return true; 160 } 161 162 public boolean canCreate() 163 { 164 return true; 165 } 166 167 public boolean canDelete() 168 { 169 return true; 170 } 171 172 public boolean canClear() 173 { 174 return true; 175 } 176 177 public String getNodeType() 178 { 179 return "Context"; 180 } 181 182 public boolean canImport() 183 { 184 return true; 185 } 186 187 public boolean canExport() 188 { 189 return true; 190 } 191 192 } | Popular Tags |