Projekt

Obecné

Profil

« Předchozí | Další » 

Revize fdb3b2f7

Přidáno uživatelem Marek Sobota před téměř 6 roky(ů)

Minimalni rozmery + cesta vystupniho souboru (Re #7318)

Zobrazit rozdíly:

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