|
@@ -0,0 +1,147 @@
|
|
|
|
+package ui.view;
|
|
|
|
+
|
|
|
|
+import javax.swing.ButtonGroup;
|
|
|
|
+import javax.swing.JDialog;
|
|
|
|
+import javax.swing.JFrame;
|
|
|
|
+import javax.swing.JOptionPane;
|
|
|
|
+import javax.swing.JPanel;
|
|
|
|
+import javax.swing.JRadioButton;
|
|
|
|
+import javax.swing.JLabel;
|
|
|
|
+
|
|
|
|
+import java.awt.BorderLayout;
|
|
|
|
+import java.awt.Font;
|
|
|
|
+
|
|
|
|
+import javax.swing.JTextField;
|
|
|
|
+import javax.swing.JButton;
|
|
|
|
+import javax.swing.border.EmptyBorder;
|
|
|
|
+
|
|
|
|
+import classes.CpsEdge;
|
|
|
|
+import ui.controller.Control;
|
|
|
|
+
|
|
|
|
+import java.awt.event.ActionListener;
|
|
|
|
+import java.awt.event.ActionEvent;
|
|
|
|
+
|
|
|
|
+public class EditEdgesPopUp extends JDialog{
|
|
|
|
+ private final JPanel contentPanel = new JPanel();
|
|
|
|
+ private JTextField textField;
|
|
|
|
+ private final JButton btnOk = new JButton("OK");
|
|
|
|
+ private JTextField capacityField;
|
|
|
|
+ private float capacity;
|
|
|
|
+ private JRadioButton rdbtnChangeForAll;
|
|
|
|
+ private JRadioButton rdbtnChangeForNew;
|
|
|
|
+ private JRadioButton rdbtnChangeForAll_1;
|
|
|
|
+ private Control controller;
|
|
|
|
+ private MyCanvas canvas;
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Launch the application.
|
|
|
|
+ */
|
|
|
|
+ public static void main(String[] args) {
|
|
|
|
+ try {
|
|
|
|
+
|
|
|
|
+ EditEdgesPopUp dialog = new EditEdgesPopUp();
|
|
|
|
+ dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
|
|
|
|
+ dialog.setVisible(true);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public EditEdgesPopUp() {
|
|
|
|
+ super((java.awt.Frame) null, true);
|
|
|
|
+ setModalityType(java.awt.Dialog.ModalityType.APPLICATION_MODAL);
|
|
|
|
+ this.setTitle("Edit Capacities of Edges");
|
|
|
|
+ setBounds(100, 100, 400, 220);
|
|
|
|
+ getContentPane().setLayout(new BorderLayout());
|
|
|
|
+ contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
|
|
|
|
+ getContentPane().add(contentPanel, BorderLayout.CENTER);
|
|
|
|
+ contentPanel.setLayout(null);
|
|
|
|
+
|
|
|
|
+ JLabel lblMaximumCapacity = new JLabel("Maximum Capacity:");
|
|
|
|
+ lblMaximumCapacity.setFont(new Font("Tahoma", Font.PLAIN, 11));
|
|
|
|
+ lblMaximumCapacity.setBounds(10, 11, 98, 14);
|
|
|
|
+ contentPanel.add(lblMaximumCapacity);
|
|
|
|
+
|
|
|
|
+ capacityField = new JTextField();
|
|
|
|
+ capacityField.setBounds(107, 8, 120, 20);
|
|
|
|
+ contentPanel.add(capacityField);
|
|
|
|
+ capacityField.setColumns(10);
|
|
|
|
+
|
|
|
|
+ rdbtnChangeForAll = new JRadioButton("Change for all existing Edges only");
|
|
|
|
+ rdbtnChangeForAll.setBounds(10, 39, 265, 23);
|
|
|
|
+ contentPanel.add(rdbtnChangeForAll);
|
|
|
|
+
|
|
|
|
+ rdbtnChangeForNew = new JRadioButton("Change for new created Edges only");
|
|
|
|
+ rdbtnChangeForNew.setBounds(10, 65, 265, 23);
|
|
|
|
+ contentPanel.add(rdbtnChangeForNew);
|
|
|
|
+
|
|
|
|
+ rdbtnChangeForAll_1 = new JRadioButton("Change for all existing and new created Edges");
|
|
|
|
+ rdbtnChangeForAll_1.setBounds(10, 95, 296, 23);
|
|
|
|
+ contentPanel.add(rdbtnChangeForAll_1);
|
|
|
|
+
|
|
|
|
+ JButton btnCancel = new JButton("Cancel");
|
|
|
|
+ btnCancel.setActionCommand("Cancel");
|
|
|
|
+ btnCancel.addActionListener(new ActionListener() {
|
|
|
|
+ public void actionPerformed(ActionEvent arg0) {
|
|
|
|
+ dispose();
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ btnCancel.setBounds(285, 147, 89, 23);
|
|
|
|
+ contentPanel.add(btnCancel);
|
|
|
|
+
|
|
|
|
+ JButton btnOk_1 = new JButton("OK");
|
|
|
|
+ btnOk_1.addActionListener(new ActionListener() {
|
|
|
|
+ public void actionPerformed(ActionEvent e) {
|
|
|
|
+ try {
|
|
|
|
+ capacity = Float.parseFloat(capacityField.getText().toString());
|
|
|
|
+ if(rdbtnChangeForAll.isSelected()){
|
|
|
|
+ changeForExisting(capacity);
|
|
|
|
+ dispose();
|
|
|
|
+ }else if (rdbtnChangeForNew.isSelected()){
|
|
|
|
+ changeForNew(capacity);
|
|
|
|
+ dispose();
|
|
|
|
+ }else if(rdbtnChangeForAll_1.isSelected()){
|
|
|
|
+ changeForExAndNew(capacity);
|
|
|
|
+ dispose();
|
|
|
|
+ }else{
|
|
|
|
+ JOptionPane.showMessageDialog(new JFrame(),
|
|
|
|
+ "Please select one of the options");
|
|
|
|
+ }
|
|
|
|
+ } catch (NumberFormatException e1) {
|
|
|
|
+ JOptionPane.showMessageDialog(new JFrame(),
|
|
|
|
+ "Please enter a number in the Field for Maximum Capacity");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ btnOk_1.setBounds(186, 147, 89, 23);
|
|
|
|
+ contentPanel.add(btnOk_1);
|
|
|
|
+ this.setTitle("Edit Edge Capacities");
|
|
|
|
+ ButtonGroup bG = new ButtonGroup();
|
|
|
|
+ bG.add(rdbtnChangeForAll_1);
|
|
|
|
+ bG.add(rdbtnChangeForNew);
|
|
|
|
+ bG.add(rdbtnChangeForAll);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void setCanvas(MyCanvas can){
|
|
|
|
+ canvas = can;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void setController(Control cont){
|
|
|
|
+ controller = cont;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void changeForNew(float cap){
|
|
|
|
+ System.out.println("Imhere");
|
|
|
|
+ canvas.setEdgeCapacity(cap);
|
|
|
|
+ }
|
|
|
|
+ public void changeForExisting(float cap){
|
|
|
|
+ for(CpsEdge edge : controller.getModel().getEdgesOnCanvas()){
|
|
|
|
+ edge.setCapacity(cap);
|
|
|
|
+ }
|
|
|
|
+ canvas.repaint();
|
|
|
|
+ }
|
|
|
|
+ public void changeForExAndNew(float cap){
|
|
|
|
+ changeForNew(cap);
|
|
|
|
+ changeForExisting(cap);
|
|
|
|
+ }
|
|
|
|
+}
|