AddElementPopUp.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  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() {
  46. super((java.awt.Frame) null, true);
  47. this.setIconImage(new ImageIcon(this.getClass().getResource("/Images/Dummy_House.png")).getImage()
  48. .getScaledInstance(30, 30, Image.SCALE_SMOOTH));
  49. setModalityType(java.awt.Dialog.ModalityType.APPLICATION_MODAL);
  50. setBounds(100, 100, 400, 190);
  51. setLocationRelativeTo(this.getParent());
  52. getContentPane().setLayout(new BorderLayout());
  53. contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
  54. getContentPane().add(contentPanel, BorderLayout.CENTER);
  55. contentPanel.setLayout(null);
  56. this.setTitle(Languages.getLanguage()[64]);
  57. JLabel lblElementName = new JLabel(Languages.getLanguage()[65]);
  58. lblElementName.setBounds(10, 11, 100, 14);
  59. contentPanel.add(lblElementName);
  60. JLabel lblProvidedEnergy = new JLabel(Languages.getLanguage()[66]);
  61. lblProvidedEnergy.setBounds(10, 49, 120, 14);
  62. contentPanel.add(lblProvidedEnergy);
  63. JLabel lblAmount = new JLabel(Languages.getLanguage()[67]);
  64. lblAmount.setBounds(10, 84, 100, 14);
  65. contentPanel.add(lblAmount);
  66. elementName = new JTextField();
  67. elementName.addKeyListener(new KeyListener() {
  68. @Override
  69. public void keyPressed(KeyEvent arg0) {
  70. }
  71. @Override
  72. public void keyReleased(KeyEvent e) {
  73. }
  74. @Override
  75. public void keyTyped(KeyEvent e) {
  76. elementName.setBackground(Color.WHITE);
  77. }
  78. });
  79. elementName.setBounds(130, 8, 110, 20);
  80. contentPanel.add(elementName);
  81. elementName.setColumns(10);
  82. providedEnergy = new JTextField();
  83. providedEnergy.setBounds(130, 46, 110, 20);
  84. contentPanel.add(providedEnergy);
  85. providedEnergy.setColumns(10);
  86. providedEnergy.setText("0");
  87. amount = new JTextField();
  88. amount.setBounds(130, 81, 110, 20);
  89. contentPanel.add(amount);
  90. amount.setColumns(10);
  91. amount.setText("1");
  92. {
  93. JPanel buttonPane = new JPanel();
  94. buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
  95. getContentPane().add(buttonPane, BorderLayout.SOUTH);
  96. {
  97. JButton okButton = new JButton("OK");
  98. okButton.addActionListener(arg0 -> {
  99. boolean repeated = false;
  100. for (HolonElement e : ((HolonObject) tempCps).getElements()) {
  101. if (elementName.getText().equals(e.getEleName())) {
  102. repeated = true;
  103. break;
  104. }
  105. }
  106. if (elementName.getText().length() != 0 && !repeated) {
  107. try {
  108. float energy = Float.parseFloat(providedEnergy.getText());
  109. int elementAmount = Integer.parseInt(amount.getText());
  110. hl = new HolonElement(elementName.getText(), elementAmount, energy);
  111. dispose();
  112. } catch (NumberFormatException e) {
  113. JOptionPane.showMessageDialog(new JFrame(), Languages.getLanguage()[68]);
  114. }
  115. } else {
  116. // JOptionPane.showMessageDialog(new JFrame(),
  117. // "Please enter a Name");
  118. if (elementName.getText().length() == 0) {
  119. JLabel errorString = new JLabel(Languages.getLanguage()[69]);
  120. errorString.setBounds(240, 8, 100, 20);
  121. contentPanel.add(errorString);
  122. } else if (repeated) {
  123. JLabel errorString = new JLabel(Languages.getLanguage()[70]);
  124. errorString.setBounds(250, 8, 100, 20);
  125. contentPanel.add(errorString);
  126. }
  127. elementName.setBackground(new Color(255, 50, 50));
  128. }
  129. });
  130. okButton.setActionCommand("OK");
  131. buttonPane.add(okButton);
  132. getRootPane().setDefaultButton(okButton);
  133. }
  134. {
  135. JButton cancelButton = new JButton(Languages.getLanguage()[71]);
  136. cancelButton.setActionCommand("Cancel");
  137. buttonPane.add(cancelButton);
  138. cancelButton.addActionListener(e -> dispose());
  139. }
  140. }
  141. }
  142. /**
  143. * Sets the actual Cps.
  144. *
  145. * @param cps
  146. * actual Cps
  147. */
  148. void setActualCps(AbstractCpsObject cps) {
  149. this.tempCps = cps;
  150. }
  151. /**
  152. * Returns the created Element.
  153. *
  154. * @return the Element
  155. */
  156. public HolonElement getElement() {
  157. return hl;
  158. }
  159. }