EditEdgesPopUp.java 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. package ui.view;
  2. import javax.swing.ButtonGroup;
  3. import javax.swing.JDialog;
  4. import javax.swing.JFrame;
  5. import javax.swing.JOptionPane;
  6. import javax.swing.JPanel;
  7. import javax.swing.JRadioButton;
  8. import javax.swing.JLabel;
  9. import java.awt.BorderLayout;
  10. import java.awt.Font;
  11. import javax.swing.JTextField;
  12. import javax.swing.JButton;
  13. import javax.swing.border.EmptyBorder;
  14. import classes.CpsEdge;
  15. import ui.controller.Control;
  16. import java.awt.event.ActionListener;
  17. import java.awt.event.ActionEvent;
  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. private JLabel lblenterinfiniteFor;
  34. /**
  35. * Launch the application.
  36. *
  37. * @param args
  38. * standard
  39. */
  40. public static void main(String[] args) {
  41. try {
  42. EditEdgesPopUp dialog = new EditEdgesPopUp();
  43. dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
  44. dialog.setVisible(true);
  45. } catch (Exception e) {
  46. e.printStackTrace();
  47. }
  48. }
  49. /**
  50. * Constructor.
  51. */
  52. public EditEdgesPopUp() {
  53. super((java.awt.Frame) null, true);
  54. setModalityType(java.awt.Dialog.ModalityType.APPLICATION_MODAL);
  55. this.setTitle(Languages.getLanguage()[46]);
  56. setBounds(100, 100, 550, 220);
  57. getContentPane().setLayout(new BorderLayout());
  58. contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
  59. getContentPane().add(contentPanel, BorderLayout.CENTER);
  60. contentPanel.setLayout(null);
  61. JLabel lblMaximumCapacity = new JLabel(Languages.getLanguage()[47]);
  62. lblMaximumCapacity.setFont(new Font("Tahoma", Font.PLAIN, 11));
  63. lblMaximumCapacity.setBounds(10, 11, 98, 14);
  64. contentPanel.add(lblMaximumCapacity);
  65. capacityField = new JTextField();
  66. capacityField.setBounds(107, 8, 120, 20);
  67. contentPanel.add(capacityField);
  68. capacityField.setColumns(10);
  69. rdbtnChangeForAll = new JRadioButton(Languages.getLanguage()[48]);
  70. rdbtnChangeForAll.setBounds(10, 39, 330, 23);
  71. contentPanel.add(rdbtnChangeForAll);
  72. rdbtnChangeForNew = new JRadioButton(Languages.getLanguage()[49]);
  73. rdbtnChangeForNew.setBounds(10, 65, 330, 23);
  74. contentPanel.add(rdbtnChangeForNew);
  75. rdbtnChangeForAll1 = new JRadioButton(Languages.getLanguage()[50]);
  76. rdbtnChangeForAll1.setBounds(10, 95, 400, 23);
  77. contentPanel.add(rdbtnChangeForAll1);
  78. JButton btnCancel = new JButton(Languages.getLanguage()[51]);
  79. btnCancel.setActionCommand("Cancel");
  80. btnCancel.addActionListener(new ActionListener() {
  81. public void actionPerformed(ActionEvent arg0) {
  82. dispose();
  83. }
  84. });
  85. btnCancel.setBounds(285, 147, 89, 23);
  86. contentPanel.add(btnCancel);
  87. JButton btnOk1 = new JButton("OK");
  88. btnOk1.addActionListener(new ActionListener() {
  89. public void actionPerformed(ActionEvent e) {
  90. if (capacityField.getText().equals("infinite")) {
  91. capacity = -1;
  92. if (rdbtnChangeForAll.isSelected()) {
  93. changeForExisting(capacity);
  94. dispose();
  95. } else if (rdbtnChangeForNew.isSelected()) {
  96. changeForNew(capacity);
  97. dispose();
  98. } else if (rdbtnChangeForAll1.isSelected()) {
  99. changeForExAndNew(capacity);
  100. dispose();
  101. } else {
  102. JOptionPane.showMessageDialog(new JFrame(), Languages.getLanguage()[52]);
  103. }
  104. } else {
  105. try {
  106. capacity = Float.parseFloat(capacityField.getText().toString());
  107. if (capacity < 0) {
  108. throw new NumberFormatException();
  109. }
  110. if (rdbtnChangeForAll.isSelected()) {
  111. changeForExisting(capacity);
  112. dispose();
  113. } else if (rdbtnChangeForNew.isSelected()) {
  114. changeForNew(capacity);
  115. dispose();
  116. } else if (rdbtnChangeForAll1.isSelected()) {
  117. changeForExAndNew(capacity);
  118. dispose();
  119. } else {
  120. JOptionPane.showMessageDialog(new JFrame(), Languages.getLanguage()[52]);
  121. }
  122. } catch (NumberFormatException eex) {
  123. JOptionPane.showMessageDialog(new JFrame(), Languages.getLanguage()[53]);
  124. }
  125. }
  126. }
  127. });
  128. btnOk1.setBounds(186, 147, 89, 23);
  129. contentPanel.add(btnOk1);
  130. this.setTitle(Languages.getLanguage()[54]);
  131. ButtonGroup bG = new ButtonGroup();
  132. bG.add(rdbtnChangeForAll1);
  133. bG.add(rdbtnChangeForNew);
  134. bG.add(rdbtnChangeForAll);
  135. lblenterinfiniteFor = new JLabel(Languages.getLanguage()[55]);
  136. lblenterinfiniteFor.setBounds(237, 11, 280, 14);
  137. contentPanel.add(lblenterinfiniteFor);
  138. }
  139. /**
  140. * Set the Canvas.
  141. *
  142. * @param can
  143. * the Canvas
  144. */
  145. public void setCanvas(MyCanvas can) {
  146. canvas = can;
  147. }
  148. /**
  149. * set the Controller.
  150. *
  151. * @param cont
  152. * the Controller
  153. */
  154. public void setController(Control cont) {
  155. controller = cont;
  156. }
  157. /**
  158. * set edge capacity for new edges.
  159. *
  160. * @param cap
  161. * the capacity
  162. */
  163. public void changeForNew(float cap) {
  164. canvas.setEdgeCapacity(cap);
  165. }
  166. /**
  167. * Set Capacity for all existing Edges.
  168. *
  169. * @param cap
  170. * the Capacity
  171. */
  172. public void changeForExisting(float cap) {
  173. for (CpsEdge edge : controller.getModel().getEdgesOnCanvas()) {
  174. edge.setCapacity(cap);
  175. }
  176. controller.calculateStateForCurrentTimeStep();
  177. canvas.repaint();
  178. }
  179. /**
  180. * Set the Capacity for all existing and new edges.
  181. *
  182. * @param cap
  183. * the capacity
  184. */
  185. public void changeForExAndNew(float cap) {
  186. changeForNew(cap);
  187. changeForExisting(cap);
  188. }
  189. }