Ignore:
Timestamp:
12/11/10 17:15:09 (13 years ago)
Author:
oschonef
Message:
  • add filter to virtual collections tables
File:
1 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
Note: See TracChangeset for help on using the changeset viewer.