AddElementPopUp.java 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  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.HolonElement;
  19. import java.awt.event.ActionListener;
  20. import java.awt.event.KeyEvent;
  21. import java.awt.event.KeyListener;
  22. import java.awt.event.ActionEvent;
  23. public class AddElementPopUp extends JDialog {
  24. private final JPanel contentPanel = new JPanel();
  25. private JTextField elementName;
  26. private JTextField providedEnergy;
  27. private JTextField amount;
  28. private HolonElement hl;
  29. /**
  30. * Launch the application.
  31. */
  32. public static void main(String[] args) {
  33. try {
  34. AddElementPopUp dialog = new AddElementPopUp();
  35. dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
  36. dialog.setVisible(true);
  37. } catch (Exception e) {
  38. e.printStackTrace();
  39. }
  40. }
  41. /**
  42. * Create the dialog.
  43. */
  44. public AddElementPopUp() {
  45. super((java.awt.Frame) null, true);
  46. this.setIconImage(new ImageIcon(this.getClass().getResource("/Images/Dummy_House.png")).getImage()
  47. .getScaledInstance(30, 30, Image.SCALE_SMOOTH));
  48. setModalityType(java.awt.Dialog.ModalityType.APPLICATION_MODAL);
  49. setBounds(100, 100, 400, 190);
  50. getContentPane().setLayout(new BorderLayout());
  51. contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
  52. getContentPane().add(contentPanel, BorderLayout.CENTER);
  53. contentPanel.setLayout(null);
  54. this.setTitle("Add default Element to Object");
  55. JLabel lblElementName = new JLabel("Element Name:");
  56. lblElementName.setBounds(10, 11, 100, 14);
  57. contentPanel.add(lblElementName);
  58. JLabel lblProvidedEnergy = new JLabel("Provided Energy:");
  59. lblProvidedEnergy.setBounds(10, 49, 120, 14);
  60. contentPanel.add(lblProvidedEnergy);
  61. JLabel lblAmount = new JLabel("Amount:");
  62. lblAmount.setBounds(10, 84, 100, 14);
  63. contentPanel.add(lblAmount);
  64. elementName = new JTextField();
  65. elementName.addKeyListener(new KeyListener() {
  66. @Override
  67. public void keyPressed(KeyEvent arg0) {
  68. // TODO Auto-generated method stub
  69. }
  70. @Override
  71. public void keyReleased(KeyEvent e) {
  72. // TODO Auto-generated method stub
  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. final JComboBox sign = new JComboBox();
  83. sign.setModel(new DefaultComboBoxModel(new String[] { "+", "-" }));
  84. sign.setBounds(240, 46, 60, 20);
  85. contentPanel.add(sign);
  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("0");
  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. if (elementName.getText().length() != 0) {
  105. try {
  106. float energy = Float.parseFloat(providedEnergy.getText().toString());
  107. int elementAmount = Integer.parseInt(amount.getText().toString());
  108. if (sign.getSelectedItem().toString().equals("-")) {
  109. energy = energy * -1;
  110. }
  111. hl = new HolonElement(elementName.getText().toString(), energy, elementAmount);
  112. dispose();
  113. } catch (NumberFormatException e) {
  114. JOptionPane.showMessageDialog(new JFrame(),
  115. "Please enter numbers in the Fields amount and providedEnergy");
  116. }
  117. } else {
  118. // JOptionPane.showMessageDialog(new JFrame(),
  119. // "Please enter a Name");
  120. elementName.setBackground(new Color(255, 50, 50));
  121. }
  122. }
  123. });
  124. okButton.setActionCommand("OK");
  125. buttonPane.add(okButton);
  126. getRootPane().setDefaultButton(okButton);
  127. }
  128. {
  129. JButton cancelButton = new JButton("Cancel");
  130. cancelButton.setActionCommand("Cancel");
  131. buttonPane.add(cancelButton);
  132. cancelButton.addActionListener(new ActionListener() {
  133. public void actionPerformed(ActionEvent e) {
  134. dispose();
  135. }
  136. });
  137. }
  138. }
  139. }
  140. public HolonElement getElement() {
  141. return hl;
  142. }
  143. }