View Javadoc

1   // CHECKSTYLE:OFF
2   
3   /*
4    * NovoJPanel.java
5    *
6    * Created on 28 de Março de 2007, 07:14
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   * @author  mauricio
27   */
28  public class PainelPrincipal extends javax.swing.JPanel
29          implements IPainelAmostragemListener {
30      
31      /** Creates new form NovoJPanel */
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      /** This method is called from within the constructor to
48       * initialize the form.
49       * WARNING: Do NOT modify this code. The content of this method is
50       * always regenerated by the Form Editor.
51       */
52      // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
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     }// </editor-fold>//GEN-END:initComponents
266 
267     private void botaoSalvarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botaoSalvarActionPerformed
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     }//GEN-LAST:event_botaoSalvarActionPerformed
279     
280     private void botaoCarregarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botaoCarregarActionPerformed
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     }//GEN-LAST:event_botaoCarregarActionPerformed
295     
296     private void botaoRemoverAmostraActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botaoRemoverAmostraActionPerformed
297         int selectedRow = tabelaProgramacao.getSelectedRow();
298         if(selectedRow >= 0) {
299             programacao.getAmostragens().remove(selectedRow);
300             programacaoTableModel.fireTableDataChanged();
301         }
302     }//GEN-LAST:event_botaoRemoverAmostraActionPerformed
303     
304     private int linhaEmEdicao = -1;
305     private void tabelaProgramacaoMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tabelaProgramacaoMouseClicked
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     }//GEN-LAST:event_tabelaProgramacaoMouseClicked
317     
318     private IAmostragem amostragemEmEdicao;
319     
320     private void botaoAdicionarAmostraActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botaoAdicionarAmostraActionPerformed
321         IAmostragem amostragem = SystemFactory.getFactory().crateAmostragem();
322         amostragemEmEdicao = amostragem;
323         painelAmostragem.setAmostragem(amostragem);
324         linhaEmEdicao = -1;
325         painelAmostragem.showDialog(this);
326         
327     }//GEN-LAST:event_botaoAdicionarAmostraActionPerformed
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     // Variables declaration - do not modify//GEN-BEGIN:variables
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     // End of variables declaration//GEN-END:variables
369     
370 }
371 
372 // CHECKSTYLE:ON