AddElementPopUp.java 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  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.AbstractCpsObject;
  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 AbstractCpsObject 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. providedEnergy = new JTextField();
  87. providedEnergy.setBounds(130, 46, 110, 20);
  88. contentPanel.add(providedEnergy);
  89. providedEnergy.setColumns(10);
  90. providedEnergy.setText("0");
  91. amount = new JTextField();
  92. amount.setBounds(130, 81, 110, 20);
  93. contentPanel.add(amount);
  94. amount.setColumns(10);
  95. amount.setText("1");
  96. {
  97. JPanel buttonPane = new JPanel();
  98. buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
  99. getContentPane().add(buttonPane, BorderLayout.SOUTH);
  100. {
  101. JButton okButton = new JButton("OK");
  102. okButton.addActionListener(new ActionListener() {
  103. public void actionPerformed(ActionEvent arg0) {
  104. boolean repeated = false;
  105. for (HolonElement e : ((HolonObject) tempCps).getElements()) {
  106. if (elementName.getText().equals(e.getEleName())) {
  107. repeated = true;
  108. break;
  109. }
  110. }
  111. if (elementName.getText().length() != 0 && !repeated) {
  112. try {
  113. float energy = Float.parseFloat(providedEnergy.getText().toString());
  114. int elementAmount = Integer.parseInt(amount.getText().toString());
  115. hl = new HolonElement(elementName.getText().toString(), elementAmount, energy);
  116. dispose();
  117. } catch (NumberFormatException e) {
  118. JOptionPane.showMessageDialog(new JFrame(),
  119. "Please enter numbers in the Fields amount and providedEnergy");
  120. }
  121. } else {
  122. // JOptionPane.showMessageDialog(new JFrame(),
  123. // "Please enter a Name");
  124. if (elementName.getText().length() == 0) {
  125. JLabel errorString = new JLabel("No name");
  126. errorString.setBounds(200, 8, 200, 20);
  127. contentPanel.add(errorString);
  128. } else if (repeated) {
  129. JLabel errorString = new JLabel("Name already given");
  130. errorString.setBounds(240, 8, 100, 20);
  131. contentPanel.add(errorString);
  132. }
  133. elementName.setBackground(new Color(255, 50, 50));
  134. }
  135. }
  136. });
  137. okButton.setActionCommand("OK");
  138. buttonPane.add(okButton);
  139. getRootPane().setDefaultButton(okButton);
  140. }
  141. {
  142. JButton cancelButton = new JButton("Cancel");
  143. cancelButton.setActionCommand("Cancel");
  144. buttonPane.add(cancelButton);
  145. cancelButton.addActionListener(new ActionListener() {
  146. public void actionPerformed(ActionEvent e) {
  147. dispose();
  148. }
  149. });
  150. }
  151. }
  152. }
  153. public void setActualCps(AbstractCpsObject cps) {
  154. this.tempCps = cps;
  155. }
  156. public HolonElement getElement() {
  157. return hl;
  158. }
  159. }