OSDN Git Service

Add logic to display stacks in notebook tree
[neighbornote/NeighborNote.git] / src / cx / fbn / nevernote / dialog / WatchFolderAdd.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.QComboBox;\r
26 import com.trolltech.qt.gui.QDialog;\r
27 import com.trolltech.qt.gui.QFileDialog;\r
28 import com.trolltech.qt.gui.QFileDialog.FileMode;\r
29 import com.trolltech.qt.gui.QGridLayout;\r
30 import com.trolltech.qt.gui.QHBoxLayout;\r
31 import com.trolltech.qt.gui.QIcon;\r
32 import com.trolltech.qt.gui.QLabel;\r
33 import com.trolltech.qt.gui.QPushButton;\r
34 import com.trolltech.qt.gui.QVBoxLayout;\r
35 \r
36 import cx.fbn.nevernote.sql.WatchFolderRecord;\r
37 \r
38 public class WatchFolderAdd extends QDialog {\r
39         private final QPushButton               okButton;\r
40         private final QPushButton               cancelButton;\r
41         private boolean                                 okClicked;\r
42         private final List<Notebook>    notebooks;\r
43         private final WatchFolderRecord record;\r
44         public final QLabel                     directory;\r
45         public final QComboBox          keep;\r
46         public final QComboBox          books;\r
47         private final String iconPath = new String("classpath:cx/fbn/nevernote/icons/");\r
48         \r
49         public WatchFolderAdd(WatchFolderRecord w, List<Notebook> n) {\r
50                 setWindowIcon(new QIcon(iconPath+"folder.png"));\r
51                 okClicked = false;\r
52                 notebooks = n;\r
53                 record = w;\r
54                 \r
55                 okButton = new QPushButton();\r
56                 okButton.setText(tr("OK"));\r
57                 okButton.pressed.connect(this, "onClicked()");\r
58                 \r
59                 cancelButton = new QPushButton();\r
60                 cancelButton.setText(tr("Cancel"));\r
61                 cancelButton.pressed.connect(this, "onCancel()");\r
62                 \r
63                 QPushButton folderButton = new QPushButton();\r
64                 folderButton.setText(tr("Directory"));\r
65                 folderButton.clicked.connect(this, "folderButtonClicked()");\r
66                 \r
67                 directory = new QLabel();\r
68                 if (record != null)\r
69                         directory.setText(record.folder);\r
70                 else \r
71                         directory.setText(System.getProperty("user.home"));\r
72                 \r
73                 keep = new QComboBox();\r
74                 keep.addItem(tr("Keep"),"Keep");\r
75                 keep.addItem(tr("Delete"),"Delete");\r
76                 if (record != null) {\r
77                         if (record.keep)\r
78                                 keep.setCurrentIndex(0);\r
79                         else\r
80                                 keep.setCurrentIndex(1);\r
81                 }\r
82                 \r
83                 books = new QComboBox();\r
84                 for (int i=0; i<notebooks.size(); i++) {\r
85                         books.addItem(notebooks.get(i).getName());\r
86                         if (record != null) {\r
87                                 if (record.notebook.equals(notebooks.get(i).getName()))\r
88                                         books.setCurrentIndex(i);\r
89                         }\r
90                 }\r
91                 \r
92                 QGridLayout grid = new QGridLayout();\r
93                 grid.addWidget(directory,0,1);\r
94                 grid.addWidget(folderButton,0,0);\r
95                 grid.addWidget(new QLabel(tr("Notebook")),1,0);\r
96                 grid.addWidget(books,1,1);\r
97                 grid.addWidget(new QLabel(tr("After Import")), 2,0);\r
98                 grid.addWidget(keep,2,1);\r
99                                 \r
100                 QHBoxLayout buttonLayout = new QHBoxLayout();\r
101                 buttonLayout.addStretch(1);\r
102                 buttonLayout.addWidget(okButton);\r
103                 buttonLayout.addWidget(cancelButton);\r
104                 setWindowTitle(tr("Add Import Folder"));        \r
105                                 \r
106                         \r
107                 QVBoxLayout mainLayout = new QVBoxLayout();\r
108                 mainLayout.addLayout(grid);\r
109                 mainLayout.addSpacing(1);\r
110                 mainLayout.addLayout(buttonLayout);\r
111                 setLayout(mainLayout);\r
112                                 \r
113         }\r
114         \r
115         @SuppressWarnings("unused")\r
116         private void onClicked() {\r
117                 okClicked = true;\r
118                 close();\r
119         }\r
120         \r
121         @SuppressWarnings("unused")\r
122         private void onCancel() {\r
123                 okClicked = false;\r
124                 close();\r
125         }\r
126         \r
127         public boolean okClicked() {\r
128                 return okClicked;\r
129         }\r
130         \r
131         @SuppressWarnings("unused")\r
132         private void itemSelected() {\r
133                 okButton.setEnabled(true);\r
134         }\r
135         \r
136         @SuppressWarnings("unused")\r
137         private void folderButtonClicked() {\r
138                 QFileDialog fileDialog = new QFileDialog();\r
139                 fileDialog.setFileMode(FileMode.DirectoryOnly);\r
140                 fileDialog.fileSelected.connect(this, "folderSelected(String)");\r
141                 fileDialog.exec();\r
142         }\r
143         \r
144         @SuppressWarnings("unused")\r
145         private void folderSelected(String f) {\r
146                  String whichOS = System.getProperty("os.name");\r
147                         if (whichOS.contains("Windows")) \r
148                                 f = f.replace('/','\\');\r
149                 directory.setText(f);\r
150         }\r
151         \r
152 }\r