about summary refs log tree commit diff stats
path: root/client/trunk
diff options
context:
space:
mode:
authorKelly Rauchenberger <fefferburbia@gmail.com>2008-08-06 18:38:32 +0000
committerKelly Rauchenberger <fefferburbia@gmail.com>2008-08-06 18:38:32 +0000
commit5c55fdeec103cd854d41333f987e6709ef022467 (patch)
tree50222528615f54675fcf780f2cbfafcbe6f3a5c7 /client/trunk
parent4909076f16676f79065093d882e873a0c2b3351b (diff)
downloadinstadisc-5c55fdeec103cd854d41333f987e6709ef022467.tar.gz
instadisc-5c55fdeec103cd854d41333f987e6709ef022467.tar.bz2
instadisc-5c55fdeec103cd854d41333f987e6709ef022467.zip
Client: Tweaked the way filter invalidation works
Previously, an item has to match all filters, which would mean that having equals and inequals in the same subscription would mess things up. Now, to pass filter invalidation, an item has to match at least one equal (if there are any equals) and all inequals (if there are any inequals).
Diffstat (limited to 'client/trunk')
-rw-r--r--client/trunk/src/com/fourisland/instadisc/Item/WellFormedItem.java56
-rw-r--r--client/trunk/src/com/fourisland/instadisc/ManageFiltersForm.form3
-rw-r--r--client/trunk/src/com/fourisland/instadisc/ManageFiltersForm.java3
3 files changed, 46 insertions, 16 deletions
diff --git a/client/trunk/src/com/fourisland/instadisc/Item/WellFormedItem.java b/client/trunk/src/com/fourisland/instadisc/Item/WellFormedItem.java index 9b54f96..91d95aa 100644 --- a/client/trunk/src/com/fourisland/instadisc/Item/WellFormedItem.java +++ b/client/trunk/src/com/fourisland/instadisc/Item/WellFormedItem.java
@@ -40,22 +40,54 @@ public class WellFormedItem {
40 return good; 40 return good;
41 } 41 }
42 42
43 private boolean checkForEqualFilters() {
44 boolean good = true;
45
46 Filter[] filters = Wrapper.getAllFilter();
47 int i = 0;
48 for (i = 0; i < filters.length; i++) {
49 if (filters[i].getSubscription().equals(aThis.headerMap.get("Subscription"))) {
50 if (filters[i].getEqual()) {
51 good = (good ? aThis.headerMap.get(filters[i].getField()).contains(filters[i].getTest()) : false);
52 }
53 }
54 }
55
56 return good;
57 }
58
43 private boolean checkForFilterInvalidation() { 59 private boolean checkForFilterInvalidation() {
44 boolean good = true; 60 boolean good = true;
45 61 good = (good ? checkForEqualFilters() : false);
62 good = (good ? checkForInequalFilters() : false);
63
64 if (!good) {
65 XmlRpc xmlrpc = new XmlRpc("deleteItem");
66 xmlrpc.addParam(Integer.decode(aThis.headerMap.get("ID")));
67 xmlrpc.execute();
68 }
69
70 return good;
71 }
72
73 private boolean checkForInequalFilters() {
74 boolean good = true;
75 boolean start = false;
76
46 Filter[] filters = Wrapper.getAllFilter(); 77 Filter[] filters = Wrapper.getAllFilter();
47 int i = 0; 78 int i = 0;
48 for (i = 0; i < filters.length; i++) { 79 for (i = 0; i < filters.length; i++) {
49 if (filters[i].getSubscription().equals(aThis.headerMap.get("Subscription"))) { 80 if (filters[i].getSubscription().equals(aThis.headerMap.get("Subscription"))) {
50 if (filters[i].getEqual()) 81 if (!filters[i].getEqual()) {
51 { 82 if (!start) {
52 good = (good ? (!aThis.headerMap.get(filters[i].getField()).equals(filters[i].getTest())) : false); 83 good = false;
53 } else { 84 start = true;
54 good = (good ? (aThis.headerMap.get(filters[i].getField()).equals(filters[i].getTest())) : false); 85 }
86 good = (good ? true : !aThis.headerMap.get(filters[i].getField()).contains(filters[i].getTest()));
55 } 87 }
56 } 88 }
57 } 89 }
58 90
59 return good; 91 return good;
60 } 92 }
61 93
@@ -107,9 +139,8 @@ public class WellFormedItem {
107 private boolean checkForRequiredHeader(String string) { 139 private boolean checkForRequiredHeader(String string) {
108 return checkForRequiredHeader(aThis.headerMap, string); 140 return checkForRequiredHeader(aThis.headerMap, string);
109 } 141 }
110 142
111 public static boolean checkForRequiredHeader(HashMap<String, String> headerMap, String string) 143 public static boolean checkForRequiredHeader(HashMap<String, String> headerMap, String string) {
112 {
113 return headerMap.containsKey(string); 144 return headerMap.containsKey(string);
114 } 145 }
115 146
@@ -117,7 +148,7 @@ public class WellFormedItem {
117 try { 148 try {
118 URL url = new URL(aThis.headerMap.get("URL")); 149 URL url = new URL(aThis.headerMap.get("URL"));
119 URI subUrl = new URI(aThis.headerMap.get("Subscription")); 150 URI subUrl = new URI(aThis.headerMap.get("Subscription"));
120 151
121 return url.getHost().equals(subUrl.getHost()); 152 return url.getHost().equals(subUrl.getHost());
122 } catch (URISyntaxException ex) { 153 } catch (URISyntaxException ex) {
123 Logger.getLogger(WellFormedItem.class.getName()).log(Level.SEVERE, null, ex); 154 Logger.getLogger(WellFormedItem.class.getName()).log(Level.SEVERE, null, ex);
@@ -130,8 +161,7 @@ public class WellFormedItem {
130 161
131 private boolean checkForSubscription() { 162 private boolean checkForSubscription() {
132 boolean good = Wrapper.existsSubscription(aThis.headerMap.get("Subscription")); 163 boolean good = Wrapper.existsSubscription(aThis.headerMap.get("Subscription"));
133 if (!good) 164 if (!good) {
134 {
135 SubscriptionFile.deleteSubscription(Wrapper.getSubscription(aThis.headerMap.get("Subscription")), false); 165 SubscriptionFile.deleteSubscription(Wrapper.getSubscription(aThis.headerMap.get("Subscription")), false);
136 } 166 }
137 return good; 167 return good;
diff --git a/client/trunk/src/com/fourisland/instadisc/ManageFiltersForm.form b/client/trunk/src/com/fourisland/instadisc/ManageFiltersForm.form index 3f1e603..fcf64df 100644 --- a/client/trunk/src/com/fourisland/instadisc/ManageFiltersForm.form +++ b/client/trunk/src/com/fourisland/instadisc/ManageFiltersForm.form
@@ -88,9 +88,6 @@
88 <Properties> 88 <Properties>
89 <Property name="text" type="java.lang.String" resourceKey="jLabel2.text"/> 89 <Property name="text" type="java.lang.String" resourceKey="jLabel2.text"/>
90 <Property name="name" type="java.lang.String" value="jLabel2" noResource="true"/> 90 <Property name="name" type="java.lang.String" value="jLabel2" noResource="true"/>
91 <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
92 <Dimension value="[625, 17]"/>
93 </Property>
94 </Properties> 91 </Properties>
95 </Component> 92 </Component>
96 <Container class="javax.swing.JScrollPane" name="jScrollPane1"> 93 <Container class="javax.swing.JScrollPane" name="jScrollPane1">
diff --git a/client/trunk/src/com/fourisland/instadisc/ManageFiltersForm.java b/client/trunk/src/com/fourisland/instadisc/ManageFiltersForm.java index cd4426e..620665d 100644 --- a/client/trunk/src/com/fourisland/instadisc/ManageFiltersForm.java +++ b/client/trunk/src/com/fourisland/instadisc/ManageFiltersForm.java
@@ -162,6 +162,7 @@ public class ManageFiltersForm extends javax.swing.JDialog {
162 }// </editor-fold>//GEN-END:initComponents 162 }// </editor-fold>//GEN-END:initComponents
163 private void jList1ValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_jList1ValueChanged 163 private void jList1ValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_jList1ValueChanged
164 refreshFilterPane(); 164 refreshFilterPane();
165 jList2.setSelectedIndex(0);
165 }//GEN-LAST:event_jList1ValueChanged 166 }//GEN-LAST:event_jList1ValueChanged
166 167
167 private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed 168 private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
@@ -173,9 +174,11 @@ public class ManageFiltersForm extends javax.swing.JDialog {
173 try { 174 try {
174 if (filter.getID() == -65536) { 175 if (filter.getID() == -65536) {
175 jButton1.setText("Add"); 176 jButton1.setText("Add");
177 jButton1.setEnabled(true);
176 jButton2.setEnabled(false); 178 jButton2.setEnabled(false);
177 } else { 179 } else {
178 jButton1.setText("Edit"); 180 jButton1.setText("Edit");
181 jButton1.setEnabled(true);
179 jButton2.setEnabled(true); 182 jButton2.setEnabled(true);
180 } 183 }
181 } catch (Exception ex) { 184 } catch (Exception ex) {