AddElementPopUp.java 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. package ui.view;
  2. import classes.AbstractCpsObject;
  3. import classes.HolonElement;
  4. import classes.HolonObject;
  5. import ui.model.Model;
  6. import javax.swing.*;
  7. import javax.swing.border.EmptyBorder;
  8. import java.awt.*;
  9. import java.awt.event.KeyEvent;
  10. import java.awt.event.KeyListener;
  11. /**
  12. * popup for adding an Holon Element to a holon Object.
  13. *
  14. * @author Gruppe14
  15. */
  16. public class AddElementPopUp extends JDialog {
  17. /**
  18. * Serial.
  19. */
  20. private static final long serialVersionUID = 1L;
  21. private final JPanel contentPanel = new JPanel();
  22. private JTextField elementName;
  23. private JTextField providedEnergy;
  24. private JTextField amount;
  25. private HolonElement hl;
  26. private AbstractCpsObject tempCps;
  27. private Model model;
  28. // /**
  29. // * Launch the application.
  30. // *
  31. // * @param args
  32. // * standard
  33. // */
  34. // public static void main(String[] args) {
  35. // try {
  36. //
  37. // AddElementPopUp dialog = new AddElementPopUp();
  38. // dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
  39. // dialog.setVisible(true);
  40. // } catch (Exception e) {
  41. // e.printStackTrace();
  42. // }
  43. // }
  44. /**
  45. * Create the dialog.
  46. */
  47. AddElementPopUp(JFrame parentFrame, Model model) {
  48. super((java.awt.Frame) null, true);
  49. this.setIconImage(Util.loadImage(this, "/Images/Dummy_House.png", 30, 30));
  50. setModalityType(java.awt.Dialog.ModalityType.APPLICATION_MODAL);
  51. setBounds(100, 100, 400, 190);
  52. setLocationRelativeTo(parentFrame);
  53. getContentPane().setLayout(new BorderLayout());
  54. contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
  55. getContentPane().add(contentPanel, BorderLayout.CENTER);
  56. contentPanel.setLayout(null);
  57. this.setTitle(Languages.getLanguage()[64]);
  58. JLabel lblElementName = new JLabel(Languages.getLanguage()[65]);
  59. lblElementName.setBounds(10, 11, 100, 14);
  60. contentPanel.add(lblElementName);
  61. JLabel lblProvidedEnergy = new JLabel(Languages.getLanguage()[66]);
  62. lblProvidedEnergy.setBounds(10, 49, 120, 14);
  63. contentPanel.add(lblProvidedEnergy);
  64. JLabel lblAmount = new JLabel(Languages.getLanguage()[67]);
  65. lblAmount.setBounds(10, 84, 100, 14);
  66. contentPanel.add(lblAmount);
  67. elementName = new JTextField();
  68. elementName.addKeyListener(new KeyListener() {
  69. @Override
  70. public void keyPressed(KeyEvent arg0) {
  71. }
  72. @Override
  73. public void keyReleased(KeyEvent e) {
  74. }
  75. @Override
  76. public void keyTyped(KeyEvent e) {
  77. elementName.setBackground(Color.WHITE);
  78. }
  79. });
  80. elementName.setBounds(130, 8, 110, 20);
  81. contentPanel.add(elementName);
  82. elementName.setColumns(10);
  83. providedEnergy = new JTextField();
  84. providedEnergy.setBounds(130, 46, 110, 20);
  85. contentPanel.add(providedEnergy);
  86. providedEnergy.setColumns(10);
  87. providedEnergy.setText("0");
  88. amount = new JTextField();
  89. amount.setBounds(130, 81, 110, 20);
  90. contentPanel.add(amount);
  91. amount.setColumns(10);
  92. amount.setText("1");
  93. //<<<<<<< HEAD
  94. JPanel buttonPane = new JPanel();
  95. buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
  96. getContentPane().add(buttonPane, BorderLayout.SOUTH);
  97. JButton okButton = new JButton("OK");
  98. okButton.addActionListener(arg0 -> okAction());
  99. okButton.setActionCommand("OK");
  100. buttonPane.add(okButton);
  101. getRootPane().setDefaultButton(okButton);
  102. JButton cancelButton = new JButton(Languages.getLanguage()[71]);
  103. cancelButton.setActionCommand("Cancel");
  104. buttonPane.add(cancelButton);
  105. cancelButton.addActionListener(e -> dispose());
  106. /*=======
  107. {
  108. JPanel buttonPane = new JPanel();
  109. buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
  110. getContentPane().add(buttonPane, BorderLayout.SOUTH);
  111. {
  112. JButton okButton = new JButton("OK");
  113. okButton.addActionListener(arg0 -> {
  114. boolean repeated = false;
  115. for (HolonElement e : ((HolonObject) tempCps).getElements()) {
  116. if (elementName.getText().equals(e.getEleName())) {
  117. repeated = true;
  118. break;
  119. }
  120. }
  121. if (elementName.getText().length() != 0 && !repeated) {
  122. try {
  123. float energy = Float.parseFloat(providedEnergy.getText());
  124. int elementAmount = Integer.parseInt(amount.getText());
  125. hl = new HolonElement(elementName.getText(), elementAmount, energy, model);
  126. dispose();
  127. } catch (NumberFormatException e) {
  128. JOptionPane.showMessageDialog(new JFrame(), Languages.getLanguage()[68]);
  129. }
  130. } else {
  131. // JOptionPane.showMessageDialog(new JFrame(),
  132. // "Please enter a Name");
  133. if (elementName.getText().length() == 0) {
  134. JLabel errorString = new JLabel(Languages.getLanguage()[69]);
  135. errorString.setBounds(240, 8, 100, 20);
  136. contentPanel.add(errorString);
  137. } else if (repeated) {
  138. JLabel errorString = new JLabel(Languages.getLanguage()[70]);
  139. errorString.setBounds(250, 8, 100, 20);
  140. contentPanel.add(errorString);
  141. }
  142. elementName.setBackground(new Color(255, 50, 50));
  143. }
  144. });
  145. okButton.setActionCommand("OK");
  146. buttonPane.add(okButton);
  147. getRootPane().setDefaultButton(okButton);
  148. }
  149. {
  150. JButton cancelButton = new JButton(Languages.getLanguage()[71]);
  151. cancelButton.setActionCommand("Cancel");
  152. buttonPane.add(cancelButton);
  153. cancelButton.addActionListener(e -> dispose());
  154. }
  155. }
  156. >>>>>>> origin/LWR_timeStepLimit*/
  157. }
  158. /**
  159. * Sets the actual Cps.
  160. *
  161. * @param cps
  162. * actual Cps
  163. */
  164. void setActualCps(AbstractCpsObject cps) {
  165. this.tempCps = cps;
  166. }
  167. /**
  168. * Returns the created Element.
  169. *
  170. * @return the Element
  171. */
  172. public HolonElement getElement() {
  173. return hl;
  174. }
  175. public void setElement(HolonElement holonElement) {
  176. hl = new HolonElement(hl);
  177. }
  178. private void okAction() {
  179. boolean repeated = false;
  180. for (HolonElement e : ((HolonObject) tempCps).getElements()) {
  181. if (elementName.getText().equals(e.getEleName())) {
  182. repeated = true;
  183. break;
  184. }
  185. }
  186. if (elementName.getText().length() != 0 && !repeated) {
  187. try {
  188. float energy = Float.parseFloat(providedEnergy.getText());
  189. int elementAmount = Integer.parseInt(amount.getText());
  190. hl = new HolonElement(elementName.getText(), elementAmount, energy);
  191. dispose();
  192. } catch (NumberFormatException e) {
  193. JOptionPane.showMessageDialog(new JFrame(), Languages.getLanguage()[68]);
  194. }
  195. } else {
  196. // JOptionPane.showMessageDialog(new JFrame(),
  197. // "Please enter a Name");
  198. if (elementName.getText().length() == 0) {
  199. JLabel errorString = new JLabel(Languages.getLanguage()[69]);
  200. errorString.setBounds(240, 8, 100, 20);
  201. contentPanel.add(errorString);
  202. } else if (repeated) {
  203. JLabel errorString = new JLabel(Languages.getLanguage()[70]);
  204. errorString.setBounds(250, 8, 100, 20);
  205. contentPanel.add(errorString);
  206. }
  207. elementName.setBackground(new Color(255, 50, 50));
  208. }
  209. }
  210. }