1 19 20 package org.netbeans.modules.tasklist.usertasks.filter; 21 22 import java.io.Serializable ; 23 import org.netbeans.modules.tasklist.core.filter.AppliedFilterCondition; 24 import org.netbeans.modules.tasklist.core.filter.BooleanFilterCondition; 25 import org.netbeans.modules.tasklist.core.filter.DateFilterCondition; 26 import org.netbeans.modules.tasklist.core.filter.Filter; 27 import org.netbeans.modules.tasklist.core.filter.FilterConvertor; 28 import org.netbeans.modules.tasklist.core.filter.IntegerFilterCondition; 29 import org.netbeans.modules.tasklist.core.filter.StringFilterCondition; 30 import org.netbeans.modules.tasklist.core.filter.SuggestionProperty; 31 32 37 public class UserTaskFilter extends Filter { 38 private static final SuggestionProperty[] PROPS = new SuggestionProperty[] { 39 UserTaskProperties.PROP_SUMMARY, 40 UserTaskProperties.PROP_PRIORITY, 41 UserTaskProperties.PROP_CATEGORY, 42 UserTaskProperties.PROP_FILENAME, 43 UserTaskProperties.PROP_LINE_NUMBER, 44 UserTaskProperties.PROP_CREATED_DATE, 45 UserTaskProperties.PROP_LAST_EDITED_DATE, 46 UserTaskProperties.PROP_COMPLETED_DATE, 47 UserTaskProperties.PROP_DUE_DATE, 48 UserTaskProperties.PROP_DONE, 49 UserTaskProperties.PROP_PERCENT_COMPLETE, 50 UserTaskProperties.PROP_EFFORT, 51 UserTaskProperties.PROP_REMAINING_EFFORT, 52 UserTaskProperties.PROP_SPENT_TIME, 53 UserTaskProperties.PROP_SPENT_TIME_TODAY, 54 UserTaskProperties.PROP_OWNER, 55 UserTaskProperties.PROP_START 56 }; 57 58 63 public UserTaskFilter(String name) { 64 super(name); 65 } 66 67 public UserTaskFilter(UserTaskFilter rhs) { 68 super(rhs); 69 } 70 71 private UserTaskFilter() { } 73 74 public Object clone() { 75 return new UserTaskFilter(this); 76 } 77 78 public SuggestionProperty[] getProperties() { 79 return PROPS; 80 } 81 82 public AppliedFilterCondition[] createConditions(SuggestionProperty property) { 83 if (property.equals(UserTaskProperties.PROP_SUMMARY)) { 84 return applyConditions(property, StringFilterCondition.createConditions()); 85 } else if (property.equals(UserTaskProperties.PROP_PRIORITY)) { 86 return applyConditions(property, UTPriorityCondition.createConditions()); 87 } else if (property.equals(UserTaskProperties.PROP_CATEGORY)) { 88 return applyConditions(property, StringFilterCondition.createConditions()); 89 } else if (property.equals(UserTaskProperties.PROP_DETAILS)) { 90 return applyConditions(property, StringFilterCondition.createConditions()); 91 } else if (property.equals(UserTaskProperties.PROP_FILENAME)) { 92 return applyConditions(property, StringFilterCondition.createConditions()); 93 } else if (property.equals(UserTaskProperties.PROP_LINE_NUMBER)) { 94 return applyConditions(property, IntegerFilterCondition.createConditions()); 95 } else if (property.equals(UserTaskProperties.PROP_CREATED_DATE)) { 96 return applyConditions(property, DateFilterCondition.createConditions()); 97 } else if (property.equals(UserTaskProperties.PROP_LAST_EDITED_DATE)) { 98 return applyConditions(property, DateFilterCondition.createConditions()); 99 } else if (property.equals(UserTaskProperties.PROP_COMPLETED_DATE)) { 100 return applyConditions(property, DateFilterCondition.createConditions()); 101 } else if (property.equals(UserTaskProperties.PROP_DUE_DATE)) { 102 return applyConditions(property, DateFilterCondition.createConditions()); 103 } else if (property.equals(UserTaskProperties.PROP_DONE)) { 104 return applyConditions(property, BooleanFilterCondition.createConditions()); 105 } else if (property.equals(UserTaskProperties.PROP_PERCENT_COMPLETE)) { 106 return applyConditions(property, IntegerFilterCondition.createConditions()); 107 } else if (property.equals(UserTaskProperties.PROP_EFFORT)) { 108 return applyConditions(property, DurationFilterCondition.createConditions()); 109 } else if (property.equals(UserTaskProperties.PROP_REMAINING_EFFORT)) { 110 return applyConditions(property, DurationFilterCondition.createConditions()); 111 } else if (property.equals(UserTaskProperties.PROP_SPENT_TIME)) { 112 return applyConditions(property, DurationFilterCondition.createConditions()); 113 } else if (property.equals(UserTaskProperties.PROP_OWNER)) { 114 return applyConditions(property, StringFilterCondition.createConditions()); 115 } else if (property.equals(UserTaskProperties.PROP_START)) { 116 return applyConditions(property, DateFilterCondition.createConditions()); 117 } else if (property.equals(UserTaskProperties.PROP_SPENT_TIME_TODAY)) { 118 return applyConditions(property, DurationFilterCondition.createConditions()); 119 } else { 120 throw new InternalError ("Wrong index"); } 122 } 123 124 125 public static class Convertor extends FilterConvertor { 126 public Convertor() { 127 super("UserTaskFilter"); } 129 130 public static UserTaskFilter.Convertor create() { 131 return new UserTaskFilter.Convertor(); 132 } 133 134 protected Filter createFilter() { return new UserTaskFilter();} 135 136 protected SuggestionProperty getProperty(String propid) { 137 SuggestionProperty sp = UserTaskProperties.getProperty(propid); 138 if (sp == null) 139 return super.getProperty(propid); 140 else 141 return sp; 142 } 143 } 144 145 } 146 | Popular Tags |