Changeset 993
- Timestamp:
- 12/14/10 15:52:59 (13 years ago)
- Location:
- VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/pages
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/pages/BrowsePrivateCollectionsPage.java
r963 r993 61 61 @Override 62 62 public void onClick(AjaxRequestTarget target) { 63 doDetails(target, getModel Object());63 doDetails(target, getModel()); 64 64 } 65 65 }; … … 172 172 deleteDialog.show(target, vc); 173 173 } 174 private void doDetails(AjaxRequestTarget target, VirtualCollection vc) { 174 175 private void doDetails(AjaxRequestTarget target, 176 IModel<VirtualCollection> vc) { 175 177 setResponsePage(new VirtualCollectionDetailsPage(vc, getPage())); 176 178 } -
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/pages/BrowsePublicCollectionsPage.java
r960 r993 20 20 @Override 21 21 public void onClick(AjaxRequestTarget target) { 22 doDetails(target, getModel Object());22 doDetails(target, getModel()); 23 23 } 24 24 }; … … 40 40 } 41 41 42 private void doDetails(AjaxRequestTarget target, VirtualCollection vc) { 42 private void doDetails(AjaxRequestTarget target, 43 IModel<VirtualCollection> vc) { 43 44 setResponsePage(new VirtualCollectionDetailsPage(vc, getPage())); 44 45 } -
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/pages/VirtualCollectionDetailsPage.html
r933 r993 7 7 <body> 8 8 <wicket:extend> 9 <table style="width: 100%"> 10 <thead style="color: inherit; background-color: inherit; border: none"> 11 <tr><td colspan="2" style="padding: 10px 0; color: red; font-weight: bold; text-align: center">Note: this page is just a proof-of-concept and concept and subject to major overhaul!</td></tr> 12 </thead> 13 <tbody style="border: none"> 14 <tr style="border-top: 1px solid #000000; border-bottom: 1px solid #000000"> 15 <td style="vertical-align: top">Name</td> 16 <td><span wicket:id="name"></span></td> 17 </tr> 18 <tr style="border-bottom: 1px solid #000000"> 19 <td style="vertical-align: top">Type</td> 20 <td><span wicket:id="type"></span></td> 21 </tr> 22 <tr style="border-bottom: 1px solid #000000"> 23 <td style="vertical-align: top">Creation Date</td> 24 <td><span wicket:id="creationDate"></span></td> 25 </tr> 26 <tr style="border-bottom: 1px solid #000000"> 27 <td style="vertical-align: top">Description</td> 28 <td><span wicket:id="description"></span></td> 29 </tr> 30 <tr style="border-bottom: 1px solid #000000"> 31 <td style="vertical-align: top">Purpose</td> 32 <td><span wicket:id="purpose"></span></td> 33 </tr> 34 <tr style="border-bottom: 1px solid #000000"> 35 <td style="vertical-align: top">Reproducibility</td> 36 <td><span wicket:id="reproducibility"></span></td> 37 </tr> 38 <tr style="border-bottom: 1px solid #000000"> 39 <td style="vertical-align: top">Reproducibility Notice</td> 40 <td><span wicket:id="reproducibilityNotice"></span></td> 41 </tr> 42 <tr style="border-bottom: 1px solid #000000"> 43 <td style="vertical-align: top">Keywords</td> 44 <td><ul><li wicket:id="keywords"><span wicket:id="keyword"></span></li></ul></td> 45 </tr> 46 <tr style="border-bottom: 1px solid #000000"> 47 <td style="vertical-align: top">Creators</td> 48 <td> 49 <ul> 50 <li wicket:id="creators"> 51 <span wicket:id="person"></span> <br/> 52 <span wicket:id="address"></span> <br/> 53 <span wicket:id="email"></span> <br/> 54 <span wicket:id="organisation"></span> <br/> 55 <span wicket:id="telephone"></span> <br/> 56 <span wicket:id="website"></span> <br/> 57 <span wicket:id="role"></span> 58 </li> 59 </ul> 60 </td> 61 </tr> 62 <tr style="border-bottom: 1px solid #000000"> 63 <td style="vertical-align: top">Resources</td> 64 <td> 65 <ul> 66 <li wicket:id="resources"> 67 <span wicket:id="type"></span> <span wicket:id="ref"></span> 68 </li> 69 </ul> 70 </td> 71 </tr> 72 <tr style="border-bottom: 1px solid #000000"> 73 <td style="vertical-align: top">GeneratedBy.description</td> 74 <td><span wicket:id="generatedBy.description"></span></td> 75 </tr> 76 <tr style="border-bottom: 1px solid #000000"> 77 <td style="vertical-align: top">GeneratedBy.uri</td> 78 <td><span wicket:id="generatedBy.uri"></span></td> 79 </tr> 80 <tr style="border-bottom: 1px solid #000000"> 81 <td style="vertical-align: top">GeneratedBy.query.profile</td> 82 <td><span wicket:id="generatedBy.query.profile"></span></td> 83 </tr> 84 <tr style="border-bottom: 1px solid #000000"> 85 <td style="vertical-align: top">GeneratedBy.query.value</td> 86 <td><span wicket:id="generatedBy.query.value"></span></td> 87 </tr> 88 </tbody> 89 <tfoot> 90 <tr><td colspan="2" style="padding: 10px 0; text-align: center"><a wicket:id="back" href="#">[return to previous page]</a></td></tr> 91 </tfoot> 92 </table> 9 <div wicket:id="generalBorder"> 10 <label>Name</label> <span wicket:id="name"></span> <br /> 11 <label>Type</label> <span wicket:id="type"></span> <br /> 12 <label>Creation Date</label> <span wicket:id="creationDate"></span> <br /> 13 14 <wicket:enclosure child="description"> 15 <label>Description</label> <div wicket:id="description"></div> <br /> 16 </wicket:enclosure> 17 <wicket:enclosure child="purpose"> 18 <label>Purpose</label> <span wicket:id="purpose"></span> <br /> 19 </wicket:enclosure> 20 <wicket:enclosure child="reproducibility"> 21 <label>Reproducibility</label> <span wicket:id="reproducibility"></span> <br /> 22 </wicket:enclosure> 23 <wicket:enclosure child="reproducibilityNotice"> 24 <label>Reproducibility Notice</label> <span wicket:id="reproducibilityNotice"></span> <br /> 25 </wicket:enclosure> 26 <wicket:enclosure child="keywords"> 27 <label>Keywords</label> 28 <ul><li wicket:id="keywords"><span wicket:id="keyword"></span></li></ul> 29 </wicket:enclosure> 30 </div> 31 32 <div wicket:id="creatorsBorder"> 33 <ul><li wicket:id="creators"> 34 <label>Person</label> <span wicket:id="person"></span> <br /> 35 <wicket:enclosure child="address"> 36 <label>Address</label> <span wicket:id="address"></span> <br /> 37 </wicket:enclosure> 38 <wicket:enclosure child="email"> 39 <label>Email</label> <span wicket:id="email"></span> <br /> 40 </wicket:enclosure> 41 <wicket:enclosure child="organisation"> 42 <label>Organisation</label> <span wicket:id="organisation"></span> <br /> 43 </wicket:enclosure> 44 <wicket:enclosure child="telephone"> 45 <label>Telephone</label> <span wicket:id="telephone"></span> <br /> 46 </wicket:enclosure> 47 <wicket:enclosure child="website"> 48 <label>Website</label> <a wicket:id="website"></a> <br /> 49 </wicket:enclosure> 50 <wicket:enclosure child="role"> 51 <label>Role</label> <span wicket:id="role"></span> <br /> 52 </wicket:enclosure> 53 </li> 54 </ul> 55 </div> 56 57 <div wicket:id="resourcesBorder"> 58 <table wicket:id="resourcesTable"></table> 59 </div> 60 61 <div wicket:id="generatedByBorder"> 62 <label>Description</label> <div wicket:id="generatedBy.description"></div> <br /> 63 <wicket:enclosure child="generatedBy.uri"> 64 <label>URI</label> <span wicket:id="generatedBy.uri"></span> <br /> 65 </wicket:enclosure> 66 <wicket:enclosure child="generatedBy.query.profile"> 67 <label>Profile</label> <span wicket:id="generatedBy.query.profile"></span> <br /> 68 </wicket:enclosure> 69 <wicket:enclosure child="generatedBy.query.value"> 70 <label>Profile</label> <span wicket:id="generatedBy.query.value"></span> <br /> 71 </wicket:enclosure> 72 </div> 73 74 <a wicket:id="back" href="#">[return to previous page]</a> 93 75 </wicket:extend> 94 76 </body> -
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/pages/VirtualCollectionDetailsPage.java
r933 r993 1 1 package eu.clarin.cmdi.virtualcollectionregistry.gui.pages; 2 2 3 import java.util.ArrayList; 4 import java.util.Iterator; 5 import java.util.List; 6 3 7 import org.apache.wicket.Page; 4 import org.apache.wicket.WicketRuntimeException; 8 import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackDefaultDataTable; 9 import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable; 10 import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; 11 import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn; 12 import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider; 5 13 import org.apache.wicket.markup.html.basic.Label; 6 14 import org.apache.wicket.markup.html.basic.MultiLineLabel; 15 import org.apache.wicket.markup.html.border.Border; 16 import org.apache.wicket.markup.html.link.ExternalLink; 7 17 import org.apache.wicket.markup.html.link.Link; 18 import org.apache.wicket.markup.html.link.PopupSettings; 8 19 import org.apache.wicket.markup.html.list.ListItem; 9 20 import org.apache.wicket.markup.html.list.ListView; 21 import org.apache.wicket.model.ComponentPropertyModel; 10 22 import org.apache.wicket.model.CompoundPropertyModel; 23 import org.apache.wicket.model.IModel; 24 import org.apache.wicket.model.Model; 11 25 12 import eu.clarin.cmdi.virtualcollectionregistry.VirtualCollectionRegistry; 13 import eu.clarin.cmdi.virtualcollectionregistry.VirtualCollectionRegistryException; 26 import eu.clarin.cmdi.virtualcollectionregistry.gui.border.AjaxToggleBorder; 14 27 import eu.clarin.cmdi.virtualcollectionregistry.model.Creator; 15 28 import eu.clarin.cmdi.virtualcollectionregistry.model.Resource; 16 29 import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection; 30 import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection.Type; 17 31 18 32 19 33 @SuppressWarnings("serial") 20 34 public class VirtualCollectionDetailsPage extends BasePage { 21 public VirtualCollectionDetailsPage(final VirtualCollection xvc, 35 private static final String CSS_CLASS = "collectionsDetails"; 36 37 public VirtualCollectionDetailsPage(final IModel<VirtualCollection> model, 22 38 final Page previousPage) { 23 super(); 39 super(model); 40 24 41 if (previousPage == null) { 25 42 throw new IllegalArgumentException("previousPage == null"); … … 32 49 }; 33 50 add(backLink); 51 52 final Border general = new AjaxToggleBorder("generalBorder", 53 new Model<String>("General"), CSS_CLASS); 54 add(general); 55 general.add(new Label("name")); 56 general.add(new Label("type")); 57 general.add(new Label("creationDate")); 58 general.add(new MultiLineLabel("description")); 59 general.add(new Label("purpose")); 60 general.add(new Label("reproducibility")); 61 general.add(new Label("reproducibilityNotice")); 62 final ListView<String> keywords = new ListView<String>("keywords") { 63 @Override 64 protected void populateItem(ListItem<String> item) { 65 item.add(new Label("keyword", item.getModelObject())); 66 } 67 }; 68 general.add(keywords); 69 70 final Border creators = new AjaxToggleBorder("creatorsBorder", 71 new Model<String>("Creators"), CSS_CLASS); 72 add(creators); 73 creators.add(new ListView<Creator>("creators") { 74 @Override 75 protected void populateItem(ListItem<Creator> item) { 76 item.add(new Label("person")); 77 item.add(new MultiLineLabel("address")); 78 item.add(new Label("organisation")); 79 item.add(new Label("email")); 80 item.add(new Label("telephone")); 81 final IModel<String> siteModel = 82 new ComponentPropertyModel<String>("website"); 83 item.add(new ExternalLink("website", siteModel, siteModel) 84 .setPopupSettings(new PopupSettings())); 85 item.add(new Label("role")); 86 } 87 88 @Override 89 protected IModel<Creator> getListItemModel( 90 IModel<? extends List<Creator>> listViewModel, int index) { 91 final List<Creator> creators = listViewModel.getObject(); 92 return new CompoundPropertyModel<Creator>(creators.get(index)); 93 } 94 }); 95 96 final Border resources = new AjaxToggleBorder("resourcesBorder", 97 new Model<String>("Resources"), CSS_CLASS); 98 add(resources); 34 99 35 try { 36 // FIXME: better use detachable model for collection list? 37 final VirtualCollectionRegistry vcr = 38 VirtualCollectionRegistry.instance(); 39 final VirtualCollection vc = 40 vcr.retrieveVirtualCollection(xvc.getId()); 41 setDefaultModel(new CompoundPropertyModel<VirtualCollection>(vc)); 42 add(new Label("name")); 43 add(new Label("type")); 44 add(new Label("creationDate")); 45 add(new MultiLineLabel("description")); 46 add(new Label("purpose")); 47 add(new Label("reproducibility")); 48 add(new Label("reproducibilityNotice")); 49 add(new ListView<String>("keywords") { 50 @Override 51 protected void populateItem(ListItem<String> item) { 52 item.add(new Label("keyword", item.getModelObject())); 53 } 54 }); 55 add(new ListView<Creator>("creators") { 56 @Override 57 protected void populateItem(ListItem<Creator> item) { 58 final Creator c = item.getModelObject(); 59 item.add(new Label("person", c.getPerson())); 60 item.add(new Label("address", c.getAddress())); 61 item.add(new Label("organisation", c.getOrganisation())); 62 item.add(new Label("email", c.getEMail())); 63 item.add(new Label("telephone", c.getTelephone())); 64 item.add(new Label("website", c.getWebsite())); 65 item.add(new Label("role", c.getRole())); 66 } 67 }); 68 add(new ListView<Resource>("resources") { 69 @Override 70 protected void populateItem(ListItem<Resource> item) { 71 final Resource r = item.getModelObject(); 72 item.add(new Label("type", r.getType().toString())); 73 item.add(new Label("ref", r.getRef())); 74 } 75 }); 76 add(new Label("generatedBy.description")); 77 add(new Label("generatedBy.uri")); 78 add(new Label("generatedBy.query.profile")); 79 add(new Label("generatedBy.query.value")); 80 } catch (VirtualCollectionRegistryException e) { 81 throw new WicketRuntimeException("fail", e); 82 } 100 final VirtualCollection vc = model.getObject(); 101 final List<IColumn<Resource>> cols = new ArrayList<IColumn<Resource>>(); 102 103 cols.add(new PropertyColumn<Resource>(new Model<String>("Type"), "type")); 104 cols.add(new PropertyColumn<Resource>(new Model<String>("Reference"), "ref")); 105 106 final DataTable<Resource> resourcesTable = 107 new AjaxFallbackDefaultDataTable<Resource>("resourcesTable", 108 cols, 109 new SortableDataProvider<Resource>() { 110 @Override 111 public Iterator<? extends Resource> 112 iterator(int first, int count) { 113 return vc.getResources().listIterator(first); 114 } 115 116 @Override 117 public IModel<Resource> model(Resource resource) { 118 return new Model<Resource>(resource); 119 } 120 121 @Override 122 public int size() { 123 return vc.getResources().size(); 124 } 125 }, 126 64); 127 resources.add(resourcesTable); 128 resources.setVisible(model.getObject().getType() == Type.EXTENSIONAL); 129 130 final Border generated = new AjaxToggleBorder("generatedByBorder", 131 new Model<String>("Intensional Collection Query"), CSS_CLASS); 132 add(generated); 133 generated.add(new Label("generatedBy.description")); 134 generated.add(new Label("generatedBy.uri")); 135 generated.add(new Label("generatedBy.query.profile")); 136 generated.add(new Label("generatedBy.query.value")); 137 generated.setVisible(model.getObject().getType() == Type.INTENSIONAL); 83 138 } 84 139
Note: See TracChangeset
for help on using the changeset viewer.