Changeset 1001
- Timestamp:
- 12/17/10 11:06:14 (13 years ago)
- Location:
- VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/pages
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/pages/VirtualCollectionDetailsPage.html
r993 r1001 68 68 </wicket:enclosure> 69 69 <wicket:enclosure child="generatedBy.query.value"> 70 <label> Profile</label> <span wicket:id="generatedBy.query.value"></span> <br />70 <label>Value</label> <span wicket:id="generatedBy.query.value"></span> <br /> 71 71 </wicket:enclosure> 72 72 </div> -
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/pages/VirtualCollectionDetailsPage.java
r993 r1001 2 2 3 3 import java.util.ArrayList; 4 import java.util.Collection; 4 5 import java.util.Iterator; 6 import java.util.LinkedList; 5 7 import java.util.List; 6 8 9 import org.apache.wicket.Component; 7 10 import org.apache.wicket.Page; 11 import org.apache.wicket.behavior.AbstractBehavior; 8 12 import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackDefaultDataTable; 9 13 import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable; … … 35 39 private static final String CSS_CLASS = "collectionsDetails"; 36 40 41 /* 42 * Actually, we really want the behavior to hide the component on 43 * the beforeRender() call, but we always get an exception from Wicket 44 * that we are not supposed to change the page hierarchy anymore. This 45 * class is a hack to avoid this exception. 46 */ 47 private final class HideIfEmptyBehavior extends AbstractBehavior { 48 private final List<Component> components = new LinkedList<Component>(); 49 50 @Override 51 public void bind(Component component) { 52 super.bind(component); 53 components.add(component); 54 } 55 56 public void hideEmptyComponents() { 57 for (Component component : components) { 58 Object obj = component.getDefaultModelObject(); 59 if (obj == null) { 60 component.setVisible(false); 61 } else { 62 if (obj instanceof Collection<?>) { 63 if (((Collection<?>) obj).isEmpty()) { 64 component.setVisible(false); 65 } 66 } 67 } 68 } 69 } 70 71 @Override 72 public void cleanup() { 73 super.cleanup(); 74 components.clear(); 75 } 76 } 77 78 79 private final HideIfEmptyBehavior hideIfEmpty = new HideIfEmptyBehavior(); 80 81 37 82 public VirtualCollectionDetailsPage(final IModel<VirtualCollection> model, 38 83 final Page previousPage) { 39 super(model); 40 84 super(new CompoundPropertyModel<VirtualCollection>(model.getObject())); 41 85 if (previousPage == null) { 42 86 throw new IllegalArgumentException("previousPage == null"); … … 56 100 general.add(new Label("type")); 57 101 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") );102 general.add(new MultiLineLabel("description").add(hideIfEmpty)); 103 general.add(new Label("purpose").add(hideIfEmpty)); 104 general.add(new Label("reproducibility").add(hideIfEmpty)); 105 general.add(new Label("reproducibilityNotice").add(hideIfEmpty)); 62 106 final ListView<String> keywords = new ListView<String>("keywords") { 63 107 @Override … … 66 110 } 67 111 }; 112 keywords.add(hideIfEmpty); 68 113 general.add(keywords); 69 114 … … 75 120 protected void populateItem(ListItem<Creator> item) { 76 121 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") );122 item.add(new MultiLineLabel("address").add(hideIfEmpty)); 123 item.add(new Label("organisation").add(hideIfEmpty)); 124 item.add(new Label("email").add(hideIfEmpty)); 125 item.add(new Label("telephone").add(hideIfEmpty)); 81 126 final IModel<String> siteModel = 82 127 new ComponentPropertyModel<String>("website"); 83 128 item.add(new ExternalLink("website", siteModel, siteModel) 84 .setPopupSettings(new PopupSettings())); 85 item.add(new Label("role")); 129 .setPopupSettings(new PopupSettings()) 130 .add(hideIfEmpty)); 131 item.add(new Label("role").add(hideIfEmpty)); 86 132 } 87 133 … … 132 178 add(generated); 133 179 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") );180 generated.add(new Label("generatedBy.uri").add(hideIfEmpty)); 181 generated.add(new Label("generatedBy.query.profile").add(hideIfEmpty)); 182 generated.add(new Label("generatedBy.query.value").add(hideIfEmpty)); 137 183 generated.setVisible(model.getObject().getType() == Type.INTENSIONAL); 138 184 } 139 185 186 @Override 187 protected void onBeforeRender() { 188 super.onBeforeRender(); 189 hideIfEmpty.hideEmptyComponents(); 190 } 191 140 192 } // class VirtualCollectionDetailsPage
Note: See TracChangeset
for help on using the changeset viewer.