EditEdgesPopUp.java 5.1 KB

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