OSDN Git Service

Correct problem parsing notes where carriage returns did not separate some XML lines...
[neighbornote/NeighborNote.git] / src / cx / fbn / nevernote / gui / ContainsAttributeFilterTable.java
1 /*\r
2  * This file is part of NeverNote \r
3  * Copyright 2009 Randy Baumgarte\r
4  * \r
5  * This file may be licensed under the terms of of the\r
6  * GNU General Public License Version 2 (the ``GPL'').\r
7  *\r
8  * Software distributed under the License is distributed\r
9  * on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either\r
10  * express or implied. See the GPL for the specific language\r
11  * governing rights and limitations.\r
12  *\r
13  * You should have received a copy of the GPL along with this\r
14  * program. If not, go to http://www.gnu.org/licenses/gpl.html\r
15  * or write to the Free Software Foundation, Inc.,\r
16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\r
17  *\r
18 */\r
19 \r
20 package cx.fbn.nevernote.gui;\r
21 \r
22 import java.util.ArrayList;\r
23 \r
24 import com.evernote.edam.type.Note;\r
25 \r
26 import cx.fbn.nevernote.filters.ContainsAttributeFilter;\r
27 import cx.fbn.nevernote.sql.NoteTable;\r
28 \r
29 public class ContainsAttributeFilterTable {\r
30         ArrayList<ContainsAttributeFilter> table;\r
31         \r
32         public ContainsAttributeFilterTable() {\r
33                 table = new ArrayList<ContainsAttributeFilter>();\r
34                 table.add(new ContainsAttributeFilter.Mime("Image", "image/"));\r
35                 table.add(new ContainsAttributeFilter.Mime("Audio", "audio/"));\r
36                 table.add(new ContainsAttributeFilter.Mime("Ink", "application/vnd.evernote.ink"));\r
37                 table.add(new ContainsAttributeFilter.Content("Encrypted Text", "<en-crypt"));\r
38                 table.add(new ContainsAttributeFilter.Content("To-Do Items", "<en-todo"));\r
39                 table.add(new ContainsAttributeFilter.Todo("Unfinished to-do items", false));\r
40                 table.add(new ContainsAttributeFilter.Todo("Finished to-do items", true));\r
41                 table.add(new ContainsAttributeFilter.Attachment("Attachment"));\r
42                 table.add(new ContainsAttributeFilter.Mime("PDF","application/pdf"));\r
43                 \r
44         }\r
45         \r
46         public void reset() {\r
47                 for (int i=0; i<table.size(); i++) \r
48                         table.get(i).set(false);\r
49         }\r
50         \r
51         public void select(String name) {\r
52                 for (int i=0; i<table.size(); i++) \r
53                         if (table.get(i).getName().equalsIgnoreCase(name))\r
54                                 table.get(i).set(true);\r
55         }\r
56         public void select(int i) {\r
57                 table.get(i).set(true);\r
58         }\r
59         \r
60         public int size() {\r
61                 return table.size();\r
62         }\r
63         \r
64         public boolean hasSelection() {\r
65                 for (int i=0; i<table.size(); i++) {\r
66                         if (table.get(i).isSet())\r
67                                 return true;\r
68                 }\r
69                 return false;\r
70         }\r
71         \r
72         public boolean check(NoteTable sqlTable, Note n) {\r
73                 for (int i=0; i<table.size(); i++) {\r
74                         if (table.get(i).isSet()) {\r
75                                 n = sqlTable.getNote(n.getGuid(), true, true, false, false, false);\r
76                                 if (!table.get(i).checkContent(n)) \r
77                                         return false;\r
78                         }\r
79                 }\r
80                 return true;\r
81         }\r
82         \r
83         // Get the name of a particular attribute check\r
84         public String getName(int i) {\r
85                 return table.get(i).getName();\r
86         }\r
87 }\r