AddElementPopUp.java 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  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 javax.swing.JButton;
  7. import javax.swing.JDialog;
  8. import javax.swing.JPanel;
  9. import javax.swing.border.EmptyBorder;
  10. import javax.swing.JFrame;
  11. import javax.swing.JLabel;
  12. import javax.swing.JOptionPane;
  13. import javax.swing.JTextField;
  14. import javax.swing.ImageIcon;
  15. import classes.AbstractCpsObject;
  16. import classes.HolonElement;
  17. import classes.HolonObject;
  18. import java.awt.event.ActionListener;
  19. import java.awt.event.KeyEvent;
  20. import java.awt.event.KeyListener;
  21. import java.awt.event.ActionEvent;
  22. /**
  23. * popup for adding an Holon Element to a holon Object.
  24. *
  25. * @author Gruppe14
  26. */
  27. public class AddElementPopUp extends JDialog {
  28. /**
  29. * Serial.
  30. */
  31. private static final long serialVersionUID = 1L;
  32. private final JPanel contentPanel = new JPanel();
  33. private JTextField elementName;
  34. private JTextField providedEnergy;
  35. private JTextField amount;
  36. private HolonElement hl;
  37. private AbstractCpsObject tempCps;
  38. /**
  39. * Launch the application.
  40. *
  41. * @param args
  42. * standard
  43. */
  44. // public static void main(String[] args) {
  45. // try {
  46. //
  47. // AddElementPopUp dialog = new AddElementPopUp();
  48. // dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
  49. // dialog.setVisible(true);
  50. // } catch (Exception e) {
  51. // e.printStackTrace();
  52. // }
  53. // }
  54. /**
  55. * Create the dialog.
  56. */
  57. public AddElementPopUp() {
  58. super((java.awt.Frame) null, true);
  59. this.setIconImage(new ImageIcon(this.getClass().getResource("/Images/Dummy_House.png")).getImage()
  60. .getScaledInstance(30, 30, Image.SCALE_SMOOTH));
  61. setModalityType(java.awt.Dialog.ModalityType.APPLICATION_MODAL);
  62. setBounds(100, 100, 400, 190);
  63. setLocationRelativeTo(this.getParent());
  64. getContentPane().setLayout(new BorderLayout());
  65. contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
  66. getContentPane().add(contentPanel, BorderLayout.CENTER);
  67. contentPanel.setLayout(null);
  68. this.setTitle(Languages.getLanguage()[64]);
  69. JLabel lblElementName = new JLabel(Languages.getLanguage()[65]);
  70. lblElementName.setBounds(10, 11, 100, 14);
  71. contentPanel.add(lblElementName);
  72. JLabel lblProvidedEnergy = new JLabel(Languages.getLanguage()[66]);
  73. lblProvidedEnergy.setBounds(10, 49, 120, 14);
  74. contentPanel.add(lblProvidedEnergy);
  75. JLabel lblAmount = new JLabel(Languages.getLanguage()[67]);
  76. lblAmount.setBounds(10, 84, 100, 14);
  77. contentPanel.add(lblAmount);
  78. elementName = new JTextField();
  79. elementName.addKeyListener(new KeyListener() {
  80. @Override
  81. public void keyPressed(KeyEvent arg0) {
  82. // TODO Auto-generated method stub
  83. }
  84. @Override
  85. public void keyReleased(KeyEvent e) {
  86. // TODO Auto-generated method stub
  87. }
  88. @Override
  89. public void keyTyped(KeyEvent e) {
  90. elementName.setBackground(Color.WHITE);
  91. }
  92. });
  93. elementName.setBounds(130, 8, 110, 20);
  94. contentPanel.add(elementName);
  95. elementName.setColumns(10);
  96. providedEnergy = new JTextField();
  97. providedEnergy.setBounds(130, 46, 110, 20);
  98. contentPanel.add(providedEnergy);
  99. providedEnergy.setColumns(10);
  100. providedEnergy.setText("0");
  101. amount = new JTextField();
  102. amount.setBounds(130, 81, 110, 20);
  103. contentPanel.add(amount);
  104. amount.setColumns(10);
  105. amount.setText("1");
  106. {
  107. JPanel buttonPane = new JPanel();
  108. buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
  109. getContentPane().add(buttonPane, BorderLayout.SOUTH);
  110. {
  111. JButton okButton = new JButton("OK");
  112. okButton.addActionListener(new ActionListener() {
  113. public void actionPerformed(ActionEvent 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().toString());
  124. int elementAmount = Integer.parseInt(amount.getText().toString());
  125. hl = new HolonElement(elementName.getText().toString(), elementAmount, energy);
  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. });
  146. okButton.setActionCommand("OK");
  147. buttonPane.add(okButton);
  148. getRootPane().setDefaultButton(okButton);
  149. }
  150. {
  151. JButton cancelButton = new JButton(Languages.getLanguage()[71]);
  152. cancelButton.setActionCommand("Cancel");
  153. buttonPane.add(cancelButton);
  154. cancelButton.addActionListener(new ActionListener() {
  155. public void actionPerformed(ActionEvent e) {
  156. dispose();
  157. }
  158. });
  159. }
  160. }
  161. }
  162. /**
  163. * Sets the actual Cps.
  164. *
  165. * @param cps
  166. * actual Cps
  167. */
  168. public void setActualCps(AbstractCpsObject cps) {
  169. this.tempCps = cps;
  170. }
  171. /**
  172. * Returns the created Element.
  173. *
  174. * @return the Element
  175. */
  176. public HolonElement getElement() {
  177. return hl;
  178. }
  179. }