1 19 20 package org.netbeans.modules.tasklist.usertasks.filter; 21 22 import java.awt.BorderLayout ; 23 import java.util.Arrays ; 24 import javax.swing.*; 25 import org.netbeans.modules.tasklist.core.checklist.CheckList; 26 import org.netbeans.modules.tasklist.core.checklist.DefaultCheckListModel; 27 import org.netbeans.modules.tasklist.core.filter.FilterCondition; 28 import org.netbeans.modules.tasklist.usertasks.model.UserTask; 29 import org.openide.util.NbBundle; 30 31 36 public class UTPriorityCondition extends FilterCondition { 37 42 public static UTPriorityCondition[] createConditions() { 43 return new UTPriorityCondition[] { 44 new UTPriorityCondition() 45 }; 46 }; 47 48 49 private static int NPRIORITIES = 5; 50 51 protected boolean[] priorities = new boolean[NPRIORITIES]; 53 54 59 public UTPriorityCondition() { 60 Arrays.fill(priorities, true); 61 } 62 63 64 public UTPriorityCondition(final UTPriorityCondition rhs) { 65 super(rhs); 66 for (int i = 0; i < NPRIORITIES; i++) 68 this.priorities[i] = rhs.priorities[i]; 69 } 70 71 public Object clone() { 72 return new UTPriorityCondition(this); 73 } 74 75 public boolean isTrue(Object o1) { 76 Integer k = (Integer ) o1; 77 return priorities[k - 1]; 78 } 79 80 public JComponent createConstantComponent() { 81 CheckList list = new CheckList( 82 new DefaultCheckListModel( 83 priorities, UserTask.getPriorityNames())); 84 JPanel panel = new JPanel(new BorderLayout ()); 85 panel.setOpaque(false); 86 panel.setBorder(BorderFactory.createCompoundBorder( 87 UIManager.getBorder("TextField.border"), BorderFactory.createEmptyBorder(2, 2, 2, 2) 89 )); 90 panel.add(list, BorderLayout.CENTER); 91 panel.setToolTipText(NbBundle.getMessage(UTPriorityCondition.class, 92 "prio_desc")); 93 94 list.getAccessibleContext().setAccessibleName( 95 NbBundle.getMessage(UTPriorityCondition.class, 96 "LBL_PriorityCheckList")); 97 list.getAccessibleContext().setAccessibleDescription( 98 NbBundle.getMessage(UTPriorityCondition.class, 99 "LBL_PriorityCheckList")); 100 101 return panel; 102 } 103 104 public void getConstantFrom(JComponent cmp) { 105 } 108 109 protected String getDisplayName() { 110 return NbBundle.getMessage(UTPriorityCondition.class, "IsOneOf"); 111 } 112 113 114 private static class Convertor extends FilterCondition.Convertor { 115 private static final String ATTR_PRIORITIES = "priorities"; 116 117 public Convertor() { 118 super("PriorityCondition"); 119 } 120 121 public static UTPriorityCondition.Convertor create() { 122 return new UTPriorityCondition.Convertor(); 123 } 124 125 protected Object readElement(org.w3c.dom.Element element) 126 throws java.io.IOException , java.lang.ClassNotFoundException { 127 UTPriorityCondition cond = new UTPriorityCondition(); 128 super.readCondition(element, cond); 129 130 String spriorities = element.getAttribute(ATTR_PRIORITIES); 131 boolean bpriorities [] = new boolean[NPRIORITIES]; 132 for (int i = 0; i < NPRIORITIES; i++) 133 bpriorities[i] = (spriorities.charAt(i) == '+'); 134 cond.priorities = bpriorities; 135 136 return cond; 137 } 138 139 protected void writeElement(org.w3c.dom.Document document, 141 org.w3c.dom.Element element, Object obj) 142 throws java.io.IOException , org.w3c.dom.DOMException { 143 UTPriorityCondition cond = (UTPriorityCondition)obj; 144 super.writeCondition(document, element, cond); 145 146 StringBuffer str = new StringBuffer (NPRIORITIES); 147 for (int i = 0; i < NPRIORITIES; i++) 148 str.append(cond.priorities[i] ? '+' : '-'); 149 element.setAttribute(ATTR_PRIORITIES, str.toString()); 150 } 151 } 152 153 154 } 155 | Popular Tags |