AddElementPopUp.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. package ui.view;
  2. import java.awt.BorderLayout;
  3. import java.awt.Color;
  4. import java.awt.FlowLayout;
  5. import java.awt.Image;
  6. import java.util.ArrayList;
  7. import javax.swing.JButton;
  8. import javax.swing.JDialog;
  9. import javax.swing.JPanel;
  10. import javax.swing.border.EmptyBorder;
  11. import javax.swing.JFrame;
  12. import javax.swing.JLabel;
  13. import javax.swing.JOptionPane;
  14. import javax.swing.JTextField;
  15. import javax.swing.JComboBox;
  16. import javax.swing.DefaultComboBoxModel;
  17. import javax.swing.ImageIcon;
  18. import classes.CpsObject;
  19. import classes.HolonElement;
  20. import classes.HolonObject;
  21. import ui.model.Model;
  22. import java.awt.event.ActionListener;
  23. import java.awt.event.KeyEvent;
  24. import java.awt.event.KeyListener;
  25. import java.awt.event.ActionEvent;
  26. public class AddElementPopUp extends JDialog {
  27. private final JPanel contentPanel = new JPanel();
  28. private JTextField elementName;
  29. private JTextField providedEnergy;
  30. private JTextField amount;
  31. private HolonElement hl;
  32. private CpsObject tempCps;
  33. /**
  34. * Launch the application.
  35. */
  36. public static void main(String[] args) {
  37. try {
  38. AddElementPopUp dialog = new AddElementPopUp();
  39. dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
  40. dialog.setVisible(true);
  41. } catch (Exception e) {
  42. e.printStackTrace();
  43. }
  44. }
  45. /**
  46. * Create the dialog.
  47. */
  48. public AddElementPopUp() {
  49. super((java.awt.Frame) null, true);
  50. this.setIconImage(new ImageIcon(this.getClass().getResource("/Images/Dummy_House.png")).getImage()
  51. .getScaledInstance(30, 30, Image.SCALE_SMOOTH));
  52. setModalityType(java.awt.Dialog.ModalityType.APPLICATION_MODAL);
  53. setBounds(100, 100, 400, 190);
  54. getContentPane().setLayout(new BorderLayout());
  55. contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
  56. getContentPane().add(contentPanel, BorderLayout.CENTER);
  57. contentPanel.setLayout(null);
  58. this.setTitle("Add default Element to Object");
  59. JLabel lblElementName = new JLabel("Element Name:");
  60. lblElementName.setBounds(10, 11, 100, 14);
  61. contentPanel.add(lblElementName);
  62. JLabel lblProvidedEnergy = new JLabel("Provided Energy:");
  63. lblProvidedEnergy.setBounds(10, 49, 120, 14);
  64. contentPanel.add(lblProvidedEnergy);
  65. JLabel lblAmount = new JLabel("Amount:");
  66. lblAmount.setBounds(10, 84, 100, 14);
  67. contentPanel.add(lblAmount);
  68. elementName = new JTextField();
  69. elementName.addKeyListener(new KeyListener() {
  70. @Override
  71. public void keyPressed(KeyEvent arg0) {
  72. // TODO Auto-generated method stub
  73. }
  74. @Override
  75. public void keyReleased(KeyEvent e) {
  76. // TODO Auto-generated method stub
  77. }
  78. @Override
  79. public void keyTyped(KeyEvent e) {
  80. elementName.setBackground(Color.WHITE);
  81. }
  82. });
  83. elementName.setBounds(130, 8, 110, 20);
  84. contentPanel.add(elementName);
  85. elementName.setColumns(10);
  86. final JComboBox sign = new JComboBox();
  87. sign.setModel(new DefaultComboBoxModel(new String[] { "+", "-" }));
  88. sign.setBounds(240, 46, 60, 20);
  89. contentPanel.add(sign);
  90. providedEnergy = new JTextField();
  91. providedEnergy.setBounds(130, 46, 110, 20);
  92. contentPanel.add(providedEnergy);
  93. providedEnergy.setColumns(10);
  94. providedEnergy.setText("0");
  95. amount = new JTextField();
  96. amount.setBounds(130, 81, 110, 20);
  97. contentPanel.add(amount);
  98. amount.setColumns(10);
  99. amount.setText("0");
  100. {
  101. JPanel buttonPane = new JPanel();
  102. buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
  103. getContentPane().add(buttonPane, BorderLayout.SOUTH);
  104. {
  105. JButton okButton = new JButton("OK");
  106. okButton.addActionListener(new ActionListener() {
  107. public void actionPerformed(ActionEvent arg0) {
  108. boolean repeated = false;
  109. for (HolonElement e : ((HolonObject) tempCps).getElements()) {
  110. if (elementName.getText().equals(e.getEleName())) {
  111. repeated = true;
  112. break;
  113. }
  114. }
  115. if (elementName.getText().length() != 0 && !repeated) {
  116. try {
  117. float energy = Float.parseFloat(providedEnergy.getText().toString());
  118. int elementAmount = Integer.parseInt(amount.getText().toString());
  119. if (sign.getSelectedItem().toString().equals("-")) {
  120. energy = energy * -1;
  121. }
  122. hl = new HolonElement(elementName.getText().toString(), elementAmount, energy);
  123. dispose();
  124. } catch (NumberFormatException e) {
  125. JOptionPane.showMessageDialog(new JFrame(),
  126. "Please enter numbers in the Fields amount and providedEnergy");
  127. }
  128. } else {
  129. // JOptionPane.showMessageDialog(new JFrame(),
  130. // "Please enter a Name");
  131. if (elementName.getText().length() == 0) {
  132. JLabel errorString = new JLabel("No name");
  133. errorString.setBounds(200, 8, 200, 20);
  134. contentPanel.add(errorString);
  135. } else if (repeated) {
  136. JLabel errorString = new JLabel("Name already given");
  137. errorString.setBounds(240, 8, 100, 20);
  138. contentPanel.add(errorString);
  139. }
  140. elementName.setBackground(new Color(255, 50, 50));
  141. }
  142. }
  143. });
  144. okButton.setActionCommand("OK");
  145. buttonPane.add(okButton);
  146. getRootPane().setDefaultButton(okButton);
  147. }
  148. {
  149. JButton cancelButton = new JButton("Cancel");
  150. cancelButton.setActionCommand("Cancel");
  151. buttonPane.add(cancelButton);
  152. cancelButton.addActionListener(new ActionListener() {
  153. public void actionPerformed(ActionEvent e) {
  154. dispose();
  155. }
  156. });
  157. }
  158. }
  159. }
  160. public void setActualCps(CpsObject cps) {
  161. this.tempCps = cps;
  162. }
  163. public HolonElement getElement() {
  164. return hl;
  165. }
  166. }