EditEdgesPopUp.java 6.4 KB

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