Revize fdb3b2f7
Přidáno uživatelem Marek Sobota před téměř 6 roky(ů)
src/gui/Window.java | ||
---|---|---|
1 | 1 |
package gui; |
2 | 2 |
|
3 | 3 |
import java.awt.BorderLayout; |
4 |
import java.awt.Dimension; |
|
4 | 5 |
import java.awt.FlowLayout; |
5 | 6 |
import java.awt.GridLayout; |
6 | 7 |
import java.awt.event.ActionEvent; |
... | ... | |
38 | 39 |
* |
39 | 40 |
*/ |
40 | 41 |
public class Window extends JFrame{ |
41 |
|
|
42 |
|
|
42 | 43 |
/**zakladni verze serializace*/ |
43 | 44 |
private static final long serialVersionUID = 1L; |
44 | 45 |
|
46 |
/**Minimalni rozmer vypisoveho okna*/ |
|
47 |
private static final Dimension OUTPUT_WINDOW_MIN_DIM = new Dimension(320, 160); |
|
48 |
|
|
45 | 49 |
/**konstanta pro oznaceni souboru se spoji*/ |
46 | 50 |
private static final int SPOJ_FILE = 0; |
47 | 51 |
|
48 | 52 |
/**konstanta pro oznaceni slozky JDF*/ |
49 | 53 |
private static final int JDF_DIR = 1; |
50 | 54 |
|
55 |
/**konstanta pro oznaceni slozky pro vystup*/ |
|
56 |
private static final int OUTPUT_DIR = 2; |
|
57 |
|
|
51 | 58 |
/**konstanta pro oznaceni dialogu pro vyber zacinajiciho data*/ |
52 |
private static final int DATE_PICKER_FROM = 2;
|
|
59 |
private static final int DATE_PICKER_FROM = 3;
|
|
53 | 60 |
|
54 | 61 |
/**konstanta pro oznaceni dialogu pro vyber konciciho data*/ |
55 |
private static final int DATE_PICKER_TO = 3;
|
|
62 |
private static final int DATE_PICKER_TO = 4;
|
|
56 | 63 |
|
57 | 64 |
/**spolecna delka pro vsechny {@code JTextField}*/ |
58 | 65 |
private static final int TEXT_FIELD_LENGTH = 15; |
... | ... | |
78 | 85 |
/**atribut se slozkou JDF*/ |
79 | 86 |
private File jdfDir = null; |
80 | 87 |
|
88 |
/**soubor, do ktereho se zapise vystup programu*/ |
|
89 |
private File outputFile = null;; |
|
90 |
|
|
81 | 91 |
/**den zacatku obdobi*/ |
82 | 92 |
private Calendar dateFrom = null; |
83 | 93 |
|
... | ... | |
108 | 118 |
/**TextField pro zobrazeni cesty k slozce JDF*/ |
109 | 119 |
private JTextField jdfPathTF; |
110 | 120 |
|
121 |
/**TextField pro zobrazeni cesty ke slozce s vystupnim souborem*/ |
|
122 |
private JTextField outputPathTF; |
|
123 |
|
|
124 |
/**TextField pro zadani nazvu vystupniho souboru*/ |
|
125 |
private JTextField outputNameTF; |
|
126 |
|
|
111 | 127 |
/**TextArea pro výpis informací o běhu programu*/ |
112 | 128 |
private JTextArea infoTA; |
113 | 129 |
|
114 | 130 |
/**ScrollPane pro obaleni infoTA*/ |
115 | 131 |
private JScrollPane scrollPane; |
116 | 132 |
|
133 |
|
|
117 | 134 |
/** |
118 | 135 |
* inicializuje okno, jmenovite jeho panely, komponenty, priradi potrebne listenery a prida je do zobrazeni |
119 | 136 |
*/ |
... | ... | |
128 | 145 |
JPanel dateToP = new JPanel(); |
129 | 146 |
JPanel spojPathP = new JPanel(); |
130 | 147 |
JPanel jdfPathP = new JPanel(); |
131 |
inputP.setLayout(new GridLayout(4, 1)); |
|
148 |
JPanel outputP = new JPanel(); |
|
149 |
inputP.setLayout(new GridLayout(5, 1)); |
|
132 | 150 |
dateFromP.setLayout(new FlowLayout()); |
133 | 151 |
dateToP.setLayout(new FlowLayout()); |
134 | 152 |
spojPathP.setLayout(new FlowLayout()); |
135 | 153 |
jdfPathP.setLayout(new FlowLayout()); |
154 |
outputP.setLayout(new FlowLayout()); |
|
136 | 155 |
|
137 | 156 |
//inicializace kompoment |
138 | 157 |
JLabel povedLB = new JLabel("POVED", JLabel.CENTER); |
... | ... | |
140 | 159 |
JLabel dateToLB = new JLabel ("Obdobi do: "); |
141 | 160 |
JLabel spojPathLB = new JLabel("Spoje: "); |
142 | 161 |
JLabel jdfPathLB = new JLabel("JDF: "); |
162 |
JLabel outputLB = new JLabel("Vystup: "); |
|
143 | 163 |
confirmBT = new JButton("Potvrdit"); |
144 | 164 |
endBT = new JButton("Ukoncit"); |
145 | 165 |
JButton spojBT = new JButton("Vybrat spoj soubor"); |
146 | 166 |
JButton jdfBT = new JButton("Vybrat JDF slozku"); |
167 |
JButton outputBT = new JButton("Vybrat vystupni slozku"); |
|
147 | 168 |
spojPathTF = new JTextField(TEXT_FIELD_LENGTH); |
148 | 169 |
jdfPathTF = new JTextField(TEXT_FIELD_LENGTH); |
170 |
outputPathTF = new JTextField(TEXT_FIELD_LENGTH); |
|
171 |
outputNameTF = new JTextField(TEXT_FIELD_LENGTH); |
|
149 | 172 |
fileChooser = new JFileChooser(); |
150 | 173 |
infoTA = new JTextArea(); |
151 | 174 |
scrollPane = new JScrollPane(infoTA); |
... | ... | |
154 | 177 |
//nastaveni komponent |
155 | 178 |
spojPathTF.setEditable(false); |
156 | 179 |
jdfPathTF.setEditable(false); |
180 |
outputPathTF.setEditable(false); |
|
181 |
outputNameTF.setText("Nazev souboru"); |
|
157 | 182 |
infoTA.setEditable(false); |
158 | 183 |
fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); |
159 | 184 |
|
... | ... | |
174 | 199 |
}); |
175 | 200 |
spojBT.addActionListener(new FileChooserListener(SPOJ_FILE)); |
176 | 201 |
jdfBT.addActionListener(new FileChooserListener(JDF_DIR)); |
202 |
outputBT.addActionListener(new FileChooserListener(OUTPUT_DIR)); |
|
177 | 203 |
|
178 | 204 |
//pridani komponent do panelu |
179 | 205 |
inputP.add(dateFromP); |
180 | 206 |
inputP.add(dateToP); |
181 | 207 |
inputP.add(spojPathP); |
182 | 208 |
inputP.add(jdfPathP); |
209 |
inputP.add(outputP); |
|
183 | 210 |
dateFromP.add(dateFromLB); |
184 | 211 |
dateFromP.add(datePickerFrom); |
185 |
dateToP.add(dateToLB); |
|
212 |
dateToP.add(dateToLB);
|
|
186 | 213 |
dateToP.add(datePickerTo); |
187 | 214 |
spojPathP.add(spojPathLB); |
188 | 215 |
spojPathP.add(spojPathTF); |
... | ... | |
190 | 217 |
jdfPathP.add(jdfPathLB); |
191 | 218 |
jdfPathP.add(jdfPathTF); |
192 | 219 |
jdfPathP.add(jdfBT); |
220 |
outputP.add(outputLB); |
|
221 |
outputP.add(outputNameTF); |
|
222 |
outputP.add(outputPathTF); |
|
223 |
outputP.add(outputBT); |
|
193 | 224 |
|
194 | 225 |
//pridani panelu do okna |
195 | 226 |
this.add(povedLB, BorderLayout.NORTH); |
... | ... | |
197 | 228 |
this.add(confirmBT, BorderLayout.SOUTH); |
198 | 229 |
|
199 | 230 |
this.pack(); |
200 |
|
|
231 |
this.setMinimumSize(this.getSize()); |
|
201 | 232 |
} |
202 | 233 |
|
203 | 234 |
/** |
... | ... | |
231 | 262 |
this.remove(inputP); |
232 | 263 |
this.remove(confirmBT); |
233 | 264 |
|
265 |
this.setMinimumSize(OUTPUT_WINDOW_MIN_DIM); |
|
234 | 266 |
this.add(scrollPane, BorderLayout.CENTER); |
235 | 267 |
this.add(endBT, BorderLayout.SOUTH); |
268 |
|
|
236 | 269 |
this.revalidate(); |
237 | 270 |
} |
238 | 271 |
|
... | ... | |
265 | 298 |
*/ |
266 | 299 |
public void actionPerformed(ActionEvent arg0) { |
267 | 300 |
//kontrola jestli jsou obdobi zadana a ve spravnem poradi a jestli jsou cesty vyplněny |
268 |
if(spojFile == null || jdfDir == null){ |
|
269 |
JOptionPane.showMessageDialog(null, "Nejsou vybrany potrebne soubory", |
|
301 |
if(spojFile == null || jdfDir == null || outputFile == null){
|
|
302 |
JOptionPane.showMessageDialog(null, "Nejsou vybrany potrebne soubory/slozky",
|
|
270 | 303 |
"Varovani", JOptionPane.WARNING_MESSAGE); |
271 | 304 |
return; |
272 | 305 |
} |
... | ... | |
280 | 313 |
"Varovani", JOptionPane.WARNING_MESSAGE); |
281 | 314 |
return; |
282 | 315 |
} |
316 |
String outputName = outputNameTF.getText(); |
|
317 |
if(outputName.length() < 1){ |
|
318 |
JOptionPane.showMessageDialog(null, "Nezadano jmeno vystupniho souboru", |
|
319 |
"Varovani", JOptionPane.WARNING_MESSAGE); |
|
320 |
return; |
|
321 |
} |
|
283 | 322 |
|
323 |
if(!outputName.endsWith(".txt")){ |
|
324 |
outputName += ".txt"; |
|
325 |
} |
|
326 |
//outputFile = new File(outputFile.getAbsolutePath() + File.separator + outputName); |
|
284 | 327 |
changeToInfo(); |
285 | 328 |
} |
286 | 329 |
|
... | ... | |
354 | 397 |
jdfDir = selectedFile; |
355 | 398 |
jdfPathTF.setText(jdfDir.getAbsolutePath()); |
356 | 399 |
} |
400 |
else if (selectedFile.isDirectory() && fileType == OUTPUT_DIR){ |
|
401 |
outputFile = new File(selectedFile.getAbsolutePath()); |
|
402 |
outputPathTF.setText(outputFile.getAbsolutePath()); |
|
403 |
} |
|
357 | 404 |
else{ |
358 | 405 |
JOptionPane.showMessageDialog(null, "Vybran nespravny typ souboru", |
359 | 406 |
"Varovani", JOptionPane.WARNING_MESSAGE); |
Také k dispozici: Unified diff
Minimalni rozmery + cesta vystupniho souboru (Re #7318)