AddElementPopUp.java 5.5 KB

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