1 19 20 package org.netbeans.modules.tasklist.usertasks.filter; 21 22 import javax.swing.BorderFactory ; 23 import javax.swing.JComponent ; 24 import javax.swing.UIManager ; 25 26 import org.netbeans.modules.tasklist.core.filter.OneOfFilterCondition; 27 import org.netbeans.modules.tasklist.usertasks.DurationPanel; 28 import org.openide.util.NbBundle; 29 30 35 public class DurationFilterCondition extends OneOfFilterCondition { 36 public static final int EQUALS = 0; 37 public static final int NOTEQUALS = 1; 38 public static final int LESSTHAN = 2; 39 public static final int LESSOREQUALS = 3; 40 public static final int GREATERTHAN = 4; 41 public static final int GREATEROREQUALS = 5; 42 43 48 public static DurationFilterCondition[] createConditions() { 49 return new DurationFilterCondition[] { 50 new DurationFilterCondition(DurationFilterCondition.EQUALS), 51 new DurationFilterCondition(DurationFilterCondition.NOTEQUALS), 52 new DurationFilterCondition(DurationFilterCondition.LESSTHAN), 53 new DurationFilterCondition(DurationFilterCondition.LESSOREQUALS), 54 new DurationFilterCondition(DurationFilterCondition.GREATERTHAN), 55 new DurationFilterCondition(DurationFilterCondition.GREATEROREQUALS) 56 }; 57 }; 58 59 private static String [] NAME_KEYS = { 60 "Equals", "NotEquals", "LessThan", "LessEquals", "GreaterThan", "GreaterEquals" }; 67 68 69 private int constant; 70 71 77 public DurationFilterCondition(int id) { 78 super(NAME_KEYS, id); 79 } 80 81 84 public DurationFilterCondition( final DurationFilterCondition rhs) { 85 super(rhs); 86 this.constant = rhs.constant; 87 } 88 89 public Object clone() { 90 return new DurationFilterCondition(this); 91 } 92 93 public JComponent createConstantComponent() { 94 DurationPanel dp = new DurationPanel(); 95 dp.setOpaque(false); 96 dp.setDuration(constant); 97 dp.setToolTipText(NbBundle.getMessage( 98 DurationFilterCondition.class, "duration_desc")); return dp; 100 } 101 102 public void getConstantFrom(JComponent cmp) { 103 DurationPanel dp = (DurationPanel) cmp; 104 constant = dp.getDuration(); 105 } 106 107 public boolean isTrue(Object obj) { 108 int n = ((Integer ) obj).intValue(); 109 switch (getId()) { 110 case EQUALS: 111 return constant == n; 112 case NOTEQUALS: 113 return constant != n; 114 case LESSTHAN: 115 return n < constant; 116 case LESSOREQUALS: 117 return n <= constant; 118 case GREATERTHAN: 119 return n > constant; 120 case GREATEROREQUALS: 121 return n >= constant; 122 default: 123 throw new InternalError ("wrong id"); } 125 } 126 127 private static class Convertor extends OneOfFilterCondition.Convertor { 128 private static final String ELEM_DATE_CONDITION = "DurationCondition"; 129 private static final String ATTR_DATE = "duration"; 130 131 public Convertor() { 132 super(ELEM_DATE_CONDITION, NAME_KEYS); 133 } 134 135 public static DurationFilterCondition.Convertor create() { 136 return new DurationFilterCondition.Convertor(); 137 } 138 139 protected Object readElement(org.w3c.dom.Element element) 140 throws java.io.IOException , java.lang.ClassNotFoundException { 141 DurationFilterCondition cond = new DurationFilterCondition(EQUALS); 142 super.readCondition(element, cond); 143 cond.constant = Integer.parseInt(element.getAttribute(ATTR_DATE)); 144 return cond; 145 } 146 147 protected void writeElement(org.w3c.dom.Document document, 148 org.w3c.dom.Element element, Object obj) 149 throws java.io.IOException , org.w3c.dom.DOMException { 150 DurationFilterCondition cond = (DurationFilterCondition)obj; 151 super.writeElement(document, element, cond); 152 element.setAttribute(ATTR_DATE, Integer.toString(cond.constant)); 153 } 154 } 155 } 156 | Popular Tags |