EditEdgesPopUp.java 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. package ui.view;
  2. import classes.AbstractCpsObject;
  3. import classes.CpsEdge;
  4. import classes.CpsUpperNode;
  5. import ui.controller.Control;
  6. import javax.swing.*;
  7. import javax.swing.border.EmptyBorder;
  8. import java.awt.*;
  9. import java.awt.event.ActionEvent;
  10. import java.awt.event.ActionListener;
  11. /**
  12. * Popup for Editing Edges.
  13. *
  14. * @author Gruppe14
  15. */
  16. public class EditEdgesPopUp extends JDialog {
  17. private static final long serialVersionUID = 1L;
  18. private final JPanel contentPanel = new JPanel();
  19. private JTextField capacityField;
  20. private float capacity;
  21. private JRadioButton rdbtnChangeForAll;
  22. private JRadioButton rdbtnChangeForNew;
  23. private JRadioButton rdbtnChangeForAll1;
  24. private Control controller;
  25. private MyCanvas canvas;
  26. private JLabel lblenterinfiniteFor;
  27. /**
  28. * Launch the application.
  29. *
  30. * @param args
  31. * standard
  32. */
  33. // public static void main(String[] args) {
  34. // try {
  35. //
  36. // EditEdgesPopUp dialog = new EditEdgesPopUp();
  37. // dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
  38. // dialog.setVisible(true);
  39. // } catch (Exception e) {
  40. // e.printStackTrace();
  41. // }
  42. // }
  43. /**
  44. * Constructor.
  45. */
  46. public EditEdgesPopUp() {
  47. super((java.awt.Frame) null, true);
  48. setModalityType(java.awt.Dialog.ModalityType.APPLICATION_MODAL);
  49. this.setTitle(Languages.getLanguage()[46]);
  50. setBounds(100, 100, 600, 220);
  51. setLocationRelativeTo(this.getParent());
  52. getContentPane().setLayout(new BorderLayout());
  53. contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
  54. getContentPane().add(contentPanel, BorderLayout.CENTER);
  55. contentPanel.setLayout(null);
  56. JLabel lblMaximumCapacity = new JLabel(Languages.getLanguage()[47]);
  57. lblMaximumCapacity.setFont(new Font("Tahoma", Font.PLAIN, 11));
  58. lblMaximumCapacity.setBounds(10, 11, 98, 14);
  59. contentPanel.add(lblMaximumCapacity);
  60. capacityField = new JTextField();
  61. capacityField.setBounds(107, 8, 120, 20);
  62. contentPanel.add(capacityField);
  63. capacityField.setColumns(10);
  64. rdbtnChangeForAll = new JRadioButton(Languages.getLanguage()[48]);
  65. rdbtnChangeForAll.setBounds(10, 39, 330, 23);
  66. contentPanel.add(rdbtnChangeForAll);
  67. rdbtnChangeForNew = new JRadioButton(Languages.getLanguage()[49]);
  68. rdbtnChangeForNew.setBounds(10, 65, 330, 23);
  69. contentPanel.add(rdbtnChangeForNew);
  70. rdbtnChangeForAll1 = new JRadioButton(Languages.getLanguage()[50]);
  71. rdbtnChangeForAll1.setBounds(10, 95, 400, 23);
  72. contentPanel.add(rdbtnChangeForAll1);
  73. JButton btnCancel = new JButton(Languages.getLanguage()[51]);
  74. btnCancel.setActionCommand("Cancel");
  75. btnCancel.addActionListener(new ActionListener() {
  76. public void actionPerformed(ActionEvent arg0) {
  77. dispose();
  78. }
  79. });
  80. btnCancel.setBounds(285, 147, 89, 23);
  81. contentPanel.add(btnCancel);
  82. JButton btnOk1 = new JButton("OK");
  83. btnOk1.addActionListener(new ActionListener() {
  84. public void actionPerformed(ActionEvent e) {
  85. if (capacityField.getText().equals("infinite")) {
  86. capacity = -1;
  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(), Languages.getLanguage()[52]);
  98. }
  99. } else {
  100. try {
  101. capacity = Float.parseFloat(capacityField.getText().toString());
  102. if (capacity < 0) {
  103. throw new NumberFormatException();
  104. }
  105. if (rdbtnChangeForAll.isSelected()) {
  106. changeForExisting(capacity);
  107. dispose();
  108. } else if (rdbtnChangeForNew.isSelected()) {
  109. changeForNew(capacity);
  110. dispose();
  111. } else if (rdbtnChangeForAll1.isSelected()) {
  112. changeForExAndNew(capacity);
  113. dispose();
  114. } else {
  115. JOptionPane.showMessageDialog(new JFrame(), Languages.getLanguage()[52]);
  116. }
  117. } catch (NumberFormatException eex) {
  118. JOptionPane.showMessageDialog(new JFrame(), Languages.getLanguage()[53]);
  119. }
  120. }
  121. }
  122. });
  123. btnOk1.setBounds(186, 147, 89, 23);
  124. contentPanel.add(btnOk1);
  125. this.setTitle(Languages.getLanguage()[54]);
  126. ButtonGroup bG = new ButtonGroup();
  127. bG.add(rdbtnChangeForAll1);
  128. bG.add(rdbtnChangeForNew);
  129. bG.add(rdbtnChangeForAll);
  130. lblenterinfiniteFor = new JLabel(Languages.getLanguage()[55]);
  131. lblenterinfiniteFor.setBounds(237, 11, 360, 14);
  132. contentPanel.add(lblenterinfiniteFor);
  133. }
  134. /**
  135. * Set the Canvas.
  136. *
  137. * @param can
  138. * the Canvas
  139. */
  140. public void setCanvas(MyCanvas can) {
  141. canvas = can;
  142. }
  143. /**
  144. * set the Controller.
  145. *
  146. * @param cont
  147. * the Controller
  148. */
  149. public void setController(Control cont) {
  150. controller = cont;
  151. }
  152. /**
  153. * set edge capacity for new edges.
  154. *
  155. * @param cap
  156. * the capacity
  157. */
  158. public void changeForNew(float cap) {
  159. controller.setMaxCapacity(cap);
  160. controller.resetSimulation();
  161. }
  162. /**
  163. * Set Capacity for all existing Edges.
  164. *
  165. * @param cap
  166. * the Capacity
  167. */
  168. public void changeForExisting(float cap) {
  169. /*
  170. * for(SubNet sn: controller.getSimManager().getSubNets()){ for(CpsEdge
  171. * edge: sn.getEdges()){ edge.setCapacity(cap); } } for(CpsEdge edge:
  172. * controller.getSimManager().getBrokenEdges()){ edge.setCapacity(cap);
  173. * }
  174. */
  175. for (CpsEdge edge : controller.getModel().getEdgesOnCanvas()) {
  176. edge.setCapacity(cap);
  177. edge.setWorkingState(true);
  178. }
  179. for (AbstractCpsObject abs : controller.getModel().getObjectsOnCanvas()) {
  180. if (abs instanceof CpsUpperNode) {
  181. changeInUpperNode((CpsUpperNode) abs, cap);
  182. }
  183. }
  184. controller.resetSimulation();
  185. controller.calculateStateForCurrentTimeStep();
  186. canvas.repaint();
  187. }
  188. public void changeInUpperNode(CpsUpperNode uN, float cap) {
  189. for (CpsEdge e : uN.getNodeEdges()) {
  190. e.setCapacity(cap);
  191. }
  192. for (CpsEdge e : uN.getOldEdges()) {
  193. e.setCapacity(cap);
  194. }
  195. for (AbstractCpsObject abs : uN.getNodes()) {
  196. if (abs instanceof CpsUpperNode) {
  197. changeInUpperNode((CpsUpperNode) abs, cap);
  198. }
  199. }
  200. }
  201. /**
  202. * Set the Capacity for all existing and new edges.
  203. *
  204. * @param cap
  205. * the capacity
  206. */
  207. public void changeForExAndNew(float cap) {
  208. changeForNew(cap);
  209. changeForExisting(cap);
  210. }
  211. }