EditEdgesPopUp.java 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. package ui.view.additional.popup;
  2. import java.awt.BorderLayout;
  3. import java.awt.Font;
  4. import java.awt.event.ActionEvent;
  5. import java.awt.event.ActionListener;
  6. import javax.swing.ButtonGroup;
  7. import javax.swing.JButton;
  8. import javax.swing.JDialog;
  9. import javax.swing.JFrame;
  10. import javax.swing.JLabel;
  11. import javax.swing.JOptionPane;
  12. import javax.swing.JPanel;
  13. import javax.swing.JRadioButton;
  14. import javax.swing.JTextField;
  15. import javax.swing.border.EmptyBorder;
  16. import classes.Edge;
  17. import ui.controller.Control;
  18. import ui.view.main.MyCanvas;
  19. /**
  20. * Popup for Editing Edges.
  21. *
  22. * @author Gruppe14
  23. */
  24. public class EditEdgesPopUp extends JDialog {
  25. private static final long serialVersionUID = 1L;
  26. private final JPanel contentPanel = new JPanel();
  27. private JTextField capacityField;
  28. private float capacity;
  29. private JRadioButton rdbtnChangeForAll;
  30. private JRadioButton rdbtnChangeForNew;
  31. private JRadioButton rdbtnChangeForAll1;
  32. private Control controller;
  33. private MyCanvas canvas;
  34. /**
  35. * Launch the application.
  36. *
  37. * @param args
  38. * standard
  39. */
  40. /**
  41. * Constructor.
  42. */
  43. public EditEdgesPopUp(JFrame parentFrame) {
  44. super((java.awt.Frame) null, true);
  45. setModalityType(java.awt.Dialog.ModalityType.APPLICATION_MODAL);
  46. this.setTitle("Edit Capacities of Edges");
  47. setBounds(100, 100, 400, 220);
  48. setLocationRelativeTo(parentFrame);
  49. getContentPane().setLayout(new BorderLayout());
  50. contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
  51. getContentPane().add(contentPanel, BorderLayout.CENTER);
  52. contentPanel.setLayout(null);
  53. JLabel lblMaximumCapacity = new JLabel("Maximum Capacity:");
  54. lblMaximumCapacity.setFont(new Font("Tahoma", Font.PLAIN, 11));
  55. lblMaximumCapacity.setBounds(10, 11, 98, 14);
  56. contentPanel.add(lblMaximumCapacity);
  57. capacityField = new JTextField();
  58. capacityField.setBounds(107, 8, 120, 20);
  59. contentPanel.add(capacityField);
  60. capacityField.setColumns(10);
  61. rdbtnChangeForAll = new JRadioButton("Change for all existing Edges only");
  62. rdbtnChangeForAll.setBounds(10, 39, 330, 23);
  63. contentPanel.add(rdbtnChangeForAll);
  64. rdbtnChangeForNew = new JRadioButton("Change for new created Edges only");
  65. rdbtnChangeForNew.setBounds(10, 65, 330, 23);
  66. contentPanel.add(rdbtnChangeForNew);
  67. rdbtnChangeForAll1 = new JRadioButton("Change for all existing and new created Edges");
  68. rdbtnChangeForAll1.setBounds(10, 95, 400, 23);
  69. contentPanel.add(rdbtnChangeForAll1);
  70. JButton btnCancel = new JButton("Cancel");
  71. btnCancel.setActionCommand("Cancel");
  72. btnCancel.addActionListener(new ActionListener() {
  73. public void actionPerformed(ActionEvent arg0) {
  74. dispose();
  75. }
  76. });
  77. btnCancel.setBounds(285, 147, 89, 23);
  78. contentPanel.add(btnCancel);
  79. JButton btnOk1 = new JButton("OK");
  80. btnOk1.addActionListener(new ActionListener() {
  81. public void actionPerformed(ActionEvent e) {
  82. try {
  83. capacity = Float.parseFloat(capacityField.getText().toString());
  84. if (capacity < 0) {
  85. throw new NumberFormatException();
  86. }
  87. if (rdbtnChangeForAll.isSelected()) {
  88. changeForExisting(capacity);
  89. dispose();
  90. } else if (rdbtnChangeForNew.isSelected()) {
  91. changeForNew(capacity);
  92. dispose();
  93. } else if (rdbtnChangeForAll1.isSelected()) {
  94. changeForExAndNew(capacity);
  95. dispose();
  96. } else {
  97. JOptionPane.showMessageDialog(new JFrame(), "Please select one of the options");
  98. }
  99. } catch (NumberFormatException eex) {
  100. JOptionPane.showMessageDialog(new JFrame(), "Please enter a number greater or equal 0 in the Field for Maximum Capacity");
  101. }
  102. }
  103. });
  104. btnOk1.setBounds(186, 147, 89, 23);
  105. contentPanel.add(btnOk1);
  106. this.setTitle("Edit Edge Capacities");
  107. ButtonGroup bG = new ButtonGroup();
  108. bG.add(rdbtnChangeForAll1);
  109. bG.add(rdbtnChangeForNew);
  110. bG.add(rdbtnChangeForAll);
  111. }
  112. /**
  113. * Set the Canvas.
  114. *
  115. * @param can
  116. * the Canvas
  117. */
  118. public void setCanvas(MyCanvas can) {
  119. canvas = can;
  120. }
  121. /**
  122. * set the Controller.
  123. *
  124. * @param cont
  125. * the Controller
  126. */
  127. public void setController(Control cont) {
  128. controller = cont;
  129. }
  130. /**
  131. * set edge capacity for new edges.
  132. *
  133. * @param cap
  134. * the capacity
  135. */
  136. public void changeForNew(float cap) {
  137. controller.setMaxCapacity(cap);
  138. controller.resetSimulation();
  139. }
  140. /**
  141. * Set Capacity for all existing Edges.
  142. *
  143. * @param cap
  144. * the Capacity
  145. */
  146. public void changeForExisting(float cap) {
  147. /*
  148. * for(SubNet sn: controller.getSimManager().getSubNets()){ for(CpsEdge
  149. * edge: sn.getEdges()){ edge.setCapacity(cap); } } for(CpsEdge edge:
  150. * controller.getSimManager().getBrokenEdges()){ edge.setCapacity(cap);
  151. * }
  152. */
  153. for (Edge edge : controller.getModel().getEdgesOnCanvas()) {
  154. edge.setCapacity(cap);
  155. }
  156. controller.resetSimulation();
  157. controller.calculateStateAndVisualForCurrentTimeStep();
  158. canvas.repaint();
  159. }
  160. /**
  161. * Set the Capacity for all existing and new edges.
  162. *
  163. * @param cap
  164. * the capacity
  165. */
  166. public void changeForExAndNew(float cap) {
  167. changeForNew(cap);
  168. changeForExisting(cap);
  169. }
  170. }