Changeset 5500


Ignore:
Timestamp:
07/30/14 15:02:06 (10 years ago)
Author:
Twan Goosen
Message:

refactored provider into an abstract provider with an abstract method for selecting the collections space. extended by concrete providers for the pulished collections and private collections. also renamed it to CollectionsProvider?

Location:
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui
Files:
2 added
3 edited
1 moved

Legend:

Unmodified
Added
Removed
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/pages/BrowsePrivateCollectionsPage.java

    r5475 r5500  
    11package eu.clarin.cmdi.virtualcollectionregistry.gui.pages;
    22
     3import eu.clarin.cmdi.virtualcollectionregistry.VirtualCollectionRegistry;
     4import eu.clarin.cmdi.virtualcollectionregistry.VirtualCollectionRegistryException;
     5import eu.clarin.cmdi.virtualcollectionregistry.gui.VolatileEntityModel;
     6import eu.clarin.cmdi.virtualcollectionregistry.gui.dialog.ConfirmationDialog;
     7import eu.clarin.cmdi.virtualcollectionregistry.gui.menu.AjaxLinkMenuItem;
     8import eu.clarin.cmdi.virtualcollectionregistry.gui.menu.AjaxPopupMenu;
     9import eu.clarin.cmdi.virtualcollectionregistry.gui.table.PrivateCollectionsProvider;
     10import eu.clarin.cmdi.virtualcollectionregistry.gui.table.CollectionsProvider;
     11import eu.clarin.cmdi.virtualcollectionregistry.gui.table.VirtualCollectionTable;
     12import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection;
     13import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection.State;
     14import java.util.Collections;
    315import org.apache.wicket.Component;
     16import org.apache.wicket.PageParameters;
    417import org.apache.wicket.ajax.AjaxRequestTarget;
    518import org.apache.wicket.ajax.markup.html.AjaxLink;
     
    1023import org.apache.wicket.model.Model;
    1124import org.apache.wicket.model.StringResourceModel;
    12 
    13 import eu.clarin.cmdi.virtualcollectionregistry.VirtualCollectionRegistry;
    14 import eu.clarin.cmdi.virtualcollectionregistry.VirtualCollectionRegistryException;
    15 import eu.clarin.cmdi.virtualcollectionregistry.gui.VolatileEntityModel;
    16 import eu.clarin.cmdi.virtualcollectionregistry.gui.dialog.ConfirmationDialog;
    17 import eu.clarin.cmdi.virtualcollectionregistry.gui.menu.AjaxLinkMenuItem;
    18 import eu.clarin.cmdi.virtualcollectionregistry.gui.menu.AjaxPopupMenu;
    19 import eu.clarin.cmdi.virtualcollectionregistry.gui.table.VirtualCollectionTable;
    20 import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection;
    21 import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection.State;
    22 import java.util.Collections;
    23 import org.apache.wicket.PageParameters;
    2425import org.apache.wicket.spring.injection.annot.SpringBean;
    2526
     
    216217        super();
    217218        final VirtualCollectionTable table
    218                 = new VirtualCollectionTable("collectionsTable", true) {
     219                = new VirtualCollectionTable("collectionsTable", new PrivateCollectionsProvider(), true) {
    219220                    @Override
    220221                    protected Panel createActionColumn(String componentId,
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/pages/BrowsePublicCollectionsPage.java

    r5475 r5500  
    11package eu.clarin.cmdi.virtualcollectionregistry.gui.pages;
    22
     3import eu.clarin.cmdi.virtualcollectionregistry.gui.table.CollectionsProvider;
     4import eu.clarin.cmdi.virtualcollectionregistry.gui.table.PublishedCollectionsProvider;
     5import eu.clarin.cmdi.virtualcollectionregistry.gui.table.VirtualCollectionTable;
     6import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection;
    37import org.apache.wicket.ajax.AjaxRequestTarget;
    48import org.apache.wicket.ajax.markup.html.AjaxLink;
    59import org.apache.wicket.markup.html.panel.Panel;
    610import org.apache.wicket.model.IModel;
    7 
    8 import eu.clarin.cmdi.virtualcollectionregistry.gui.table.VirtualCollectionTable;
    9 import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection;
    1011
    1112@SuppressWarnings("serial")
     
    3233        super();
    3334        final VirtualCollectionTable table
    34                 = new VirtualCollectionTable("collectionsTable", false) {
     35                = new VirtualCollectionTable("collectionsTable", new PublishedCollectionsProvider(), false) {
    3536                    @Override
    3637                    protected Panel createActionColumn(String componentId,
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/table/CollectionsProvider.java

    r5459 r5500  
    66import eu.clarin.cmdi.virtualcollectionregistry.VirtualCollectionRegistryException;
    77import eu.clarin.cmdi.virtualcollectionregistry.gui.Application;
    8 import eu.clarin.cmdi.virtualcollectionregistry.gui.ApplicationSession;
    98import eu.clarin.cmdi.virtualcollectionregistry.gui.DetachableVirtualCollectionModel;
    109import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection;
     
    1817
    1918@SuppressWarnings("serial")
    20 class Provider extends
     19public abstract class CollectionsProvider extends
    2120        SortableDataProvider<VirtualCollection> implements
    2221        IFilterStateLocator<FilterState> {
    23     private final boolean privateMode;
     22
    2423    private FilterState filterstate = new FilterState();
    2524
    26     public Provider(boolean privateMode) {
    27         this.privateMode = privateMode;
     25    public CollectionsProvider() {
    2826        setSort("created", false);
    2927    }
     
    4745    public int size() {
    4846        try {
    49             final VirtualCollectionRegistry vcr =
    50                 Application.get().getRegistry();
     47            final VirtualCollectionRegistry vcr
     48                    = Application.get().getRegistry();
    5149            return vcr.getVirtualCollectionCount(getFilter());
    5250        } catch (VirtualCollectionRegistryException e) {
     
    5957            int count) {
    6058        try {
    61             final VirtualCollectionRegistry vcr =
    62                 Application.get().getRegistry();
    63             final List<VirtualCollection> results =
    64                 vcr.getVirtualCollections(first, count, getFilter());
     59            final VirtualCollectionRegistry vcr
     60                    = Application.get().getRegistry();
     61            final List<VirtualCollection> results
     62                    = vcr.getVirtualCollections(first, count, getFilter());
    6563            return results.iterator();
    6664        } catch (VirtualCollectionRegistryException e) {
     
    7371
    7472        QueryOptions.Filter filter = options.and();
    75         if (privateMode) {
    76             ApplicationSession session = ApplicationSession.get();
    77             filter.add(QueryOptions.Property.VC_OWNER,
    78                        QueryOptions.Relation.EQ,
    79                        session.getUser());
    80         } else {
    81             filter.add(QueryOptions.Property.VC_STATE,
    82                        QueryOptions.Relation.EQ,
    83                        VirtualCollection.State.PUBLIC);
    84         }
     73        // add the filter that selects the public or private space
     74        addSpaceFilter(filter);
     75        // apply the filter state
    8576        if (filterstate.hasName()) {
    8677            filter.add(QueryOptions.Property.VC_NAME,
    87                        QueryOptions.Relation.EQ,
    88                        filterstate.getNameWithWildcard());
     78                    QueryOptions.Relation.EQ,
     79                    filterstate.getNameWithWildcard());
    8980        }
    9081        if (filterstate.hasType()) {
    9182            filter.add(QueryOptions.Property.VC_TYPE,
    92                        QueryOptions.Relation.EQ,
    93                        filterstate.getType());
     83                    QueryOptions.Relation.EQ,
     84                    filterstate.getType());
    9485        }
    9586        if (filterstate.hasState()) {
    9687            filter.add(QueryOptions.Property.VC_STATE,
    97                        QueryOptions.Relation.EQ,
    98                        filterstate.getState());
     88                    QueryOptions.Relation.EQ,
     89                    filterstate.getState());
    9990        }
    10091        if (filterstate.hasDescription()) {
    10192            filter.add(QueryOptions.Property.VC_DESCRIPTION,
    102                        QueryOptions.Relation.EQ,
    103                        filterstate.getDescriptionWithWildcard());
     93                    QueryOptions.Relation.EQ,
     94                    filterstate.getDescriptionWithWildcard());
    10495        }
    10596        if (filterstate.hasCreated()) {
    10697            filter.add(QueryOptions.Property.VC_CREATION_DATE,
    107                        filterstate.getCreatedRelation(),
    108                        filterstate.getCreated());
     98                    filterstate.getCreatedRelation(),
     99                    filterstate.getCreated());
    109100        }
    110101        options.setFilter(filter);
     
    132123    }
    133124
     125    /**
     126     * Adds a filter that limits the results to a specific collections space
     127     * ({@lit i.e.} the public space or a user's private work space
     128     * @param filter
     129     */
     130    protected abstract void addSpaceFilter(QueryOptions.Filter filter);
     131
    134132} // class VirtualCollectionProvider
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/table/VirtualCollectionTable.java

    r1011 r5500  
    2020public abstract class VirtualCollectionTable extends Panel {
    2121
    22     public VirtualCollectionTable(String id, final boolean privateMode) {
     22    public VirtualCollectionTable(String id, CollectionsProvider provider, final boolean showState) {
    2323        super(id);
    2424        setOutputMarkupId(true);
     
    2828            new ArrayList<IColumn<VirtualCollection>>();
    2929        columns.add(new ColumnName(this));
    30         if (privateMode) {
     30        if (showState) {
    3131            columns.add(new ColumnState(this));
    3232        }
     
    3434        columns.add(new ColumnCreated(this));
    3535        columns.add(new ColumnActions(this));
    36         Provider provider = new Provider(privateMode);
    3736
    3837        // setup table
     
    4443                    @Override
    4544                    public String getObject() {
    46                         return privateMode ? "private" : "public";
     45                        return showState ? "private" : "public";
    4746                    }
    4847                }, " "));
     
    5352            new AjaxToggleBorder("border", new Model<String>("Filter"));
    5453        final FilterForm form =
    55             new FilterForm("filterForm", provider, table, privateMode);
     54            new FilterForm("filterForm", provider, table, showState);
    5655        border.add(form);
    5756        add(border);
Note: See TracChangeset for help on using the changeset viewer.