Advertisement
Guest User

Untitled

a guest
May 27th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.23 KB | None | 0 0
  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. package ui.PPROG_1DF_1161121_1161113_TP3;
  7.  
  8. import algoritmos.PPROG_1DF_1161121_1161113_TP3.AlgoritmoAtribuicao;
  9. import controller.PPROG_1DF_1161121_1161113_TP3.AtribuirCandidaturaController;
  10. import java.awt.BorderLayout;
  11. import java.awt.Dimension;
  12.  
  13. import java.awt.GridLayout;
  14. import java.awt.event.ActionEvent;
  15. import java.awt.event.ActionListener;
  16. import java.awt.event.MouseAdapter;
  17. import java.awt.event.MouseEvent;
  18. import java.util.List;
  19.  
  20. import javax.swing.JButton;
  21. import javax.swing.JComboBox;
  22. import javax.swing.JFrame;
  23. import javax.swing.JLabel;
  24. import javax.swing.JList;
  25.  
  26. import javax.swing.JPanel;
  27. import model.PPROG_1DF_1161121_1161113_TP3.Algoritmo;
  28. import model.PPROG_1DF_1161121_1161113_TP3.Atribuicao;
  29.  
  30. import model.PPROG_1DF_1161121_1161113_TP3.CentroEventos;
  31. import model.PPROG_1DF_1161121_1161113_TP3.Evento;
  32. import model.PPROG_1DF_1161121_1161113_TP3.Organizador;
  33. import model.PPROG_1DF_1161121_1161113_TP3.RegistoAtribuicoes;
  34. import model.PPROG_1DF_1161121_1161113_TP3.RegistoEventos;
  35.  
  36. /**
  37. *
  38. * @author david
  39. */
  40. public class AtribuirCandidaturaUI extends JFrame {
  41.  
  42. private RegistoEventos registoEventos;
  43. private CentroEventos centroEventos;
  44. private AtribuirCandidaturaController controllerAtribuirCandidatura;
  45. private Organizador organizador;
  46. private JList listaCandidaturasAtribuidas;
  47. private static JComboBox eventosCombo = new JComboBox();
  48. private static JComboBox algoritmosCombo = new JComboBox();
  49. private static int indexLista = 0;
  50. private AlgoritmoAtribuicao algoritmo;
  51. private List<Atribuicao> la;
  52.  
  53. /**
  54. * A largura da janela em píxeis.
  55. */
  56. private static final int JANELA_LARGURA = 500;
  57.  
  58. /**
  59. * A altura da janela em píxeis.
  60. */
  61. private static final int JANELA_ALTURA = 500;
  62.  
  63. public AtribuirCandidaturaUI(RegistoEventos registoEventos, CentroEventos centroEventos, Organizador organizador) {
  64. super("Atribuir Candidaturas");
  65.  
  66. this.registoEventos = registoEventos;
  67. this.centroEventos = centroEventos;
  68. this.controllerAtribuirCandidatura = new AtribuirCandidaturaController(centroEventos);
  69. this.organizador = organizador;
  70. this.indexLista = -1;
  71. BorderLayout bl = new BorderLayout();
  72. setLayout(bl);
  73.  
  74. criaComponentes();
  75.  
  76. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  77. setSize(JANELA_LARGURA, JANELA_ALTURA);
  78. setVisible(true);
  79. }
  80.  
  81. public void criaComponentes() {
  82. JPanel painelNorte = criaPainelNorte();
  83. JPanel painelCentro = criaPainelCentro();
  84. JPanel painelSul = criaPainelSul();
  85.  
  86. add(painelNorte, BorderLayout.NORTH);
  87. add(painelCentro, BorderLayout.CENTER);
  88. add(painelSul, BorderLayout.SOUTH);
  89.  
  90. }
  91.  
  92. public JPanel criaPainelNorte() {
  93. JLabel l = new JLabel("Escolher Evento");
  94. JPanel p = new JPanel();
  95.  
  96. JComboBox box = criaComboBoxEventos();
  97. adicionaEventosComboBox();
  98. box.addActionListener(new EventosCombo());
  99. p.add(l);
  100. p.add(box);
  101. return p;
  102. }
  103.  
  104. public JPanel criaPainelCentro() {
  105. JPanel p = new JPanel(new GridLayout(2, 1));
  106. JPanel l1 = new JPanel();
  107. JPanel l2 = new JPanel();
  108. JComboBox algoritmosBox = criaComboBoxAlgoritmos();
  109. adicionaAlgoritmosComboBox();
  110.  
  111. JButton btnAtribuir = new JButton("Atribuir");
  112. Dimension dmnsn = new Dimension(50, 50);
  113. btnAtribuir.setSize(dmnsn);
  114. btnAtribuir.addActionListener(new ActionListener () {
  115. @Override
  116. public void actionPerformed(ActionEvent ae) {
  117. la= controllerAtribuirCandidatura.executaAlgoritmo(algoritmo);
  118. }
  119. });
  120. JButton btnConfirmo = new JButton("Confirmo");
  121. btnConfirmo.setSize(dmnsn);
  122.  
  123. l1.add(algoritmosBox);
  124. l2.add(btnAtribuir);
  125. l2.add(btnConfirmo);
  126.  
  127. p.add(l1);
  128. p.add(l2);
  129. return p;
  130. }
  131.  
  132. public JPanel criaPainelSul() {
  133. JPanel p = new JPanel();
  134.  
  135. p.add(criarComponenteSul());
  136. return p;
  137. }
  138.  
  139. public JComboBox criaComboBoxEventos() {
  140. eventosCombo.addActionListener(new EventosCombo());
  141. return eventosCombo;
  142. }
  143.  
  144. public JComboBox criaComboBoxAlgoritmos() {
  145. algoritmosCombo.addActionListener(new AlgoritmosCombo());
  146. return algoritmosCombo;
  147. }
  148.  
  149. public void adicionaEventosComboBox() {
  150. eventosCombo.addItem("Escolhe um Evento");
  151. for (Evento evento : controllerAtribuirCandidatura.getListaEventosOrganizador(organizador)) {
  152. eventosCombo.addItem(evento.getTitle());
  153. }
  154. }
  155.  
  156. public void adicionaAlgoritmosComboBox() {
  157. algoritmosCombo.addItem("Escolhe um Algoritmo de Distribuiçao");
  158. for (AlgoritmoAtribuicao algoritmo : controllerAtribuirCandidatura.getRegistoAlgoritmos()) {
  159. algoritmosCombo.addItem(algoritmo);
  160. }
  161. }
  162.  
  163. private JPanel criarComponenteSul() {
  164. JPanel p = new JPanel();
  165. p.setLayout(new GridLayout(2, 2, 10, 10));
  166.  
  167. listaCandidaturasAtribuidas = new JList( la.toArray());
  168.  
  169.  
  170. p.add("Atribuicao", listaCandidaturasAtribuidas);
  171.  
  172. return p;
  173. }
  174.  
  175. public class EventosCombo implements ActionListener {
  176.  
  177. @Override
  178. public void actionPerformed(ActionEvent ae) {
  179. indexLista = eventosCombo.getSelectedIndex() - 1;
  180. System.out.println("Selected: " + eventosCombo.getSelectedItem());
  181. eventosCombo.getSelectedItem();
  182. }
  183. }
  184.  
  185. public class AlgoritmosCombo implements ActionListener {
  186.  
  187. @Override
  188. public void actionPerformed(ActionEvent ae) {
  189. indexLista = algoritmosCombo.getSelectedIndex();
  190. System.out.println("Selected: " + algoritmosCombo.getSelectedItem());
  191. algoritmosCombo.getSelectedItem();
  192. algoritmo = controllerAtribuirCandidatura.selecionaAlgoritmo(indexLista);
  193. }
  194. }
  195.  
  196. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement