Changeset 5549 for ComponentRegistry/trunk/ComponentRegistry/src/main/java/clarin/cmdi/componentregistry/frontend/AdminHomePage.java
- Timestamp:
- 08/11/14 16:07:55 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
ComponentRegistry/trunk/ComponentRegistry/src/main/java/clarin/cmdi/componentregistry/frontend/AdminHomePage.java
r4098 r5549 29 29 import clarin.cmdi.componentregistry.ComponentRegistryException; 30 30 import clarin.cmdi.componentregistry.ComponentRegistryFactory; 31 import clarin.cmdi.componentregistry.ComponentStatus;32 31 import clarin.cmdi.componentregistry.MDMarshaller; 32 import clarin.cmdi.componentregistry.RegistrySpace; 33 import clarin.cmdi.componentregistry.UserUnauthorizedException; 33 34 import clarin.cmdi.componentregistry.impl.database.AdminRegistry; 34 35 import clarin.cmdi.componentregistry.model.BaseDescription; … … 43 44 private final static Logger LOG = LoggerFactory.getLogger(AdminHomePage.class); 44 45 private final CMDItemInfo info; 45 private finalLinkTree tree;46 private LinkTree tree; 46 47 private transient AdminRegistry adminRegistry = new AdminRegistry(); 47 48 @SpringBean(name = "componentRegistryFactory") … … 53 54 54 55 public AdminHomePage(final PageParameters parameters) throws ComponentRegistryException { 55 super(parameters); 56 adminRegistry.setComponentRegistryFactory(componentRegistryFactory); 57 adminRegistry.setComponentDao(componentDao); 58 adminRegistry.setMarshaller(marshaller); 59 info = new CMDItemInfo(marshaller); 60 addLinks(); 61 final FeedbackPanel feedback = new FeedbackPanel("feedback"); 62 feedback.setOutputMarkupId(true); 63 add(feedback); 64 Form form = new ItemEditForm("form"); 65 add(form); 66 67 Button deleteButton = new AjaxFallbackButton("delete", form) { 68 69 @Override 70 protected void onSubmit(AjaxRequestTarget target, Form<?> form) { 71 CMDItemInfo info = (CMDItemInfo) form.getModelObject(); 72 info("deleting:" + info.getName()); 73 Principal userPrincipal = getWebRequest().getHttpServletRequest().getUserPrincipal(); 74 try { 75 adminRegistry.delete(info, userPrincipal); 76 info("Item deleted."); 77 reloadTreeModel(info); 78 } catch (SubmitFailedException e) { 79 LOG.error("Admin: ", e); 80 error("Cannot delete: " + info.getName() + "\n error=" + e); 81 } 82 if (target != null) { 83 target.addComponent(form); 84 target.addComponent(tree); 85 target.addComponent(feedback); 86 } 87 } 88 89 @Override 90 public boolean isEnabled() { 91 return info.isDeletable(); 92 93 } 94 ; 95 }; 56 super(parameters); 57 adminRegistry.setComponentRegistryFactory(componentRegistryFactory); 58 adminRegistry.setComponentDao(componentDao); 59 adminRegistry.setMarshaller(marshaller); 60 info = new CMDItemInfo(marshaller); 61 addLinks(); 62 final FeedbackPanel feedback = new FeedbackPanel("feedback"); 63 feedback.setOutputMarkupId(true); 64 add(feedback); 65 Form form = new ItemEditForm("form"); 66 add(form); 67 68 Button deleteButton = new AjaxFallbackButton("delete", form) { 69 @Override 70 protected void onSubmit(AjaxRequestTarget target, Form<?> form) { 71 CMDItemInfo info = (CMDItemInfo) form.getModelObject(); 72 info("deleting:" + info.getName()); 73 Principal userPrincipal = getWebRequest().getHttpServletRequest().getUserPrincipal(); 74 try { 75 adminRegistry.delete(info, userPrincipal); 76 info("Item deleted."); 77 reloadTreeModel(info); 78 } catch (Exception e) { 79 LOG.error("Admin: ", e); 80 error("Cannot delete: " + info.getName() + "\n error=" + e); 81 } 82 if (target != null) { 83 target.addComponent(form); 84 target.addComponent(tree); 85 target.addComponent(feedback); 86 } 87 } 88 89 @Override 90 public boolean isEnabled() { 91 return info.isDeletable(); 92 93 } 94 ; 95 }; 96 96 form.add(deleteButton); 97 97 98 Button undeleteButton = new AjaxFallbackButton("undelete", form) { 99 100 @Override 101 protected void onSubmit(AjaxRequestTarget target, Form<?> form) { 102 CMDItemInfo info = (CMDItemInfo) form.getModelObject(); 103 info("undeleting:" + info.getName()); 104 try { 105 adminRegistry.undelete(info); 106 info("Item put back."); 107 reloadTreeModel(info); 108 } catch (SubmitFailedException e) { 109 LOG.error("Admin: ", e); 110 error("Cannot undelete: " + info.getName() + "\n error=" + e); 111 } 112 if (target != null) { 113 target.addComponent(form); 114 target.addComponent(tree); 115 target.addComponent(feedback); 116 } 117 } 118 119 @Override 120 public boolean isEnabled() { 121 return info.isUndeletable(); 122 } 123 }; 124 form.add(undeleteButton); 125 126 CheckBox forceUpdateCheck = new CheckBox("forceUpdate"); 127 form.add(forceUpdateCheck); 128 129 Button submitButton = new AjaxFallbackButton("submit", form) { 130 131 @Override 132 protected void onSubmit(AjaxRequestTarget target, Form<?> form) { 133 CMDItemInfo info = (CMDItemInfo) form.getModelObject(); 134 Principal userPrincipal = getWebRequest().getHttpServletRequest().getUserPrincipal(); 135 info("submitting:" + info.getName() + " id=(" + info.getDataNode().getDescription().getId() + ")"); 136 try { 137 adminRegistry.submitFile(info, userPrincipal); 138 info("submitting done."); 139 reloadTreeModel(info); 140 } catch (SubmitFailedException e) { 141 LOG.error("Admin: ", e); 142 error("Cannot submit: " + info.getName() + "\n error=" + e); 143 } 144 if (target != null) { 145 target.addComponent(form); 146 target.addComponent(tree); 147 target.addComponent(feedback); 148 } 149 } 150 151 @Override 152 public boolean isEnabled() { 153 return info.isEditable(); 154 } 155 }; 156 form.add(submitButton); 157 158 tree = createTree("tree", form, createDBTreeModel()); 159 add(tree); 160 add(new Link("expandAll") { 161 162 @Override 163 public void onClick() { 164 tree.getTreeState().expandAll(); 165 } 166 }); 167 168 add(new Link("collapseAll") { 169 170 @Override 171 public void onClick() { 172 tree.getTreeState().collapseAll(); 173 } 174 }); 175 176 } 177 178 private void reloadTreeModel(CMDItemInfo info) { 179 try { 180 tree.setModelObject(createDBTreeModel()); 181 } catch (ComponentRegistryException e) { 182 LOG.error("Admin: ", e); 183 error("Cannot reload tree: " + info.getName() + "\n error=" + e); 184 } 98 Button undeleteButton = new AjaxFallbackButton("undelete", form) { 99 @Override 100 protected void onSubmit(AjaxRequestTarget target, Form<?> form) { 101 CMDItemInfo info = (CMDItemInfo) form.getModelObject(); 102 info("undeleting:" + info.getName()); 103 try { 104 adminRegistry.undelete(info); 105 info("Item put back."); 106 reloadTreeModel(info); 107 } catch (Exception e) { 108 LOG.error("Admin: ", e); 109 error("Cannot undelete: " + info.getName() + "\n error=" + e); 110 } 111 if (target != null) { 112 target.addComponent(form); 113 target.addComponent(tree); 114 target.addComponent(feedback); 115 } 116 } 117 118 @Override 119 public boolean isEnabled() { 120 return info.isUndeletable(); 121 } 122 }; 123 form.add(undeleteButton); 124 125 CheckBox forceUpdateCheck = new CheckBox("forceUpdate"); 126 form.add(forceUpdateCheck); 127 128 Button submitButton = new AjaxFallbackButton("submit", form) { 129 @Override 130 protected void onSubmit(AjaxRequestTarget target, Form<?> form) { 131 CMDItemInfo info = (CMDItemInfo) form.getModelObject(); 132 Principal userPrincipal = getWebRequest().getHttpServletRequest().getUserPrincipal(); 133 info("submitting:" + info.getName() + " id=(" + info.getDataNode().getDescription().getId() + ")"); 134 try { 135 adminRegistry.submitFile(info, userPrincipal); 136 info("submitting done."); 137 reloadTreeModel(info); 138 } catch (Exception e) { 139 LOG.error("Admin: ", e); 140 error("Cannot submit: " + info.getName() + "\n error=" + e); 141 } 142 if (target != null) { 143 target.addComponent(form); 144 target.addComponent(tree); 145 target.addComponent(feedback); 146 } 147 } 148 149 @Override 150 public boolean isEnabled() { 151 return info.isEditable(); 152 } 153 }; 154 form.add(submitButton); 155 156 157 158 159 try { 160 tree = createTree("tree", form, createDBTreeModel()); 161 add(tree); 162 add(new Link("expandAll") { 163 @Override 164 public void onClick() { 165 tree.getTreeState().expandAll(); 166 } 167 }); 168 169 add(new Link("collapseAll") { 170 @Override 171 public void onClick() { 172 tree.getTreeState().collapseAll(); 173 } 174 }); 175 176 } catch (UserUnauthorizedException e) { 177 LOG.error("Admin: ", e); 178 error("Cannot create tree: error = " + e); 179 } 180 181 } 182 183 private void reloadTreeModel(CMDItemInfo info) throws UserUnauthorizedException { 184 try { 185 tree.setModelObject(createDBTreeModel()); 186 } catch (ComponentRegistryException e) { 187 LOG.error("Admin: ", e); 188 error("Cannot reload tree: " + info.getName() + "\n error=" + e); 189 } 185 190 } 186 191 187 192 private void addLinks() { 188 add(new Label("linksMessage", "Browse the data below or choose on of the following options:")); 189 add(new Link("massMigrate") { 190 191 @Override 192 public void onClick() { 193 setResponsePage(MassMigratePage.class); 194 } 195 }); 196 add(new Link("log") { 197 198 @Override 199 public void onClick() { 200 setResponsePage(ViewLogPage.class); 201 } 202 }); 203 add(new Link("statistics") { 204 205 @Override 206 public void onClick() { 207 setResponsePage(StatisticsPage.class); 208 } 209 }); 193 add(new Label("linksMessage", "Browse the data below or choose on of the following options:")); 194 add(new Link("massMigrate") { 195 @Override 196 public void onClick() { 197 setResponsePage(MassMigratePage.class); 198 } 199 }); 200 add(new Link("log") { 201 @Override 202 public void onClick() { 203 setResponsePage(ViewLogPage.class); 204 } 205 }); 206 add(new Link("statistics") { 207 @Override 208 public void onClick() { 209 setResponsePage(StatisticsPage.class); 210 } 211 }); 210 212 } 211 213 212 214 private LinkTree createTree(String id, final Form form, TreeModel treeModel) { 213 final LinkTree adminTree = new LinkTree(id, treeModel) { 214 215 @Override 216 protected void onNodeLinkClicked(Object node, BaseTree tree, AjaxRequestTarget target) { 217 super.onNodeLinkClicked(node, tree, target); 218 ITreeState treeState = tree.getTreeState(); 219 if (treeState.isNodeExpanded(node)) { 220 treeState.collapseNode(node); 221 } else { 222 treeState.expandNode(node); 223 } 224 DisplayDataNode dn = (DisplayDataNode) ((DefaultMutableTreeNode) node).getUserObject(); 225 info.setDataNode(dn); 226 BaseDescription desc = dn.getDescription(); 227 if (desc != null) { 228 String content = componentDao.getContent(dn.isDeleted(), desc.getId()); 229 info.setContent(content); 230 } 231 if (target != null) { 232 target.addComponent(form); 233 } 234 } 235 }; 236 return adminTree; 215 final LinkTree adminTree = new LinkTree(id, treeModel) { 216 @Override 217 protected void onNodeLinkClicked(Object node, BaseTree tree, AjaxRequestTarget target) { 218 super.onNodeLinkClicked(node, tree, target); 219 ITreeState treeState = tree.getTreeState(); 220 if (treeState.isNodeExpanded(node)) { 221 treeState.collapseNode(node); 222 } else { 223 treeState.expandNode(node); 224 } 225 DisplayDataNode dn = (DisplayDataNode) ((DefaultMutableTreeNode) node).getUserObject(); 226 info.setDataNode(dn); 227 BaseDescription desc = dn.getDescription(); 228 if (desc != null) { 229 String content = componentDao.getContent(dn.isDeleted(), desc.getId()); 230 info.setContent(content); 231 } 232 if (target != null) { 233 target.addComponent(form); 234 } 235 } 236 }; 237 return adminTree; 237 238 } 238 239 239 240 private class ItemEditForm extends Form<CMDItemInfo> { 240 241 241 242 243 244 245 246 247 248 249 250 251 252 253 } 254 255 private TreeModel createDBTreeModel() throws ComponentRegistryException {256 257 258 259 260 261 262 263 264 265 266 267 268 269 } 270 271 private void add(DefaultMutableTreeNode parent, ComponentRegistry registry) throws ComponentRegistryException {272 273 274 add(componentsNode, registry.getComponentDescriptions(), false, registry.getStatus());275 276 277 278 add(profilesNode, registry.getProfileDescriptions(), false, registry.getStatus());279 280 281 282 283 284 add(deletedCompNode, deletedComponentDescriptions, true, registry.getStatus());285 286 287 288 289 add(deletedProfNode, deletedProfileDescriptions, true, registry.getStatus());290 } 291 292 private void add(DefaultMutableTreeNode parent, List<? extends BaseDescription> descs, boolean isDeleted, ComponentStatus status) {293 294 DefaultMutableTreeNode child = new DefaultMutableTreeNode(new DisplayDataNode(desc.getName(), isDeleted, desc, status));295 296 242 public ItemEditForm(String name) { 243 super(name); 244 CompoundPropertyModel model = new CompoundPropertyModel(info); 245 setModel(model); 246 247 TextArea descriptionArea = new TextArea("description"); 248 descriptionArea.setOutputMarkupId(true); 249 add(descriptionArea); 250 TextArea contentArea = new TextArea("content"); 251 contentArea.setOutputMarkupId(true); 252 add(contentArea); 253 } 254 } 255 256 private TreeModel createDBTreeModel() throws ComponentRegistryException, UserUnauthorizedException { 257 DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode(new DisplayDataNode("ComponentRegistry", false)); 258 DefaultMutableTreeNode publicNode = new DefaultMutableTreeNode(new DisplayDataNode("Public", false)); 259 rootNode.add(publicNode); 260 ComponentRegistry publicRegistry = componentRegistryFactory.getPublicRegistry(); 261 add(publicNode, publicRegistry); 262 List<ComponentRegistry> userRegistries = componentRegistryFactory.getAllUserRegistries(); 263 for (ComponentRegistry registry : userRegistries) { 264 DefaultMutableTreeNode userNode = new DefaultMutableTreeNode(new DisplayDataNode(registry.getName(), false)); 265 rootNode.add(userNode); 266 add(userNode, registry); 267 } 268 TreeModel model = new DefaultTreeModel(rootNode); 269 return model; 270 } 271 272 private void add(DefaultMutableTreeNode parent, ComponentRegistry registry) throws ComponentRegistryException, UserUnauthorizedException { 273 DefaultMutableTreeNode componentsNode = new DefaultMutableTreeNode(new DisplayDataNode("Components", false)); 274 parent.add(componentsNode); 275 add(componentsNode, registry.getComponentDescriptions(), false, registry.getRegistrySpace()); 276 277 DefaultMutableTreeNode profilesNode = new DefaultMutableTreeNode(new DisplayDataNode("Profiles", false)); 278 parent.add(profilesNode); 279 add(profilesNode, registry.getProfileDescriptions(), false, registry.getRegistrySpace()); 280 281 DefaultMutableTreeNode deletedCompNode = new DefaultMutableTreeNode(new DisplayDataNode("Deleted Components", true)); 282 parent.add(deletedCompNode); 283 284 List<ComponentDescription> deletedComponentDescriptions = registry.getDeletedComponentDescriptions(); 285 add(deletedCompNode, deletedComponentDescriptions, true, registry.getRegistrySpace()); 286 287 DefaultMutableTreeNode deletedProfNode = new DefaultMutableTreeNode(new DisplayDataNode("Deleted Profiles", true)); 288 parent.add(deletedProfNode); 289 List<ProfileDescription> deletedProfileDescriptions = registry.getDeletedProfileDescriptions(); 290 add(deletedProfNode, deletedProfileDescriptions, true, registry.getRegistrySpace()); 291 } 292 293 private void add(DefaultMutableTreeNode parent, List<? extends BaseDescription> descs, boolean isDeleted, RegistrySpace space) { 294 for (BaseDescription desc : descs) { 295 DefaultMutableTreeNode child = new DefaultMutableTreeNode(new DisplayDataNode(desc.getName(), isDeleted, desc, space)); 296 parent.add(child); 297 } 297 298 } 298 299 }
Note: See TracChangeset
for help on using the changeset viewer.