EditEdgesPopUp.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  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. public class EditEdgesPopUp extends JDialog{
  19. private final JPanel contentPanel = new JPanel();
  20. private JTextField textField;
  21. private final JButton btnOk = new JButton("OK");
  22. private JTextField capacityField;
  23. private float capacity;
  24. private JRadioButton rdbtnChangeForAll;
  25. private JRadioButton rdbtnChangeForNew;
  26. private JRadioButton rdbtnChangeForAll_1;
  27. private Control controller;
  28. private MyCanvas canvas;
  29. private JLabel lblenterinfiniteFor;
  30. /**
  31. * Launch the application.
  32. */
  33. public static void main(String[] args) {
  34. try {
  35. EditEdgesPopUp dialog = new EditEdgesPopUp();
  36. dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
  37. dialog.setVisible(true);
  38. } catch (Exception e) {
  39. e.printStackTrace();
  40. }
  41. }
  42. public EditEdgesPopUp() {
  43. super((java.awt.Frame) null, true);
  44. setModalityType(java.awt.Dialog.ModalityType.APPLICATION_MODAL);
  45. this.setTitle("Edit Capacities of Edges");
  46. setBounds(100, 100, 438, 220);
  47. getContentPane().setLayout(new BorderLayout());
  48. contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
  49. getContentPane().add(contentPanel, BorderLayout.CENTER);
  50. contentPanel.setLayout(null);
  51. JLabel lblMaximumCapacity = new JLabel("Maximum Capacity:");
  52. lblMaximumCapacity.setFont(new Font("Tahoma", Font.PLAIN, 11));
  53. lblMaximumCapacity.setBounds(10, 11, 98, 14);
  54. contentPanel.add(lblMaximumCapacity);
  55. capacityField = new JTextField();
  56. capacityField.setBounds(107, 8, 120, 20);
  57. contentPanel.add(capacityField);
  58. capacityField.setColumns(10);
  59. rdbtnChangeForAll = new JRadioButton("Change for all existing Edges only");
  60. rdbtnChangeForAll.setBounds(10, 39, 265, 23);
  61. contentPanel.add(rdbtnChangeForAll);
  62. rdbtnChangeForNew = new JRadioButton("Change for new created Edges only");
  63. rdbtnChangeForNew.setBounds(10, 65, 265, 23);
  64. contentPanel.add(rdbtnChangeForNew);
  65. rdbtnChangeForAll_1 = new JRadioButton("Change for all existing and new created Edges");
  66. rdbtnChangeForAll_1.setBounds(10, 95, 296, 23);
  67. contentPanel.add(rdbtnChangeForAll_1);
  68. JButton btnCancel = new JButton("Cancel");
  69. btnCancel.setActionCommand("Cancel");
  70. btnCancel.addActionListener(new ActionListener() {
  71. public void actionPerformed(ActionEvent arg0) {
  72. dispose();
  73. }
  74. });
  75. btnCancel.setBounds(285, 147, 89, 23);
  76. contentPanel.add(btnCancel);
  77. JButton btnOk_1 = new JButton("OK");
  78. btnOk_1.addActionListener(new ActionListener() {
  79. public void actionPerformed(ActionEvent e) {
  80. if(capacityField.getText().equals("infinite")){
  81. capacity = -1;
  82. if(rdbtnChangeForAll.isSelected()){
  83. changeForExisting(capacity);
  84. dispose();
  85. }else if (rdbtnChangeForNew.isSelected()){
  86. changeForNew(capacity);
  87. dispose();
  88. }else if(rdbtnChangeForAll_1.isSelected()){
  89. changeForExAndNew(capacity);
  90. dispose();
  91. }else{
  92. JOptionPane.showMessageDialog(new JFrame(),
  93. "Please select one of the options");
  94. }
  95. }else{
  96. try {
  97. capacity = Float.parseFloat(capacityField.getText().toString());
  98. if(capacity < 0){
  99. throw new NumberFormatException();
  100. }
  101. if(rdbtnChangeForAll.isSelected()){
  102. changeForExisting(capacity);
  103. dispose();
  104. }else if (rdbtnChangeForNew.isSelected()){
  105. changeForNew(capacity);
  106. dispose();
  107. }else if(rdbtnChangeForAll_1.isSelected()){
  108. changeForExAndNew(capacity);
  109. dispose();
  110. }else{
  111. JOptionPane.showMessageDialog(new JFrame(),
  112. "Please select one of the options");
  113. }
  114. } catch (NumberFormatException e1) {
  115. JOptionPane.showMessageDialog(new JFrame(),
  116. "Please enter a number greater or equal 0 in the Field for Maximum Capacity");
  117. }
  118. } }
  119. });
  120. btnOk_1.setBounds(186, 147, 89, 23);
  121. contentPanel.add(btnOk_1);
  122. this.setTitle("Edit Edge Capacities");
  123. ButtonGroup bG = new ButtonGroup();
  124. bG.add(rdbtnChangeForAll_1);
  125. bG.add(rdbtnChangeForNew);
  126. bG.add(rdbtnChangeForAll);
  127. lblenterinfiniteFor = new JLabel("(enter \"infinite\" for infinite Capacity)");
  128. lblenterinfiniteFor.setBounds(237, 11, 175, 14);
  129. contentPanel.add(lblenterinfiniteFor);
  130. }
  131. public void setCanvas(MyCanvas can){
  132. canvas = can;
  133. }
  134. public void setController(Control cont){
  135. controller = cont;
  136. }
  137. public void changeForNew(float cap){
  138. canvas.setEdgeCapacity(cap);
  139. }
  140. public void changeForExisting(float cap){
  141. for(CpsEdge edge : controller.getModel().getEdgesOnCanvas()){
  142. edge.setCapacity(cap);
  143. }
  144. controller.calculateStateForCurrentTimeStep();
  145. canvas.repaint();
  146. }
  147. public void changeForExAndNew(float cap){
  148. changeForNew(cap);
  149. changeForExisting(cap);
  150. }
  151. }