Changeset 981


Ignore:
Timestamp:
12/11/10 17:15:09 (13 years ago)
Author:
oschonef
Message:
  • add filter to virtual collections tables
Location:
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main
Files:
2 added
2 deleted
6 edited

Legend:

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

    r964 r981  
    99@SuppressWarnings("serial")
    1010final class FilterState implements Serializable {
     11    public enum SearchMode {
     12        CONTAINS,
     13        STARTS_WITH,
     14        ENDS_WITH
     15    } // enum FilterState.SearchMode
     16    private SearchMode nameMode;
    1117    private String name;
     18    private SearchMode descriptionMode;
     19    private String description;
    1220    private VirtualCollection.Type type;
    1321    private VirtualCollection.State state;
    14     private String description;
    15     private QueryOptions.Relation createdRelation = QueryOptions.Relation.EQ;
     22    private QueryOptions.Relation createdRelation;
    1623    private Date created;
    1724
     25    public FilterState() {
     26        clear();
     27    }
     28
     29    public SearchMode getNameMode() {
     30        return nameMode;
     31    }
     32   
     33    public void setNameMode(SearchMode nameMode) {
     34        if (nameMode == null) {
     35            throw new IllegalArgumentException("nameMode == null");
     36        }
     37        this.nameMode = nameMode;
     38    }
     39   
    1840    public String getName() {
    1941        return name;
     
    2648    public boolean hasName() {
    2749        return name != null;
     50    }
     51
     52    public String getNameWithWildcard() {
     53        return addWildcards(name, nameMode);
     54    }
     55   
     56    public SearchMode getDescriptionMode() {
     57        return descriptionMode;
     58    }
     59
     60    public void setDescriptionMode(SearchMode descriptionMode) {
     61        if (descriptionMode == null) {
     62            throw new IllegalArgumentException("descriptionMode == null");
     63        }
     64        this.descriptionMode = descriptionMode;
     65    }
     66   
     67    public String getDescription() {
     68        return description;
     69    }
     70
     71    public void setDescription(String description) {
     72        this.description = description;
    2873    }
    2974
     
    5297    }
    5398
    54     public String getDescription() {
    55         return description;
     99    public boolean hasDescription() {
     100        return description != null;
    56101    }
    57102
    58     public void setDescription(String description) {
    59         this.description = description;
    60     }
    61 
    62     public boolean hasDescription() {
    63         return description != null;
     103    public String getDescriptionWithWildcard() {
     104        return addWildcards(description, descriptionMode);
    64105    }
    65106
     
    69110   
    70111    public void setCreatedRelation(QueryOptions.Relation createdRelation) {
     112        if (createdRelation == null) {
     113            throw new IllegalArgumentException("createdRelation == null");
     114        }
    71115        this.createdRelation = createdRelation;
    72116    }
     
    85129
    86130    public void clear() {
     131        nameMode = SearchMode.CONTAINS;
    87132        name = null;
     133        descriptionMode = SearchMode.CONTAINS;
     134        description = null;
    88135        type = null;
    89136        state = null;
    90         description = null;
    91137        createdRelation = QueryOptions.Relation.EQ;
    92138        created = null;
    93139    }
    94140
     141    private static String addWildcards(String s, SearchMode mode) {
     142        s = s.replaceAll("\\*+", "*");
     143        StringBuilder sb = new StringBuilder();
     144        if ((mode != SearchMode.STARTS_WITH) && !s.startsWith("*")) {
     145            sb.append('*');
     146        }
     147        sb.append(s);
     148        if ((mode != SearchMode.ENDS_WITH) && !s.endsWith("*")) {
     149            sb.append('*');
     150        }
     151        return sb.toString();
     152    }
     153
    95154} // class FilterState
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/table/Provider.java

    r964 r981  
    8787            filter.add(QueryOptions.Property.VC_NAME,
    8888                       QueryOptions.Relation.EQ,
    89                        filterstate.getName());
     89                       filterstate.getNameWithWildcard());
    9090        }
    9191        if (filterstate.hasType()) {
     
    102102            filter.add(QueryOptions.Property.VC_DESCRIPTION,
    103103                       QueryOptions.Relation.EQ,
    104                        filterstate.getDescription());
     104                       filterstate.getDescriptionWithWildcard());
    105105        }
    106106        if (filterstate.hasCreated()) {
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/table/VirtualCollectionTable.html

    r976 r981  
    77<wicket:panel>
    88  <div wicket:id="border">
    9     <label>Name</label>&nbsp;<select><option>contains</option><option>starts with</option><option>ends with</option></select>&nbsp;<input type="text" /><br />
    10     <label>Description</label>&nbsp;<select><option>contains</option><option>starts with</option><option>ends with</option></select>&nbsp;<input type="text" /><br />
    11     <label>Type</label>&nbsp;<select><option>extensional</option><option>intensional</option></select><br />
    12     <label>Created</label>&nbsp;<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>&nbsp;<input type="text" /><br />
    13     <input type="submit" value="filter" /><input type="submit" value="reset" />
     9    <div wicket:id="filterForm"></div>
    1410  </div>
    1511  <table wicket:id="table" class="collectionsTable"></table>
    16   <!--
    17   <div wicket:id="feedback" class="collectionsTableFeedback"></div>
    18   -->
    1912</wicket:panel>
    2013</body>
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/table/VirtualCollectionTable.java

    r976 r981  
    2222        setOutputMarkupId(true);
    2323
    24         final AjaxToggleBorder border = new AjaxToggleBorder("border",
    25                 new Model<String>("Filter"));
    26         add(border);
    27 
    28         // setup table
     24        // setup table provider
    2925        List<IColumn<VirtualCollection>> columns =
    3026            new ArrayList<IColumn<VirtualCollection>>();
     
    3733        columns.add(new ColumnActions(this));
    3834        Provider provider = new Provider(privateMode);
     35
     36        // setup table
    3937        final DataTable<VirtualCollection> table =
    4038            new AjaxFallbackDefaultDataTable<VirtualCollection>("table",
    41                 columns, provider, 4);
     39                columns, provider, 30);
    4240        table.addBottomToolbar(new AjaxNavigationToolbar(table));
     41
     42        // setup filter
     43        final AjaxToggleBorder border =
     44            new AjaxToggleBorder("border", new Model<String>("Filter"));
     45        border.add(new FilterForm("filterForm", provider, table, privateMode));
     46        add(border);
    4347        add(table);
    4448    }
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/table/VirtualCollectionTable.properties

    r964 r981  
    1111State.DELETED: deleted
    1212State.DEAD: dead
     13Relation.LT: less-than
     14Relation.LE: less-than or equals
     15Relation.EQ: equals
     16Relation.GE: greater-than or equals
     17Relation.GT: greater-than
     18SearchMode.CONTAINS: contains
     19SearchMode.STARTS_WITH: starts with
     20SearchMode.ENDS_WITH: ends with
    1321button.filter: Filter
    1422button.clear: Clear
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/webapp/css/vcr.css

    r976 r981  
    182182    font-family: Verdana, sans-serif;
    183183    font-size: 100%;
     184    border: 1px solid #000000;
    184185}
    185186
     
    328329        width: 570px;
    329330        overflow: auto;
     331        margin-bottom: 5px;
    330332}
    331333
     
    779781    padding: 5px;
    780782}
     783
     784form.filterForm {
     785        margin: 0;
     786        padding: 0;
     787}
     788       
     789form.filterForm fieldset {
     790        padding: 0;
     791        margin: 0;
     792        border: none;
     793}
     794
     795form.filterForm div.optional {
     796        margin-bottom: 4px;
     797}
     798
     799form.filterForm label {
     800        width: 75px !important;
     801}
     802
     803form.filterForm input.name,
     804form.filterForm input.desc {
     805        width: 790px;
     806}
Note: See TracChangeset for help on using the changeset viewer.