OSDN Git Service

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