Changeset 5501
- Timestamp:
- 07/30/14 15:27:42 (10 years ago)
- Location:
- VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/pages
- Files:
-
- 2 added
- 2 edited
- 2 moved
Legend:
- Unmodified
- Added
- Removed
-
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/pages/BrowsePrivateCollectionsPage.html
r933 r5501 7 7 <body> 8 8 <wicket:extend> 9 <div style="display: none" wicket:id="publishCollectionDialog"></div> 10 <div style="display: none" wicket:id="deleteCollectionDialog"></div> 11 <div wicket:id="collectionsTable"></div> 9 <wicket:container wicket:id="collections">[collections]</wicket:container> 12 10 </wicket:extend> 13 11 </body> -
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/pages/BrowsePrivateCollectionsPage.java
r5500 r5501 1 1 package eu.clarin.cmdi.virtualcollectionregistry.gui.pages; 2 2 3 import eu.clarin.cmdi.virtualcollectionregistry.VirtualCollectionRegistry;4 import eu.clarin.cmdi.virtualcollectionregistry.VirtualCollectionRegistryException;5 import eu.clarin.cmdi.virtualcollectionregistry.gui.VolatileEntityModel;6 import eu.clarin.cmdi.virtualcollectionregistry.gui.dialog.ConfirmationDialog;7 import eu.clarin.cmdi.virtualcollectionregistry.gui.menu.AjaxLinkMenuItem;8 import eu.clarin.cmdi.virtualcollectionregistry.gui.menu.AjaxPopupMenu;9 3 import eu.clarin.cmdi.virtualcollectionregistry.gui.table.PrivateCollectionsProvider; 10 import eu.clarin.cmdi.virtualcollectionregistry.gui.table.CollectionsProvider;11 import eu.clarin.cmdi.virtualcollectionregistry.gui.table.VirtualCollectionTable;12 import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection;13 import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection.State;14 import java.util.Collections;15 import org.apache.wicket.Component;16 import org.apache.wicket.PageParameters;17 import org.apache.wicket.ajax.AjaxRequestTarget;18 import org.apache.wicket.ajax.markup.html.AjaxLink;19 4 import org.apache.wicket.authorization.strategies.role.Roles; 20 5 import org.apache.wicket.authorization.strategies.role.annotations.AuthorizeInstantiation; 21 import org.apache.wicket.markup.html.panel.Panel;22 import org.apache.wicket.model.IModel;23 import org.apache.wicket.model.Model;24 import org.apache.wicket.model.StringResourceModel;25 import org.apache.wicket.spring.injection.annot.SpringBean;26 6 27 7 @AuthorizeInstantiation(Roles.USER) … … 29 9 public class BrowsePrivateCollectionsPage extends BasePage { 30 10 31 @SpringBean 32 private VirtualCollectionRegistry vcr; 33 34 private class ActionsColumn extends Panel { 35 36 public ActionsColumn(String id, IModel<VirtualCollection> model) { 37 super(id, model); 38 setRenderBodyOnly(true); 39 40 final AjaxPopupMenu menu 41 = new AjaxPopupMenu("menu", new Model<String>("[actions]")); 42 43 final AjaxLinkMenuItem<VirtualCollection> publishItem 44 = new AjaxLinkMenuItem<VirtualCollection>( 45 new Model<String>("Publish"), model, "publish") { 46 @Override 47 protected void onClick(AjaxRequestTarget target, 48 IModel<VirtualCollection> model) { 49 doPublish(target, model.getObject()); 50 } 51 }; 52 menu.add(publishItem); 53 54 final AjaxLinkMenuItem<VirtualCollection> editItem 55 = new AjaxLinkMenuItem<VirtualCollection>( 56 new Model<String>("Edit"), model, "edit") { 57 @Override 58 protected void onClick(AjaxRequestTarget target, 59 IModel<VirtualCollection> model) { 60 doEdit(target, model.getObject()); 61 } 62 }; 63 menu.add(editItem); 64 65 final AjaxLinkMenuItem<VirtualCollection> deleteItem 66 = new AjaxLinkMenuItem<VirtualCollection>( 67 new Model<String>("Delete"), model, "delete") { 68 @Override 69 protected void onClick(AjaxRequestTarget target, 70 IModel<VirtualCollection> model) { 71 doDelete(target, model.getObject()); 72 } 73 }; 74 menu.add(deleteItem); 75 76 final AjaxLinkMenuItem<VirtualCollection> detailsItem 77 = new AjaxLinkMenuItem<VirtualCollection>( 78 new Model<String>("Details"), model, "details") { 79 @Override 80 protected void onClick(AjaxRequestTarget target, 81 IModel<VirtualCollection> model) { 82 doDetails(target, model); 83 } 84 }; 85 menu.add(detailsItem); 86 add(menu); 87 88 final VirtualCollection vc = model.getObject(); 89 if (vc.isDeleted()) { 90 detailsItem.setVisible(false).setEnabled(false); 91 } 92 if (!vc.isPrivate()) { 93 editItem.setVisible(false).setEnabled(false); 94 publishItem.setVisible(false).setEnabled(false); 95 deleteItem.setVisible(false).setEnabled(false); 96 } 97 } 11 public BrowsePrivateCollectionsPage() { 12 add(new BrowseEditableCollectionsPanel("collections", new PrivateCollectionsProvider())); 98 13 } 99 100 private class ActionsPanel extends Panel { 101 102 public ActionsPanel(String id, IModel<VirtualCollection> model) { 103 super(id, model); 104 setRenderBodyOnly(true); 105 106 final AjaxLink<VirtualCollection> publishLink 107 = new AjaxLink<VirtualCollection>("publish", model) { 108 @Override 109 public void onClick(AjaxRequestTarget target) { 110 doPublish(target, getModelObject()); 111 } 112 }; 113 add(publishLink); 114 115 final AjaxLink<VirtualCollection> editLink 116 = new AjaxLink<VirtualCollection>("edit", model) { 117 @Override 118 public void onClick(AjaxRequestTarget target) { 119 doEdit(target, getModelObject()); 120 } 121 }; 122 add(editLink); 123 124 final AjaxLink<VirtualCollection> deleteLink 125 = new AjaxLink<VirtualCollection>("delete", model) { 126 @Override 127 public void onClick(AjaxRequestTarget target) { 128 doDelete(target, getModelObject()); 129 } 130 }; 131 add(deleteLink); 132 133 final AjaxLink<VirtualCollection> detailsLink 134 = new AjaxLink<VirtualCollection>("details", model) { 135 @Override 136 public void onClick(AjaxRequestTarget target) { 137 doDetails(target, getModel()); 138 } 139 }; 140 add(detailsLink); 141 142 final VirtualCollection vc = model.getObject(); 143 if (vc.isDeleted()) { 144 detailsLink.setVisible(false).setEnabled(false); 145 } 146 if (!vc.isPrivate()) { 147 editLink.setVisible(false).setEnabled(false); 148 publishLink.setVisible(false).setEnabled(false); 149 deleteLink.setVisible(false).setEnabled(false); 150 } 151 boolean isVisible = detailsLink.isVisible() 152 || editLink.isVisible() || publishLink.isVisible() 153 || deleteLink.isVisible(); 154 setVisible(isVisible); 155 } 156 } // class BrowsePrivateCollectionsPage.ActionsPanel 157 158 private final class PublishCollectionDialog extends ConfirmationDialog { 159 160 private long vcId; 161 162 public PublishCollectionDialog(String id, 163 final Component updateComponenet) { 164 super(id, updateComponenet); 165 setInitialWidth(400); 166 } 167 168 @Override 169 public void onConfirm(AjaxRequestTarget target) { 170 try { 171 vcr.setVirtualCollectionState(getUser(), vcId, 172 State.PUBLIC_PENDING); 173 } catch (VirtualCollectionRegistryException e) { 174 e.printStackTrace(); 175 } 176 } 177 178 public void show(AjaxRequestTarget target, VirtualCollection vc) { 179 this.vcId = vc.getId(); 180 super.show(target, 181 new StringResourceModel("collections.publishconfirm", 182 new VolatileEntityModel<VirtualCollection>(vc))); 183 } 184 } // class BrowsePrivateCollectionsPage.PublishCollectionDialog 185 186 private final class DeleteCollectionDialog extends ConfirmationDialog { 187 188 private long vcId; 189 190 public DeleteCollectionDialog(String id, 191 final Component updateComponenet) { 192 super(id, updateComponenet); 193 setInitialWidth(400); 194 } 195 196 @Override 197 public void onConfirm(AjaxRequestTarget target) { 198 try { 199 vcr.deleteVirtualCollection(getUser(), vcId); 200 } catch (VirtualCollectionRegistryException e) { 201 e.printStackTrace(); 202 } 203 } 204 205 public void show(AjaxRequestTarget target, VirtualCollection vc) { 206 this.vcId = vc.getId(); 207 super.show(target, 208 new StringResourceModel("collections.deleteconfirm", 209 new VolatileEntityModel<VirtualCollection>(vc))); 210 } 211 } // class BrowsePrivateCollectionsPage.PublishCollectionDialog 212 213 private final PublishCollectionDialog publishDialog; 214 private final DeleteCollectionDialog deleteDialog; 215 216 public BrowsePrivateCollectionsPage() { 217 super(); 218 final VirtualCollectionTable table 219 = new VirtualCollectionTable("collectionsTable", new PrivateCollectionsProvider(), true) { 220 @Override 221 protected Panel createActionColumn(String componentId, 222 IModel<VirtualCollection> model) { 223 return new ActionsColumn(componentId, model); 224 } 225 226 @Override 227 protected Panel createActionPanel(String componentId, 228 IModel<VirtualCollection> model) { 229 return new ActionsPanel(componentId, model); 230 } 231 }; 232 add(table); 233 234 publishDialog = new PublishCollectionDialog("publishCollectionDialog", 235 table); 236 add(publishDialog); 237 deleteDialog = new DeleteCollectionDialog("deleteCollectionDialog", 238 table); 239 add(deleteDialog); 240 } 241 242 private void doEdit(AjaxRequestTarget target, 243 VirtualCollection vc) { 244 setResponsePage(EditVirtualCollectionPage.class, new PageParameters(Collections.singletonMap("id", vc.getId()))); 245 } 246 247 private void doPublish(AjaxRequestTarget target, 248 VirtualCollection vc) { 249 publishDialog.show(target, vc); 250 } 251 252 private void doDelete(AjaxRequestTarget target, 253 VirtualCollection vc) { 254 deleteDialog.show(target, vc); 255 } 256 257 private void doDetails(AjaxRequestTarget target, IModel<VirtualCollection> vc) { 258 setResponsePage(VirtualCollectionDetailsPage.class, VirtualCollectionDetailsPage.createPageParameters(vc.getObject(), getPageReference())); 259 } 260 261 } // class BrowsePrivateCollectionsPage 14 15 }
Note: See TracChangeset
for help on using the changeset viewer.