1
2
3
4
5
6
7
8
9 package tempcontroller.gui;
10
11 import java.awt.event.MouseEvent;
12 import java.io.File;
13 import java.io.IOException;
14 import javax.swing.JFileChooser;
15 import javax.swing.JFrame;
16 import javax.swing.ListSelectionModel;
17 import tempcontroller.base.AmostragemSimples;
18 import tempcontroller.base.IAmostragem;
19 import tempcontroller.base.IControladorAmostragem;
20 import tempcontroller.base.IProgramacaoAmostragem;
21 import tempcontroller.base.ProgramacaoAmostragemSimples;
22 import tempcontroller.base.SystemFactory;
23
24
25
26
27
28 public class PainelPrincipal extends javax.swing.JPanel
29 implements IPainelAmostragemListener {
30
31
32 public PainelPrincipal() {
33 painelAmostragem = new PainelPropriedadesAmostra();
34 painelAmostragem.addPainelAmostragemListener(this);
35 initComponents();
36 }
37
38 public static void main(String[] args) {
39 JFrame frame = new JFrame("Controlador Amostragem");
40 frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
41 frame.setContentPane(new PainelPrincipal());
42 frame.pack();
43 frame.setLocationRelativeTo(null);
44 frame.setVisible(true);
45 }
46
47
48
49
50
51
52
53 private void initComponents() {
54 painelMonitor = new javax.swing.JPanel();
55 labelAmostragem = new javax.swing.JLabel();
56 progressBarAmostragem = new javax.swing.JProgressBar();
57 labelAmostragemAtual = new javax.swing.JLabel();
58 labelProgressoAmostragem = new javax.swing.JLabel();
59 labelProcessoTotal = new javax.swing.JLabel();
60 progressBarTotal = new javax.swing.JProgressBar();
61 jLabel4 = new javax.swing.JLabel();
62 labelStatus = new javax.swing.JLabel();
63 labelStatusAtual = new javax.swing.JLabel();
64 painelAmostras = new javax.swing.JPanel();
65 jScrollPane1 = new javax.swing.JScrollPane();
66 tabelaProgramacao = new javax.swing.JTable();
67 botaoCarregar = new javax.swing.JButton();
68 botaoSalvar = new javax.swing.JButton();
69 botaoIniciar = new javax.swing.JButton();
70 botaoParar = new javax.swing.JButton();
71 jToolBar1 = new javax.swing.JToolBar();
72 botaoAdicionarAmostra = new javax.swing.JButton();
73 botaoRemoverAmostra = new javax.swing.JButton();
74
75 painelMonitor.setBorder(javax.swing.BorderFactory.createTitledBorder("Monitora\u00e7\u00e3o"));
76 labelAmostragem.setFont(new java.awt.Font("Dialog", 0, 11));
77 labelAmostragem.setText("Amostragem:");
78
79 progressBarAmostragem.setFont(new java.awt.Font("Dialog", 0, 11));
80 progressBarAmostragem.setValue(25);
81 progressBarAmostragem.setStringPainted(true);
82
83 labelAmostragemAtual.setFont(new java.awt.Font("Dialog", 0, 11));
84 labelAmostragemAtual.setText("'nome'");
85
86 labelProgressoAmostragem.setFont(new java.awt.Font("Dialog", 0, 11));
87 labelProgressoAmostragem.setText("Progresso Amostragem:");
88
89 labelProcessoTotal.setFont(new java.awt.Font("Dialog", 0, 11));
90 labelProcessoTotal.setText("Progresso Total:");
91
92 progressBarTotal.setFont(new java.awt.Font("Dialog", 0, 11));
93 progressBarTotal.setValue(72);
94 progressBarTotal.setStringPainted(true);
95
96 jLabel4.setBackground(new java.awt.Color(0, 153, 153));
97 jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
98 jLabel4.setText("Gr\u00e1fico");
99 jLabel4.setOpaque(true);
100
101 labelStatus.setFont(new java.awt.Font("Dialog", 0, 11));
102 labelStatus.setText("Status:");
103
104 labelStatusAtual.setFont(new java.awt.Font("Dialog", 0, 11));
105 labelStatusAtual.setText("'a\u00e7\u00e3o atual'");
106
107 org.jdesktop.layout.GroupLayout painelMonitorLayout = new org.jdesktop.layout.GroupLayout(painelMonitor);
108 painelMonitor.setLayout(painelMonitorLayout);
109 painelMonitorLayout.setHorizontalGroup(
110 painelMonitorLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
111 .add(painelMonitorLayout.createSequentialGroup()
112 .addContainerGap()
113 .add(painelMonitorLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
114 .add(jLabel4, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 359, Short.MAX_VALUE)
115 .add(painelMonitorLayout.createSequentialGroup()
116 .add(painelMonitorLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
117 .add(labelAmostragem)
118 .add(labelStatus)
119 .add(labelProgressoAmostragem)
120 .add(labelProcessoTotal))
121 .add(17, 17, 17)
122 .add(painelMonitorLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
123 .add(labelStatusAtual)
124 .add(labelAmostragemAtual)
125 .add(progressBarAmostragem, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 212, Short.MAX_VALUE)
126 .add(progressBarTotal, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 212, Short.MAX_VALUE))))
127 .addContainerGap())
128 );
129 painelMonitorLayout.setVerticalGroup(
130 painelMonitorLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
131 .add(painelMonitorLayout.createSequentialGroup()
132 .add(painelMonitorLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
133 .add(labelStatusAtual)
134 .add(labelStatus))
135 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
136 .add(painelMonitorLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
137 .add(labelAmostragem)
138 .add(labelAmostragemAtual))
139 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
140 .add(painelMonitorLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
141 .add(labelProgressoAmostragem)
142 .add(progressBarAmostragem, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
143 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
144 .add(painelMonitorLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
145 .add(labelProcessoTotal)
146 .add(progressBarTotal, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
147 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
148 .add(jLabel4, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 111, Short.MAX_VALUE)
149 .addContainerGap())
150 );
151
152 painelAmostras.setBorder(javax.swing.BorderFactory.createTitledBorder("Programa\u00e7\u00e3o"));
153 jScrollPane1.setPreferredSize(new java.awt.Dimension(100, 275));
154 tabelaProgramacao.setModel(programacaoTableModel);
155 programacaoTableModel.setProgramacaoAmostragem(programacao);
156 tabelaProgramacao.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
157 tabelaProgramacao.addMouseListener(new java.awt.event.MouseAdapter() {
158 public void mouseClicked(java.awt.event.MouseEvent evt) {
159 tabelaProgramacaoMouseClicked(evt);
160 }
161 });
162
163 jScrollPane1.setViewportView(tabelaProgramacao);
164
165 botaoCarregar.setFont(new java.awt.Font("Dialog", 0, 11));
166 botaoCarregar.setText("Carregar");
167 botaoCarregar.addActionListener(new java.awt.event.ActionListener() {
168 public void actionPerformed(java.awt.event.ActionEvent evt) {
169 botaoCarregarActionPerformed(evt);
170 }
171 });
172
173 botaoSalvar.setFont(new java.awt.Font("Dialog", 0, 11));
174 botaoSalvar.setText("Salvar");
175 botaoSalvar.addActionListener(new java.awt.event.ActionListener() {
176 public void actionPerformed(java.awt.event.ActionEvent evt) {
177 botaoSalvarActionPerformed(evt);
178 }
179 });
180
181 botaoIniciar.setFont(new java.awt.Font("Dialog", 0, 11));
182 botaoIniciar.setText("Iniciar");
183
184 botaoParar.setFont(new java.awt.Font("Dialog", 0, 11));
185 botaoParar.setText("Parar");
186
187 jToolBar1.setFloatable(false);
188 jToolBar1.setRollover(true);
189 botaoAdicionarAmostra.setText("+");
190 botaoAdicionarAmostra.setBorderPainted(false);
191 botaoAdicionarAmostra.setFocusPainted(false);
192 botaoAdicionarAmostra.addActionListener(new java.awt.event.ActionListener() {
193 public void actionPerformed(java.awt.event.ActionEvent evt) {
194 botaoAdicionarAmostraActionPerformed(evt);
195 }
196 });
197
198 jToolBar1.add(botaoAdicionarAmostra);
199
200 botaoRemoverAmostra.setText("-");
201 botaoRemoverAmostra.setBorderPainted(false);
202 botaoRemoverAmostra.setFocusPainted(false);
203 botaoRemoverAmostra.addActionListener(new java.awt.event.ActionListener() {
204 public void actionPerformed(java.awt.event.ActionEvent evt) {
205 botaoRemoverAmostraActionPerformed(evt);
206 }
207 });
208
209 jToolBar1.add(botaoRemoverAmostra);
210
211 org.jdesktop.layout.GroupLayout painelAmostrasLayout = new org.jdesktop.layout.GroupLayout(painelAmostras);
212 painelAmostras.setLayout(painelAmostrasLayout);
213 painelAmostrasLayout.setHorizontalGroup(
214 painelAmostrasLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
215 .add(org.jdesktop.layout.GroupLayout.TRAILING, painelAmostrasLayout.createSequentialGroup()
216 .addContainerGap()
217 .add(painelAmostrasLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
218 .add(org.jdesktop.layout.GroupLayout.LEADING, jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 359, Short.MAX_VALUE)
219 .add(org.jdesktop.layout.GroupLayout.LEADING, painelAmostrasLayout.createSequentialGroup()
220 .add(botaoCarregar)
221 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
222 .add(botaoSalvar)
223 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 70, Short.MAX_VALUE)
224 .add(botaoIniciar)
225 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
226 .add(botaoParar))
227 .add(org.jdesktop.layout.GroupLayout.LEADING, jToolBar1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 359, Short.MAX_VALUE))
228 .addContainerGap())
229 );
230 painelAmostrasLayout.setVerticalGroup(
231 painelAmostrasLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
232 .add(org.jdesktop.layout.GroupLayout.TRAILING, painelAmostrasLayout.createSequentialGroup()
233 .add(jToolBar1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 25, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
234 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
235 .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 97, Short.MAX_VALUE)
236 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
237 .add(painelAmostrasLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
238 .add(botaoCarregar)
239 .add(botaoSalvar)
240 .add(botaoParar)
241 .add(botaoIniciar))
242 .addContainerGap())
243 );
244
245 org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
246 this.setLayout(layout);
247 layout.setHorizontalGroup(
248 layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
249 .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
250 .addContainerGap()
251 .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
252 .add(org.jdesktop.layout.GroupLayout.LEADING, painelAmostras, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
253 .add(org.jdesktop.layout.GroupLayout.LEADING, painelMonitor, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
254 .addContainerGap())
255 );
256 layout.setVerticalGroup(
257 layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
258 .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
259 .addContainerGap()
260 .add(painelAmostras, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
261 .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
262 .add(painelMonitor, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
263 .addContainerGap())
264 );
265 }
266
267 private void botaoSalvarActionPerformed(java.awt.event.ActionEvent evt) {
268 JFileChooser chooser = new JFileChooser();
269 int returnVal = chooser.showOpenDialog(this);
270 if(returnVal == JFileChooser.APPROVE_OPTION) {
271 try {
272 controlador.gravaProgramacao(programacao,
273 chooser.getSelectedFile());
274 } catch (IOException ex) {
275 ex.printStackTrace();
276 }
277 }
278 }
279
280 private void botaoCarregarActionPerformed(java.awt.event.ActionEvent evt) {
281 JFileChooser chooser = new JFileChooser();
282 int returnVal = chooser.showOpenDialog(this);
283 if(returnVal == JFileChooser.APPROVE_OPTION) {
284 try {
285 programacao = controlador.carregaProgramacao(chooser.getSelectedFile());
286 } catch (ClassNotFoundException ex) {
287 ex.printStackTrace();
288 } catch (IOException ex) {
289 ex.printStackTrace();
290 }
291 }
292 programacaoTableModel.setProgramacaoAmostragem(programacao);
293 programacaoTableModel.fireTableDataChanged();
294 }
295
296 private void botaoRemoverAmostraActionPerformed(java.awt.event.ActionEvent evt) {
297 int selectedRow = tabelaProgramacao.getSelectedRow();
298 if(selectedRow >= 0) {
299 programacao.getAmostragens().remove(selectedRow);
300 programacaoTableModel.fireTableDataChanged();
301 }
302 }
303
304 private int linhaEmEdicao = -1;
305 private void tabelaProgramacaoMouseClicked(java.awt.event.MouseEvent evt) {
306 if(evt.getButton() == MouseEvent.BUTTON1
307 && evt.getClickCount() == 2
308 && tabelaProgramacao.getSelectedRow() >= 0) {
309 int row = tabelaProgramacao.getSelectedRow();
310 IAmostragem amostragem = programacao.getAmostragens().get(row);
311 linhaEmEdicao = row;
312 amostragemEmEdicao = amostragem;
313 painelAmostragem.setAmostragem(amostragem);
314 painelAmostragem.showDialog(this);
315 }
316 }
317
318 private IAmostragem amostragemEmEdicao;
319
320 private void botaoAdicionarAmostraActionPerformed(java.awt.event.ActionEvent evt) {
321 IAmostragem amostragem = SystemFactory.getFactory().crateAmostragem();
322 amostragemEmEdicao = amostragem;
323 painelAmostragem.setAmostragem(amostragem);
324 linhaEmEdicao = -1;
325 painelAmostragem.showDialog(this);
326
327 }
328
329 PainelPropriedadesAmostra painelAmostragem;
330 public void edicaoTerminada(IAmostragem amostragem) {
331 if(linhaEmEdicao >= 0) {
332 programacaoTableModel.fireTableRowsUpdated(linhaEmEdicao, linhaEmEdicao);
333 } else {
334 programacao.addAmostragem(amostragemEmEdicao);
335 programacaoTableModel.fireTableDataChanged();
336 }
337 }
338
339 private ProgramacaoTableModel programacaoTableModel =
340 new ProgramacaoTableModel();
341
342 private IControladorAmostragem controlador = SystemFactory.getFactory().createControladorAmostragem();
343
344 private IProgramacaoAmostragem programacao = SystemFactory.getFactory().createProgramacao();
345
346
347
348 private javax.swing.JButton botaoAdicionarAmostra;
349 private javax.swing.JButton botaoCarregar;
350 private javax.swing.JButton botaoIniciar;
351 private javax.swing.JButton botaoParar;
352 private javax.swing.JButton botaoRemoverAmostra;
353 private javax.swing.JButton botaoSalvar;
354 private javax.swing.JLabel jLabel4;
355 private javax.swing.JScrollPane jScrollPane1;
356 private javax.swing.JToolBar jToolBar1;
357 private javax.swing.JLabel labelAmostragem;
358 private javax.swing.JLabel labelAmostragemAtual;
359 private javax.swing.JLabel labelProcessoTotal;
360 private javax.swing.JLabel labelProgressoAmostragem;
361 private javax.swing.JLabel labelStatus;
362 private javax.swing.JLabel labelStatusAtual;
363 private javax.swing.JPanel painelAmostras;
364 private javax.swing.JPanel painelMonitor;
365 private javax.swing.JProgressBar progressBarAmostragem;
366 private javax.swing.JProgressBar progressBarTotal;
367 private javax.swing.JTable tabelaProgramacao;
368
369
370 }
371
372