Advertisement
Guest User

Untitled

a guest
Oct 1st, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.20 KB | None | 0 0
  1. public class EditDiscipline extends JDialog implements VisualWindows, QuitListener {
  2. private JLabel lbNameDiscipline, lblAmountDisciplines;
  3. private JTextField tfNameDiscipline;
  4. private JScrollPane scrollPane;
  5. private JTable tbListDisciplines;
  6. private JButton btnEdit, btnDelete, btnCancel, btnOk;
  7. private DisciplineModelTabel model;
  8.  
  9. private QueuesProcess queue;
  10. private InfiniteProgressPanel glassPanel;
  11. private ArrayList quitListeners;
  12.  
  13.  
  14. public EditDiscipline() {
  15. model = ModelComponents.modelTable();
  16. setupLayout();
  17. setupComponents();
  18. setupEvents();
  19.  
  20. queue = new QueuesProcess();
  21. glassPanel = new InfiniteProgressPanel();
  22. quitListeners = new ArrayList<>();
  23. quitListeners.add(this);
  24. this.setGlassPane(glassPanel);
  25.  
  26.  
  27. GUIConfig.centerOnScreen(this);
  28. }
  29.  
  30. @Override
  31. public void setupLayout() {
  32. setModalExclusionType(Dialog.ModalExclusionType.APPLICATION_EXCLUDE);
  33. setType(Window.Type.UTILITY);
  34. setResizable(false);
  35. setLayout(null);
  36. setSize(410, 325);
  37. setModal(true);
  38.  
  39. setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
  40. addWindowListener(new WindowAdapter() {
  41. public void windowClosing(WindowEvent evt)
  42. {
  43. quit();
  44. }
  45. });
  46. }
  47.  
  48. @Override
  49. public void setupComponents() {
  50. lbNameDiscipline = new JLabel("Nome da Disciplina:");
  51. lbNameDiscipline.setBounds(new Rectangle(new Point(5, 211), lbNameDiscipline.getPreferredSize()));
  52.  
  53. tfNameDiscipline = new JTextField();
  54. tfNameDiscipline.setBounds(130, 209, 185, 20);
  55.  
  56. /*
  57. * Cria a JTable e ScrollPane.
  58. * adiciona ao scrollPane a Jtable
  59. * e faz ambas as configurações.
  60. */
  61. tbListDisciplines = new JTable();
  62. tbListDisciplines.setModel(model);
  63. tbListDisciplines.setVisible(true);
  64. tbListDisciplines.removeColumn(tbListDisciplines.getColumnModel().getColumn(0)); // id
  65.  
  66. scrollPane = new JScrollPane();
  67. scrollPane.setViewportView(tbListDisciplines);
  68. scrollPane.setBounds(4, 10, 398, 155);
  69. scrollPane.setVisible(true);
  70.  
  71. //Label quantidade de disciplinas.
  72. lblAmountDisciplines = new JLabel();
  73. lblAmountDisciplines.setText("" + tbListDisciplines.getRowCount());
  74. lblAmountDisciplines.setBackground(new Color(153, 153, 255));
  75. lblAmountDisciplines.setOpaque(true);
  76. lblAmountDisciplines.setForeground(Color.white);
  77. lblAmountDisciplines.setHorizontalAlignment(SwingConstants.CENTER);
  78. lblAmountDisciplines.setHorizontalTextPosition(SwingConstants.CENTER);
  79. lblAmountDisciplines.setBounds(373, 170, 29, lblAmountDisciplines.getPreferredSize().height);
  80.  
  81. /*
  82. * botões
  83. */
  84. btnEdit = new JButton("Alterar");
  85. btnEdit.setBounds(new Rectangle(new Point(325, 207), btnEdit.getPreferredSize()));
  86.  
  87. btnDelete = new JButton("Deletar");
  88. btnDelete.setBounds(new Rectangle(new Point(5, 170), btnDelete.getPreferredSize()));
  89.  
  90. btnCancel = new JButton("Cancelar");
  91. btnCancel.setBounds(190, 255, 100, 30);
  92.  
  93. btnOk = new JButton("OK");
  94. btnOk.setBounds(300, 255, 100, 30);
  95.  
  96. add(lbNameDiscipline);
  97. add(tfNameDiscipline);
  98. add(scrollPane);
  99. add(lblAmountDisciplines);
  100. add(btnDelete);
  101. add(btnCancel);
  102. add(btnEdit);
  103. add(btnOk);
  104. }
  105.  
  106. @Override
  107. public void setupEvents() {
  108. btnDelete.addActionListener(new ActionListener() {
  109. @Override
  110. public void actionPerformed(ActionEvent e) {
  111. int rowIndex = tbListDisciplines.getSelectedRow();
  112. int id = (int)tbListDisciplines.getModel().getValueAt(rowIndex, 0);
  113. RemoveDiscipline delete = new RemoveDiscipline(id);
  114. queue.addProcess(delete);
  115. lblAmountDisciplines.setText("" + model.getRowCount());
  116. model.remove(rowIndex);
  117. }
  118. });
  119.  
  120. btnEdit.addActionListener(new ActionListener() {
  121. @Override
  122. public void actionPerformed(ActionEvent e) {
  123. int rowIndex = tbListDisciplines.getSelectedRow();
  124. int id = (int)tbListDisciplines.getModel().getValueAt(rowIndex, 0);
  125. UpdateDiscipline update = new UpdateDiscipline(id, (String)tbListDisciplines.getModel().getValueAt(rowIndex, 1));
  126. queue.addProcess(update);
  127. Discipline marca = new Discipline();
  128. marca.setName((String)tbListDisciplines.getModel().getValueAt(rowIndex, 1));
  129. model.update(rowIndex, marca);
  130.  
  131. }
  132. });
  133.  
  134. btnOk.addActionListener(new ActionListener() {
  135. @Override
  136. public void actionPerformed(ActionEvent e) {
  137. queue.executeProcess();
  138. glassPanel.start();
  139. Thread performer = new Thread(new Runnable() {
  140. public void run() {
  141. perform();
  142. }
  143. }, "Performer");
  144. performer.start();
  145. dispose();
  146. }
  147. });
  148.  
  149. btnCancel.addActionListener(new ActionListener() {
  150.  
  151. @Override
  152. public void actionPerformed(ActionEvent e) {
  153. quit();
  154.  
  155. }
  156. });
  157.  
  158. //MouseListener para preencher o textField
  159. tbListDisciplines.addMouseListener(new MouseListener() {
  160. @Override
  161. public void mouseReleased(MouseEvent e) {}
  162.  
  163. @Override
  164. public void mousePressed(MouseEvent e) {}
  165.  
  166. @Override
  167. public void mouseExited(MouseEvent e) {}
  168.  
  169. @Override
  170. public void mouseEntered(MouseEvent e) {}
  171.  
  172. @Override
  173. public void mouseClicked(MouseEvent e) {
  174. int rowIndex = tbListDisciplines.getSelectedRow();
  175. tfNameDiscipline.setText((String)tbListDisciplines.getModel().getValueAt(rowIndex, 1));
  176.  
  177. }
  178. });
  179. }
  180.  
  181. /**
  182. * Método que faz um threads de sleep para
  183. * parar o glassPanel.
  184. */
  185. private void perform() {
  186. try {
  187. Thread.sleep(4000);
  188. } catch (InterruptedException e) {
  189. e.printStackTrace();
  190. }
  191. glassPanel.stop();
  192. }
  193.  
  194. /**
  195. * Método que faz o dispose da tela.
  196. */
  197. @Override
  198. public void quit() {
  199. if(!model.isEmptyList()){
  200. int confirm = JOptionPane.showConfirmDialog(this, "Deseja sair, as alterações feita não serão salvas ?",
  201. "Desistir das alterações?", JOptionPane.YES_NO_OPTION);
  202. if(confirm == JOptionPane.YES_OPTION) {
  203. this.dispose();
  204. model.clearlistRemoved();
  205. }
  206. } else{
  207. this.dispose();
  208. }
  209. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement