OSDN Git Service

- Gui cleanup - Rework count threads to reduce SQL overhead & improve performance.
[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.gui.QAbstractItemView;\r
25 import com.trolltech.qt.gui.QIcon;\r
26 import com.trolltech.qt.gui.QTreeWidget;\r
27 import com.trolltech.qt.gui.QTreeWidgetItem;\r
28 \r
29 import cx.fbn.nevernote.Global;\r
30 \r
31 public class AttributeTreeWidget extends QTreeWidget {\r
32         public enum Attributes {Created, Since, Before, LastModified};\r
33         \r
34         public AttributeTreeWidget() {\r
35         setHeaderLabel(tr("Attributes"));\r
36         setSelectionMode(QAbstractItemView.SelectionMode.MultiSelection);\r
37         header().setStyleSheet("QHeaderView::section {border: 0.0em;}");\r
38         \r
39         setHeaderLabel(tr("Attributes"));\r
40         setSelectionMode(QAbstractItemView.SelectionMode.SingleSelection);\r
41         \r
42         // Setup the first attribute tree\r
43         QTreeWidgetItem created = new QTreeWidgetItem();\r
44         created.setText(0,tr("Created"));\r
45             created.setData(0, Qt.ItemDataRole.UserRole, Attributes.Created);\r
46         addTopLevelItem(created);\r
47         // Created Since List\r
48         QTreeWidgetItem parent = created;\r
49         QTreeWidgetItem child;\r
50         child = new QTreeWidgetItem();\r
51         child.setText(0,tr("Since"));\r
52             child.setData(0,Qt.ItemDataRole.UserRole, Attributes.Since);\r
53         parent.addChild(child);         \r
54         parent = child;\r
55                 \r
56                 // -Since=true/Before=false, Created=true/Updated=false)\r
57         Global.createdBeforeFilter = new DateAttributeFilterTable(false, true);\r
58         Global.createdSinceFilter = new DateAttributeFilterTable(true, true);\r
59         Global.changedBeforeFilter = new DateAttributeFilterTable(false, false);\r
60         Global.changedSinceFilter = new DateAttributeFilterTable(true, false);\r
61         Global.containsFilter = new ContainsAttributeFilterTable();\r
62         \r
63                 String iconPath = new String("classpath:cx/fbn/nevernote/icons/");\r
64                 QIcon icon = new QIcon(iconPath+"attribute.png");\r
65         for (int i=0; i<Global.createdSinceFilter.size(); i++) {\r
66                 child = new QTreeWidgetItem();\r
67                 child.setIcon(0, icon);\r
68                 child.setText(0, Global.createdSinceFilter.getLabel(i));\r
69                 parent.addChild(child);\r
70         }\r
71         \r
72         \r
73         // Created Before List\r
74         parent = created;\r
75         child = new QTreeWidgetItem();\r
76         child.setText(0,tr("Before"));\r
77             child.setData(0,Qt.ItemDataRole.UserRole, Attributes.Before);\r
78         created.addChild(child);\r
79         parent = child;\r
80         for (int i=0; i<Global.createdBeforeFilter.size(); i++) {\r
81                 child = new QTreeWidgetItem();\r
82                 child.setIcon(0, icon);\r
83                 child.setText(0, Global.createdBeforeFilter.getLabel(i));\r
84                 parent.addChild(child);\r
85         }\r
86         \r
87         \r
88         QTreeWidgetItem lastModified = new QTreeWidgetItem();\r
89         lastModified.setText(0,tr("Last Modified"));\r
90             lastModified.setData(0,Qt.ItemDataRole.UserRole, Attributes.LastModified);\r
91         addTopLevelItem(lastModified);\r
92  \r
93         // Changed Since List\r
94         parent = lastModified;\r
95         child = new QTreeWidgetItem();\r
96         child.setText(0,tr("Since"));\r
97         child.setData(0,Qt.ItemDataRole.UserRole, Attributes.Since);\r
98         lastModified.addChild(child);\r
99         parent = child;\r
100         for (int i=0; i<Global.changedSinceFilter.size(); i++) {\r
101                 child = new QTreeWidgetItem();\r
102                 child.setIcon(0, icon);\r
103                 child.setText(0, Global.changedSinceFilter.getLabel(i));\r
104                 parent.addChild(child);\r
105         }\r
106         \r
107         \r
108         parent = created;\r
109         child = new QTreeWidgetItem();\r
110         child.setText(0,tr("Before"));\r
111                 child.setData(0,Qt.ItemDataRole.UserRole, Attributes.Before);\r
112         lastModified.addChild(child);\r
113         parent = child;\r
114         for (int i=0; i<Global.changedBeforeFilter.size(); i++) {\r
115                 child = new QTreeWidgetItem();\r
116                 child.setIcon(0, icon);\r
117                 child.setText(0, Global.changedBeforeFilter.getLabel(i));\r
118                 parent.addChild(child);\r
119         }\r
120         \r
121         // Now we are into the other attributes\r
122         QTreeWidgetItem contains = new QTreeWidgetItem();\r
123         contains.setText(0,tr("Contains"));\r
124             contains.setData(0,Qt.ItemDataRole.UserRole,"Contains");\r
125         addTopLevelItem(contains);\r
126 \r
127         for (int i=0; i<Global.containsFilter.size(); i++) {\r
128                 child = new QTreeWidgetItem();\r
129                 child.setText(0,Global.containsFilter.getLabel(i));\r
130                 child.setIcon(0, icon);\r
131                 contains.addChild(child);\r
132             }\r
133         \r
134         }\r
135         \r
136 }\r