EditEdgesPopUp.java 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. package holeg.ui.view.dialog;
  2. import holeg.model.Edge;
  3. import holeg.preferences.ImagePreference;
  4. import holeg.ui.controller.Control;
  5. import holeg.ui.model.GuiSettings;
  6. import holeg.ui.view.image.Import;
  7. import javax.swing.*;
  8. import javax.swing.border.EmptyBorder;
  9. import java.awt.*;
  10. /**
  11. * Popup for Editing Edges.
  12. *
  13. * @author Gruppe14
  14. */
  15. public class EditEdgesPopUp extends JDialog {
  16. private final JTextField capacityField;
  17. private float capacity;
  18. private final JRadioButton rdbtnChangeForAll;
  19. private final JRadioButton rdbtnChangeForNew;
  20. private final JRadioButton rdbtnChangeForAll1;
  21. private final Control control;
  22. /**
  23. * Constructor.
  24. */
  25. public EditEdgesPopUp(JFrame parentFrame, Control control) {
  26. super((java.awt.Frame) null, true);
  27. setModalityType(java.awt.Dialog.ModalityType.APPLICATION_MODAL);
  28. this.setTitle("Edit Capacities of Edges");
  29. setBounds(100, 100, 400, 220);
  30. setLocationRelativeTo(parentFrame);
  31. getContentPane().setLayout(new BorderLayout());
  32. JPanel contentPanel = new JPanel();
  33. contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
  34. getContentPane().add(contentPanel, BorderLayout.CENTER);
  35. contentPanel.setLayout(null);
  36. this.setIconImage(Import.loadImage(ImagePreference.Logo, 30, 30));
  37. JLabel lblMaximumCapacity = new JLabel("Maximum Capacity:");
  38. lblMaximumCapacity.setFont(new Font("Tahoma", Font.PLAIN, 11));
  39. lblMaximumCapacity.setBounds(10, 11, 98, 14);
  40. contentPanel.add(lblMaximumCapacity);
  41. capacityField = new JTextField();
  42. capacityField.setBounds(107, 8, 120, 20);
  43. contentPanel.add(capacityField);
  44. capacityField.setColumns(10);
  45. rdbtnChangeForAll = new JRadioButton("Change for all existing Edges only");
  46. rdbtnChangeForAll.setBounds(10, 39, 330, 23);
  47. contentPanel.add(rdbtnChangeForAll);
  48. rdbtnChangeForNew = new JRadioButton("Change for new created Edges only");
  49. rdbtnChangeForNew.setBounds(10, 65, 330, 23);
  50. contentPanel.add(rdbtnChangeForNew);
  51. rdbtnChangeForAll1 = new JRadioButton("Change for all existing and new created Edges");
  52. rdbtnChangeForAll1.setBounds(10, 95, 400, 23);
  53. contentPanel.add(rdbtnChangeForAll1);
  54. JButton btnCancel = new JButton("Cancel");
  55. btnCancel.setActionCommand("Cancel");
  56. btnCancel.addActionListener(clicked -> dispose());
  57. btnCancel.setBounds(285, 147, 89, 23);
  58. contentPanel.add(btnCancel);
  59. JButton btnOk1 = new JButton("OK");
  60. btnOk1.addActionListener(clicked -> {
  61. try {
  62. capacity = Float.parseFloat(capacityField.getText());
  63. if (capacity < 0) {
  64. throw new NumberFormatException();
  65. }
  66. if (rdbtnChangeForAll.isSelected()) {
  67. changeForExisting(capacity);
  68. dispose();
  69. } else if (rdbtnChangeForNew.isSelected()) {
  70. changeForNew(capacity);
  71. dispose();
  72. } else if (rdbtnChangeForAll1.isSelected()) {
  73. changeForExAndNew(capacity);
  74. dispose();
  75. } else {
  76. JOptionPane.showMessageDialog(new JFrame(), "Please select one of the options");
  77. }
  78. } catch (NumberFormatException eex) {
  79. JOptionPane.showMessageDialog(new JFrame(), "Please enter a number greater or equal 0 in the Field for Maximum Capacity");
  80. }
  81. });
  82. btnOk1.setBounds(186, 147, 89, 23);
  83. contentPanel.add(btnOk1);
  84. this.setTitle("Edit Edge Capacities");
  85. ButtonGroup bG = new ButtonGroup();
  86. bG.add(rdbtnChangeForAll1);
  87. bG.add(rdbtnChangeForNew);
  88. bG.add(rdbtnChangeForAll);
  89. this.control = control;
  90. this.setVisible(true);
  91. }
  92. /**
  93. * set edge capacity for new edges.
  94. *
  95. * @param cap
  96. * the capacity
  97. */
  98. public void changeForNew(float cap) {
  99. GuiSettings.maxCapacityForNewCreatedEdges = cap;
  100. control.resetSimulation();
  101. }
  102. /**
  103. * Set Capacity for all existing Edges.
  104. *
  105. * @param cap
  106. * the Capacity
  107. */
  108. public void changeForExisting(float cap) {
  109. /*
  110. * for(SubNet sn: controller.getSimManager().getSubNets()){ for(CpsEdge
  111. * edge: sn.getEdges()){ edge.setCapacity(cap); } } for(CpsEdge edge:
  112. * controller.getSimManager().getBrokenEdges()){ edge.setCapacity(cap);
  113. * }
  114. */
  115. for (Edge edge : control.getModel().getEdgesOnCanvas()) {
  116. edge.maxCapacity = cap;
  117. }
  118. control.resetSimulation();
  119. control.calculateStateAndVisualForCurrentTimeStep();
  120. }
  121. /**
  122. * Set the Capacity for all existing and new edges.
  123. *
  124. * @param cap
  125. * the capacity
  126. */
  127. public void changeForExAndNew(float cap) {
  128. changeForNew(cap);
  129. changeForExisting(cap);
  130. }
  131. }