Changeset 976
- Timestamp:
- 12/09/10 14:52:57 (13 years ago)
- Location:
- VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main
- Files:
-
- 10 added
- 2 deleted
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/table/AjaxGoAndClearFilter.html
r964 r976 6 6 <body> 7 7 <wicket:panel> 8 <input wicket:id="filter" type="submit" value="filter" />9 <input wicket:id="clear" type="submit" value="clear" />8 <input wicket:id="filter" type="submit" class="filter" value="filter" /> 9 <input wicket:id="clear" type="submit" class="clear" value="clear" /> 10 10 </wicket:panel> 11 11 </body> -
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/table/ColumnActions.java
r964 r976 1 1 package eu.clarin.cmdi.virtualcollectionregistry.gui.table; 2 2 3 import org.apache.wicket.Component;4 3 import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator; 5 4 import org.apache.wicket.extensions.markup.html.repeater.data.table.HeaderlessColumn; 6 import org.apache.wicket.extensions.markup.html.repeater.data.table.filter.FilterForm;7 import org.apache.wicket.extensions.markup.html.repeater.data.table.filter.IFilteredColumn;8 5 import org.apache.wicket.markup.repeater.Item; 9 6 import org.apache.wicket.model.IModel; … … 12 9 13 10 @SuppressWarnings("serial") 14 final class ColumnActions extends HeaderlessColumn<VirtualCollection> 15 implements IFilteredColumn<VirtualCollection> { 16 private final transient VirtualCollectionTable table; 11 final class ColumnActions extends HeaderlessColumn<VirtualCollection> { 12 private final VirtualCollectionTable table; 17 13 18 14 public ColumnActions(VirtualCollectionTable table) { 19 15 super(); 20 16 this.table = table; 21 }22 23 @Override24 public Component getFilter(String componentId, FilterForm<?> form) {25 return new AjaxGoAndClearFilter(componentId);26 17 } 27 18 -
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/table/ColumnCreated.java
r964 r976 2 2 3 3 import org.apache.commons.lang.time.FastDateFormat; 4 import org.apache.wicket.Component;5 4 import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator; 6 import org.apache.wicket.extensions.markup.html.repeater.data.table.filter.FilterForm; 7 import org.apache.wicket.extensions.markup.html.repeater.data.table.filter.FilteredAbstractColumn; 5 import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn; 8 6 import org.apache.wicket.markup.html.basic.Label; 9 7 import org.apache.wicket.markup.repeater.Item; 10 import org.apache.wicket.model.CompoundPropertyModel;11 8 import org.apache.wicket.model.IModel; 12 9 import org.apache.wicket.model.ResourceModel; … … 15 12 16 13 @SuppressWarnings("serial") 17 final class ColumnCreated extends FilteredAbstractColumn<VirtualCollection> {14 final class ColumnCreated extends AbstractColumn<VirtualCollection> { 18 15 private static final FastDateFormat df = 19 16 FastDateFormat.getInstance("yyyy-MM-dd"); … … 21 18 ColumnCreated(VirtualCollectionTable table) { 22 19 super(new ResourceModel("column.created", "Created"), "created"); 23 }24 25 @Override26 public Component getFilter(String componentId, FilterForm<?> form) {27 final FilterState state =28 (FilterState) form.getStateLocator().getFilterState();29 final IModel<FilterState> model =30 new CompoundPropertyModel<FilterState>(state);31 return new CreatedDateFilter(componentId, model, form);32 20 } 33 21 -
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/table/ColumnName.java
r964 r976 1 1 package eu.clarin.cmdi.virtualcollectionregistry.gui.table; 2 2 3 import org.apache.wicket.Component; 4 import org.apache.wicket.extensions.markup.html.repeater.data.table.filter.FilterForm; 5 import org.apache.wicket.extensions.markup.html.repeater.data.table.filter.FilteredPropertyColumn; 6 import org.apache.wicket.extensions.markup.html.repeater.data.table.filter.TextFilter; 3 import org.apache.wicket.behavior.AttributeAppender; 4 import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator; 5 import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn; 6 import org.apache.wicket.markup.html.WebMarkupContainer; 7 import org.apache.wicket.markup.html.basic.Label; 8 import org.apache.wicket.markup.html.basic.MultiLineLabel; 9 import org.apache.wicket.markup.html.panel.Panel; 10 import org.apache.wicket.markup.repeater.Item; 7 11 import org.apache.wicket.model.IModel; 8 import org.apache.wicket.model. PropertyModel;12 import org.apache.wicket.model.Model; 9 13 import org.apache.wicket.model.ResourceModel; 14 import org.odlabs.wiquery.core.effects.EffectSpeed; 15 import org.odlabs.wiquery.core.effects.sliding.SlideToggle; 16 import org.odlabs.wiquery.core.events.Event; 17 import org.odlabs.wiquery.core.events.MouseEvent; 18 import org.odlabs.wiquery.core.events.WiQueryEventBehavior; 19 import org.odlabs.wiquery.core.javascript.JsScope; 20 import org.odlabs.wiquery.core.javascript.JsStatement; 10 21 11 22 import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection; 12 23 13 24 @SuppressWarnings("serial") 14 final class ColumnName extends FilteredPropertyColumn<VirtualCollection> { 25 final class ColumnName extends AbstractColumn<VirtualCollection> { 26 private final class ItemCell extends Panel { 27 private final static String DETAILS_SHOWN_CLASS = "detailsShown"; 28 29 public ItemCell(String id, IModel<VirtualCollection> model) { 30 super(id); 31 setRenderBodyOnly(true); 32 final VirtualCollection vc = model.getObject(); 33 final Label nameLabel = new Label("name", vc.getName()); 34 add(nameLabel); 35 36 final WebMarkupContainer details = 37 new WebMarkupContainer("details"); 38 details.setOutputMarkupId(true); 39 40 final String desc = vc.getDescription(); 41 final MultiLineLabel descLabel = new MultiLineLabel("desc", desc); 42 if (desc == null) { 43 descLabel.setVisible(false); 44 } 45 details.add(descLabel); 46 add(details); 47 nameLabel.add(new WiQueryEventBehavior(new Event(MouseEvent.CLICK) { 48 @Override 49 public JsScope callback() { 50 final JsScope cb = JsScope.quickScope(new JsStatement() 51 .$(nameLabel).toggleClass(DETAILS_SHOWN_CLASS)); 52 final SlideToggle effect = new SlideToggle(EffectSpeed.SLOW); 53 effect.setCallback(cb); 54 return JsScope.quickScope(new JsStatement() 55 .$(details).chain(effect)); 56 } 57 })); 58 details.add(new AttributeAppender("style", 59 new Model<String>("display:none"), ";")); 60 } 61 } // class ColumnName.ItemCell 15 62 16 63 ColumnName(VirtualCollectionTable table) { 17 super(new ResourceModel("column.name", "Name"), "name", 18 "name"); 64 super(new ResourceModel("column.name", "Name"), "name"); 19 65 } 20 66 21 67 @Override 22 public Component getFilter(String componentId, FilterForm<?> form) { 23 final FilterState state = 24 (FilterState) form.getStateLocator().getFilterState(); 25 final IModel<String> model = 26 new PropertyModel<String>(state, "name"); 27 return new TextFilter<String>(componentId, model, form); 68 public void populateItem(Item<ICellPopulator<VirtualCollection>> item, 69 String componentId, IModel<VirtualCollection> model) { 70 item.add(new ItemCell(componentId, model)); 28 71 } 29 72 -
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/table/ColumnState.java
r964 r976 1 1 package eu.clarin.cmdi.virtualcollectionregistry.gui.table; 2 2 3 import java.util.Arrays;4 import java.util.List;5 6 import org.apache.wicket.Component;7 3 import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator; 8 import org.apache.wicket.extensions.markup.html.repeater.data.table.filter.ChoiceFilter; 9 import org.apache.wicket.extensions.markup.html.repeater.data.table.filter.FilterForm; 10 import org.apache.wicket.extensions.markup.html.repeater.data.table.filter.FilteredAbstractColumn; 4 import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn; 11 5 import org.apache.wicket.markup.html.basic.Label; 12 6 import org.apache.wicket.markup.html.form.EnumChoiceRenderer; 13 7 import org.apache.wicket.markup.repeater.Item; 14 8 import org.apache.wicket.model.IModel; 15 import org.apache.wicket.model.PropertyModel;16 9 import org.apache.wicket.model.ResourceModel; 17 10 … … 19 12 20 13 @SuppressWarnings("serial") 21 final class ColumnState extends FilteredAbstractColumn<VirtualCollection> { 22 private static final List<VirtualCollection.State> STATE_VALUES = 23 Arrays.asList(VirtualCollection.State.PRIVATE, 24 VirtualCollection.State.PUBLIC, 25 VirtualCollection.State.PUBLIC_PENDING, 26 VirtualCollection.State.DELETED); 14 final class ColumnState extends AbstractColumn<VirtualCollection> { 27 15 private final EnumChoiceRenderer<VirtualCollection.State> renderer; 28 16 … … 30 18 super(new ResourceModel("column.state", "State"), "state"); 31 19 this.renderer = new EnumChoiceRenderer<VirtualCollection.State>(table); 32 }33 34 @Override35 public Component getFilter(String componentId, FilterForm<?> form) {36 final FilterState state =37 (FilterState) form.getStateLocator().getFilterState();38 final IModel<VirtualCollection.State> model =39 new PropertyModel<VirtualCollection.State>(state, "state");40 return new ChoiceFilter<VirtualCollection.State>(componentId, model,41 form, STATE_VALUES, renderer, true);42 20 } 43 21 -
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/table/ColumnType.java
r964 r976 1 1 package eu.clarin.cmdi.virtualcollectionregistry.gui.table; 2 2 3 import java.util.Arrays;4 import java.util.List;5 6 import org.apache.wicket.Component;7 3 import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator; 8 import org.apache.wicket.extensions.markup.html.repeater.data.table.filter.ChoiceFilter; 9 import org.apache.wicket.extensions.markup.html.repeater.data.table.filter.FilterForm; 10 import org.apache.wicket.extensions.markup.html.repeater.data.table.filter.FilteredAbstractColumn; 4 import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn; 11 5 import org.apache.wicket.markup.html.basic.Label; 12 6 import org.apache.wicket.markup.html.form.EnumChoiceRenderer; 13 7 import org.apache.wicket.markup.repeater.Item; 14 8 import org.apache.wicket.model.IModel; 15 import org.apache.wicket.model.PropertyModel;16 9 import org.apache.wicket.model.ResourceModel; 17 10 … … 19 12 20 13 @SuppressWarnings("serial") 21 final class ColumnType extends FilteredAbstractColumn<VirtualCollection> { 22 private static final List<VirtualCollection.Type> TYPE_VALUES = 23 Arrays.asList(VirtualCollection.Type.values()); 14 final class ColumnType extends AbstractColumn<VirtualCollection> { 24 15 private final EnumChoiceRenderer<VirtualCollection.Type> renderer; 25 16 … … 27 18 super(new ResourceModel("column.type", "Type"), "type"); 28 19 this.renderer = new EnumChoiceRenderer<VirtualCollection.Type>(table); 29 }30 31 @Override32 public Component getFilter(String componentId, FilterForm<?> form) {33 final FilterState state =34 (FilterState) form.getStateLocator().getFilterState();35 final IModel<VirtualCollection.Type> model =36 new PropertyModel<VirtualCollection.Type>(state, "type");37 return new ChoiceFilter<VirtualCollection.Type>(componentId, model,38 form, TYPE_VALUES, renderer, true);39 20 } 40 21 -
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/table/VirtualCollectionTable.html
r964 r976 6 6 <body> 7 7 <wicket:panel> 8 <form wicket:id="filterform"> 9 <div> 10 <input wicket:id="focus-tracker" type="hidden" style="display: none" /> 11 <input wicket:id="focus-restore" type="hidden" style="display: none" /> 12 </div> 13 <table wicket:id="table" class="collectionsTable"></table> 14 <div wicket:id="feedback" class="collectionsTableFeedback"></div> 15 </form> 8 <div wicket:id="border"> 9 <label>Name</label> <select><option>contains</option><option>starts with</option><option>ends with</option></select> <input type="text" /><br /> 10 <label>Description</label> <select><option>contains</option><option>starts with</option><option>ends with</option></select> <input type="text" /><br /> 11 <label>Type</label> <select><option>extensional</option><option>intensional</option></select><br /> 12 <label>Created</label> <select><option>is less-than</option><option>is less-than or equals</option><option>equals</option><option>is greater-than or equals</option><option>is greater-than</option></select> <input type="text" /><br /> 13 <input type="submit" value="filter" /><input type="submit" value="reset" /> 14 </div> 15 <table wicket:id="table" class="collectionsTable"></table> 16 <!-- 17 <div wicket:id="feedback" class="collectionsTableFeedback"></div> 18 --> 16 19 </wicket:panel> 17 20 </body> -
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/table/VirtualCollectionTable.java
r964 r976 5 5 6 6 import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackDefaultDataTable; 7 import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxNavigationToolbar; 7 8 import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable; 8 9 import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; 9 import org.apache.wicket.extensions.markup.html.repeater.data.table.filter.FilterForm;10 import org.apache.wicket.extensions.markup.html.repeater.data.table.filter.FilterToolbar;11 import org.apache.wicket.markup.html.panel.FeedbackPanel;12 10 import org.apache.wicket.markup.html.panel.Panel; 13 11 import org.apache.wicket.model.IModel; 12 import org.apache.wicket.model.Model; 14 13 14 import eu.clarin.cmdi.virtualcollectionregistry.gui.border.AjaxToggleBorder; 15 15 import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection; 16 16 … … 22 22 setOutputMarkupId(true); 23 23 24 // create columns 24 final AjaxToggleBorder border = new AjaxToggleBorder("border", 25 new Model<String>("Filter")); 26 add(border); 27 28 // setup table 25 29 List<IColumn<VirtualCollection>> columns = 26 30 new ArrayList<IColumn<VirtualCollection>>(); 27 31 columns.add(new ColumnName(this)); 28 columns.add(new ColumnType(this));29 32 if (privateMode) { 30 33 columns.add(new ColumnState(this)); 31 34 } 32 columns.add(new Column Description(this));35 columns.add(new ColumnType(this)); 33 36 columns.add(new ColumnCreated(this)); 34 37 columns.add(new ColumnActions(this)); 35 38 Provider provider = new Provider(privateMode); 36 final FilterForm<FilterState> form =37 new FilterForm<FilterState>("filterform", provider);38 form.setOutputMarkupId(true);39 add(form);40 41 // table42 39 final DataTable<VirtualCollection> table = 43 40 new AjaxFallbackDefaultDataTable<VirtualCollection>("table", 44 columns, provider, 32); 45 table.addTopToolbar(new FilterToolbar(table, form, provider)); 46 table.setOutputMarkupId(true); 47 form.add(table); 48 form.add(new FeedbackPanel("feedback")); 49 add(form); 41 columns, provider, 4); 42 table.addBottomToolbar(new AjaxNavigationToolbar(table)); 43 add(table); 50 44 } 51 45 -
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/webapp/css/vcr.css
r933 r976 2 2 margin: 0; 3 3 /* padding: 0; */ 4 } 5 6 html { 7 overflow-y: scroll 4 8 } 5 9 … … 13 17 color: #000000; 14 18 /* background-color: #E9EEFA; */ 15 width: 1024px;16 min-width: 1024px;19 width: 990px; 20 min-width: 990px; 17 21 height: 100%; 18 22 } … … 73 77 height: 70px; 74 78 line-height: 70px; 75 font-size: 3 6px;79 font-size: 34px; 76 80 font-weight: bold; 77 81 font-variant: small-caps; … … 204 208 padding: 0; 205 209 font-size: 100%; 206 min-width: 1012px; 207 max-width: 1012px; 208 width: 1012px; 210 width: 978px; 211 min-width: 978px; 209 212 } 210 213 … … 296 299 display: block; 297 300 float: left; 298 width: 1 50px;301 width: 140px; 299 302 padding: 3px 5px; 300 303 margin: 0 0 5px 0; … … 323 326 font-family: Verdana, sans-serif; 324 327 font-size: 100%; 325 width: 602px;328 width: 570px; 326 329 overflow: auto; 327 330 } … … 584 587 } 585 588 586 table thead { 589 table thead, 590 table tfoot { 587 591 color: inherit; 588 592 background-color: #D4DEEF; … … 618 622 table td.norecords-td { 619 623 text-align: center; 620 } 621 622 table tr.navigation { 624 color: inherit; 625 background-color: #FFFFFF; 626 } 627 628 table thead tr.navigation { 623 629 border-bottom: 1px dotted #BBBBBB; 624 630 } … … 630 636 table.creatorsTable, 631 637 table.resourcesTable { 632 width: 8 32px;638 width: 805px; 633 639 } 634 640 … … 668 674 669 675 table.collectionsTable { 670 width: 100%;671 margin-top: 5px;676 width: auto; 677 table-layout: fixed; 672 678 } 673 679 … … 677 683 } 678 684 679 table.collectionsTable th.title, 680 table.collectionsTable td.title { 681 width: 250px; 682 } 683 685 table.collectionsTable th.name, 686 table.collectionsTable td.name { 687 width: 670px; 688 } 689 690 table.collectionsTable td.name div.details { 691 margin-right: -312px; 692 } 693 694 table.collectionsTable td.name div.name { 695 padding-left: 16px; 696 background-image: url('../icons/bullet_arrow_down.png'); 697 background-repeat: no-repeat; 698 background-position: center left; 699 } 700 701 table.collectionsTable td.name div.name:hover { 702 color: #AE0000; 703 background-color: inherit; 704 } 705 706 table.collectionsTable td.name div.name.detailsShown { 707 padding-left: 16px; 708 background-image: url('../icons/bullet_arrow_up.png'); 709 background-repeat: no-repeat; 710 background-position: center left; 711 } 712 713 table.collectionsTable td.name div.details { 714 padding: 2px 2px 2px 16px; 715 } 716 717 table.collectionsTable td.name div.desc { 718 text-align: justify; 719 padding-bottom: 2px; 720 } 721 722 table.collectionsTable th.created, 723 table.collectionsTable td.created { 724 width: 100px; 725 } 684 726 685 727 table.collectionsTable th.type, 686 728 table.collectionsTable td.type { 687 width: 85px; 688 } 689 690 table.collectionsTable th.description, 691 table.collectionsTable td.description { 692 width: 500px; 693 } 694 695 table.collectionsTable th.created, 696 table.collectionsTable td.created { 697 width: 95px; 698 } 699 700 table.collectionsTable td.action { 701 white-space: nowrap; 702 } 729 width: 100px; 730 } 731 732 table.collectionsTable td.action, 733 table.collectionsTable th.action { 734 width: 100px; 735 } 736 737 tr.headers a.wicket_orderNone { 738 padding-right: 7px; 739 background: transparent url('../icons/order_none.png') no-repeat center right; 740 } 741 742 tr.headers a.wicket_orderUp { 743 padding-right: 7px; 744 background: transparent url('../icons/order_up.png') no-repeat center right; 745 } 746 747 tr.headers a.wicket_orderDown { 748 padding-right: 7px; 749 background: transparent url('../icons/order_down.png') no-repeat center right; 750 } 751 752 div.toggleBorder { 753 border-top: 1px solid #000000; 754 } 755 756 div.toggleBorder div.toggleBorderHeader { 757 margin: 0; 758 padding: 2px 2px 2px 16px; 759 border-bottom: 1px solid #000000; 760 color: inherit; 761 background-color: #D4DEEF; 762 background-image: url('../icons/bullet_arrow_up.png'); 763 background-repeat: no-repeat; 764 background-position: center left; 765 } 766 767 div.toggleBorder div.toggleBorderHeader span { 768 font-weight: bold; 769 } 770 771 div.toggleBorder div.toggleBorderHeader.collapsed { 772 background-image: url('../icons/bullet_arrow_down.png'); 773 background-repeat: no-repeat; 774 background-position: center left; 775 } 776 777 div.toggleBorder div.toggleBorderContent { 778 margin: 0; 779 padding: 5px; 780 }
Note: See TracChangeset
for help on using the changeset viewer.