OSDN Git Service

Merge Hiroshi's changes.
[neighbornote/NeighborNote.git] / src / cx / fbn / nevernote / gui / AttributeTreeWidget.java
1 /*\r
2  * This file is part of NeverNote \r
3  * Copyright 2009,2010 Randy Baumgarte\r
4  * Copyright 2010 Hiroshi Miura\r
5  * \r
6  * This file may be licensed under the terms of of the\r
7  * GNU General Public License Version 2 (the ``GPL'').\r
8  *\r
9  * Software distributed under the License is distributed\r
10  * on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either\r
11  * express or implied. See the GPL for the specific language\r
12  * governing rights and limitations.\r
13  *\r
14  * You should have received a copy of the GPL along with this\r
15  * program. If not, go to http://www.gnu.org/licenses/gpl.html\r
16  * or write to the Free Software Foundation, Inc.,\r
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\r
18  *\r
19 */\r
20 \r
21 package cx.fbn.nevernote.gui;\r
22 \r
23 import com.trolltech.qt.core.Qt;\r
24 import com.trolltech.qt.core.Qt.ItemDataRole;\r
25 \r
26 import com.trolltech.qt.gui.QAbstractItemView;\r
27 import com.trolltech.qt.gui.QIcon;\r
28 import com.trolltech.qt.gui.QTreeWidget;\r
29 import com.trolltech.qt.gui.QTreeWidgetItem;\r
30 \r
31 import cx.fbn.nevernote.Global;\r
32 \r
33 public class AttributeTreeWidget extends QTreeWidget {\r
34         public enum Attributes {Created, Since, Before, LastModified};\r
35         \r
36         public AttributeTreeWidget() {\r
37         setHeaderLabel(tr("Attributes"));\r
38         setSelectionMode(QAbstractItemView.SelectionMode.MultiSelection);\r
39  \r
40         setHeaderLabel(tr("Attributes"));\r
41         setSelectionMode(QAbstractItemView.SelectionMode.SingleSelection);\r
42         \r
43         // Setup the first attribute tree\r
44         QTreeWidgetItem created = new QTreeWidgetItem();\r
45         created.setText(0,tr("Created"));\r
46             created.setData(0, Qt.ItemDataRole.UserRole, Attributes.Created);\r
47         addTopLevelItem(created);\r
48         // Created Since List\r
49         QTreeWidgetItem parent = created;\r
50         QTreeWidgetItem child;\r
51         child = new QTreeWidgetItem();\r
52         child.setText(0,tr("Since"));\r
53             child.setData(0,Qt.ItemDataRole.UserRole, Attributes.Since);\r
54         parent.addChild(child);         \r
55         parent = child;\r
56                 \r
57                 // -Since=true/Before=false, Created=true/Updated=false)\r
58         Global.createdBeforeFilter = new DateAttributeFilterTable(false, true);\r
59         Global.createdSinceFilter = new DateAttributeFilterTable(true, true);\r
60         Global.changedBeforeFilter = new DateAttributeFilterTable(false, false);\r
61         Global.changedSinceFilter = new DateAttributeFilterTable(true, false);\r
62         Global.containsFilter = new ContainsAttributeFilterTable();\r
63         \r
64                 String iconPath = new String("classpath:cx/fbn/nevernote/icons/");\r
65                 QIcon icon = new QIcon(iconPath+"attribute.png");\r
66         for (int i=0; i<Global.createdSinceFilter.size(); i++) {\r
67                 child = new QTreeWidgetItem();\r
68                 child.setIcon(0, icon);\r
69                 child.setText(0, Global.createdSinceFilter.getLabel(i));\r
70                 parent.addChild(child);\r
71         }\r
72         \r
73         \r
74         // Created Before List\r
75         parent = created;\r
76         child = new QTreeWidgetItem();\r
77         child.setText(0,tr("Before"));\r
78             child.setData(0,Qt.ItemDataRole.UserRole, Attributes.Before);\r
79         created.addChild(child);\r
80         parent = child;\r
81         for (int i=0; i<Global.createdBeforeFilter.size(); i++) {\r
82                 child = new QTreeWidgetItem();\r
83                 child.setIcon(0, icon);\r
84                 child.setText(0, Global.createdBeforeFilter.getLabel(i));\r
85                 parent.addChild(child);\r
86         }\r
87         \r
88         \r
89         QTreeWidgetItem lastModified = new QTreeWidgetItem();\r
90         lastModified.setText(0,tr("Last Modified"));\r
91             lastModified.setData(0,Qt.ItemDataRole.UserRole, Attributes.LastModified);\r
92         addTopLevelItem(lastModified);\r
93  \r
94         // Changed Since List\r
95         parent = lastModified;\r
96         child = new QTreeWidgetItem();\r
97         child.setText(0,tr("Since"));\r
98         child.setData(0,Qt.ItemDataRole.UserRole, Attributes.Since);\r
99         lastModified.addChild(child);\r
100         parent = child;\r
101         for (int i=0; i<Global.changedSinceFilter.size(); i++) {\r
102                 child = new QTreeWidgetItem();\r
103                 child.setIcon(0, icon);\r
104                 child.setText(0, Global.changedSinceFilter.getLabel(i));\r
105                 parent.addChild(child);\r
106         }\r
107         \r
108         \r
109         parent = created;\r
110         child = new QTreeWidgetItem();\r
111         child.setText(0,tr("Before"));\r
112                 child.setData(0,Qt.ItemDataRole.UserRole, Attributes.Before);\r
113         lastModified.addChild(child);\r
114         parent = child;\r
115         for (int i=0; i<Global.changedBeforeFilter.size(); i++) {\r
116                 child = new QTreeWidgetItem();\r
117                 child.setIcon(0, icon);\r
118                 child.setText(0, Global.changedBeforeFilter.getLabel(i));\r
119                 parent.addChild(child);\r
120         }\r
121         \r
122         // Now we are into the other attributes\r
123         QTreeWidgetItem contains = new QTreeWidgetItem();\r
124         contains.setText(0,tr("Contains"));\r
125             contains.setData(0,Qt.ItemDataRole.UserRole,"Contains");\r
126         addTopLevelItem(contains);\r
127 \r
128         for (int i=0; i<Global.containsFilter.size(); i++) {\r
129                 child = new QTreeWidgetItem();\r
130                 child.setText(0,Global.containsFilter.getLabel(i));\r
131                 child.setIcon(0, icon);\r
132                 contains.addChild(child);\r
133             }\r
134         \r
135         }\r
136         \r
137 }\r