OSDN Git Service

8ae7fc3a353afc69d806454ac9e6c176702c885b
[neighbornote/NeighborNote.git] / src / cx / fbn / nevernote / dialog / NotebookArchive.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.dialog;\r
21 \r
22 import java.util.List;\r
23 \r
24 import com.evernote.edam.type.Notebook;\r
25 import com.trolltech.qt.gui.QAbstractItemView;\r
26 import com.trolltech.qt.gui.QDialog;\r
27 import com.trolltech.qt.gui.QHBoxLayout;\r
28 import com.trolltech.qt.gui.QIcon;\r
29 import com.trolltech.qt.gui.QLabel;\r
30 import com.trolltech.qt.gui.QListWidget;\r
31 import com.trolltech.qt.gui.QListWidgetItem;\r
32 import com.trolltech.qt.gui.QPushButton;\r
33 import com.trolltech.qt.gui.QSpacerItem;\r
34 import com.trolltech.qt.gui.QVBoxLayout;\r
35 \r
36 public class NotebookArchive extends QDialog {\r
37         private final QListWidget               openBookList;\r
38         private final QListWidget               closedBookList;\r
39         private final QPushButton               okButton;\r
40         private final QPushButton               cancelButton;\r
41         private boolean                                 okClicked;\r
42         private final QPushButton               leftButton;\r
43         private final QPushButton               rightButton;\r
44         private final String iconPath = new String("classpath:cx/fbn/nevernote/icons/");\r
45         \r
46         public NotebookArchive(List<Notebook> allBooks, List<Notebook> archive) {\r
47                 setWindowIcon(new QIcon(iconPath+"notebook-green.png"));\r
48                 okClicked = false;\r
49                 openBookList = new QListWidget();\r
50                 openBookList.setSortingEnabled(true);\r
51                 openBookList.setSelectionMode(QAbstractItemView.SelectionMode.MultiSelection);\r
52                 \r
53                 okButton = new QPushButton();\r
54                 okButton.setText(tr("OK"));\r
55                 okButton.pressed.connect(this, "onClicked()");\r
56                 \r
57                 cancelButton = new QPushButton();\r
58                 cancelButton.setText(tr("Cancel"));\r
59                 cancelButton.pressed.connect(this, "onCancel()");\r
60                 \r
61                 QVBoxLayout openLayout = new QVBoxLayout();\r
62                 openLayout.addWidget(new QLabel(tr("Open Notebooks")));\r
63                 openLayout.addWidget(openBookList);\r
64                 \r
65                 rightButton = new QPushButton(this);\r
66                 rightButton.setIcon(new QIcon(iconPath+"forward.png"));\r
67                 leftButton = new QPushButton(this);\r
68                 leftButton.setIcon(new QIcon(iconPath+"back.png"));\r
69                 leftButton.setEnabled(false);\r
70                 rightButton.setEnabled(false);\r
71                 \r
72                 QVBoxLayout middleLayout = new QVBoxLayout();\r
73                 middleLayout.addSpacerItem(new QSpacerItem(1,1));\r
74                 middleLayout.addWidget(rightButton);\r
75                 middleLayout.addWidget(leftButton);\r
76                 middleLayout.addSpacerItem(new QSpacerItem(1,1));\r
77 \r
78                 QVBoxLayout closeLayout = new QVBoxLayout();\r
79                 closeLayout.addWidget(new QLabel(tr("Closed Notebooks")));\r
80                 closedBookList = new QListWidget();\r
81                 closedBookList.setSortingEnabled(true);\r
82                 closedBookList.setSelectionMode(QAbstractItemView.SelectionMode.MultiSelection);\r
83                 closeLayout.addWidget(closedBookList);\r
84 \r
85                 openBookList.itemSelectionChanged.connect(this, "openBookSelected()");\r
86                 closedBookList.itemSelectionChanged.connect(this, "closedBookSelected()");\r
87                 leftButton.clicked.connect(this, "toOpenList()");\r
88                 rightButton.clicked.connect(this, "toClosedList()");\r
89                 \r
90                 QHBoxLayout buttonLayout = new QHBoxLayout();\r
91                 buttonLayout.addStretch(1);\r
92                 buttonLayout.addWidget(okButton);\r
93                 buttonLayout.addWidget(cancelButton);\r
94                 setWindowTitle(tr("Open/Close Notebooks"));\r
95                 \r
96                 QHBoxLayout upperLayout = new QHBoxLayout();\r
97                 upperLayout.addLayout(openLayout);\r
98                 upperLayout.addLayout(middleLayout);\r
99                 upperLayout.addLayout(closeLayout);\r
100                 \r
101                 QVBoxLayout mainLayout = new QVBoxLayout();\r
102                 mainLayout.addLayout(upperLayout);\r
103                 //mainLayout.addStretch(1);\r
104                 mainLayout.addSpacing(1);\r
105                 mainLayout.addLayout(buttonLayout);\r
106                 setLayout(mainLayout);\r
107 \r
108                 for (int i=0; i<allBooks.size(); i++) {\r
109                         boolean found = false;\r
110                         for (int j=0; j<archive.size(); j++) {\r
111                                 if (archive.get(j).getName().equalsIgnoreCase(allBooks.get(i).getName())) {\r
112                                         found = true;\r
113                                         j=archive.size();\r
114                                 }\r
115                         }\r
116                         if (!found) {\r
117                                 QListWidgetItem item = new QListWidgetItem(allBooks.get(i).getName());\r
118                                 item.setSelected(false);\r
119                                 openBookList.addItem(item);\r
120                         }\r
121                 }\r
122                 \r
123                 setWindowTitle(tr("Open Notebooks"));\r
124                 for (int i=0; i<archive.size(); i++) {\r
125                         QListWidgetItem item = new QListWidgetItem(archive.get(i).getName());\r
126                         item.setSelected(false);\r
127                         closedBookList.addItem(item);\r
128                 }\r
129                 openBookList.itemSelectionChanged.connect(this, "itemSelected()");\r
130         }\r
131         \r
132         @SuppressWarnings("unused")\r
133         private void toClosedList() {\r
134                 List<QListWidgetItem> items = openBookList.selectedItems();\r
135                 for (int i=items.size()-1; i>=0; i--) {\r
136                         int row = openBookList.row(items.get(i));\r
137                         openBookList.takeItem(row);\r
138                         closedBookList.addItem(items.get(i).text());\r
139                 }\r
140                 if (openBookList.count() == 0)\r
141                         okButton.setEnabled(false);\r
142                 rightButton.setEnabled(false);\r
143         }\r
144         \r
145         \r
146         @SuppressWarnings("unused")\r
147         private void toOpenList() {\r
148                 List<QListWidgetItem> items = closedBookList.selectedItems();\r
149                 for (int i=items.size()-1; i>=0; i--) {\r
150                         int row = closedBookList.row(items.get(i));\r
151                         closedBookList.takeItem(row);\r
152                         openBookList.addItem(items.get(i).text());\r
153                 }\r
154                 okButton.setEnabled(true);\r
155                 leftButton.setEnabled(false);\r
156         }\r
157         \r
158         @SuppressWarnings("unused")\r
159         private void closedBookSelected() {\r
160                 if (closedBookList.selectedItems().size() > 0)\r
161                         leftButton.setEnabled(true);\r
162                 else\r
163                         leftButton.setEnabled(false);\r
164         }\r
165         \r
166         @SuppressWarnings("unused")\r
167         private void openBookSelected() {\r
168                 if (openBookList.selectedItems().size() > 0)\r
169                         rightButton.setEnabled(true);\r
170                 else\r
171                         rightButton.setEnabled(false);\r
172         }\r
173         \r
174         @SuppressWarnings("unused")\r
175         private void onClicked() {\r
176                 okClicked = true;\r
177                 close();\r
178         }\r
179         \r
180         @SuppressWarnings("unused")\r
181         private void onCancel() {\r
182                 okClicked = false;\r
183                 close();\r
184         }\r
185         \r
186         public boolean okClicked() {\r
187                 return okClicked;\r
188         }\r
189         \r
190         public QListWidget getOpenBookList() {\r
191                 return openBookList;\r
192         }\r
193         \r
194         public QListWidget getClosedBookList() {\r
195                 return closedBookList;\r
196         }\r
197         \r
198         @SuppressWarnings("unused")\r
199         private void itemSelected() {\r
200                 if (openBookList.selectedItems().size() == openBookList.count()) {\r
201                         okButton.setEnabled(false);\r
202                         rightButton.setEnabled(false);\r
203                         return;\r
204                 }\r
205                 rightButton.setEnabled(true);\r
206                 okButton.setEnabled(true);\r
207         }\r
208 }\r