AddObjectPopUp.java 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. package ui.view;
  2. import java.awt.BorderLayout;
  3. import java.awt.Component;
  4. import java.awt.FlowLayout;
  5. import java.awt.event.*;
  6. import java.io.*;
  7. import java.util.ArrayList;
  8. import javax.swing.DefaultListModel;
  9. import javax.swing.JButton;
  10. import javax.swing.JDialog;
  11. import javax.swing.JFileChooser;
  12. import javax.swing.JPanel;
  13. import javax.swing.JScrollPane;
  14. import javax.swing.ListModel;
  15. import javax.swing.ListSelectionModel;
  16. import javax.swing.border.EmptyBorder;
  17. import javax.swing.filechooser.FileNameExtensionFilter;
  18. import javax.swing.JLabel;
  19. import javax.swing.JTextField;
  20. import javax.swing.JList;
  21. import javax.swing.JOptionPane;
  22. import javax.swing.SwingConstants;
  23. import classes.HolonElement;
  24. import javax.swing.JScrollBar;
  25. import javax.swing.ScrollPaneConstants;
  26. public class AddObjectPopUp extends JDialog {
  27. private final JPanel contentPanel = new JPanel();
  28. private AddElementPopUp addElement;
  29. private JTextField textField;
  30. private JTextField textField_1;
  31. private ArrayList<HolonElement> hElements;
  32. private DefaultListModel listModel;
  33. private JList list;
  34. private File selectedFile = null;
  35. private String filePath = " ";
  36. /**
  37. * Launch the application.
  38. */
  39. public static void main(String[] args) {
  40. try {
  41. AddObjectPopUp dialog = new AddObjectPopUp();
  42. dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
  43. dialog.setVisible(true);
  44. } catch (Exception e) {
  45. e.printStackTrace();
  46. }
  47. }
  48. /**
  49. * Create the dialog.
  50. */
  51. public AddObjectPopUp() {
  52. setBounds(100, 100, 450, 300);
  53. getContentPane().setLayout(new BorderLayout());
  54. contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
  55. getContentPane().add(contentPanel, BorderLayout.CENTER);
  56. contentPanel.setLayout(null);
  57. hElements = new ArrayList<HolonElement>();
  58. this.setTitle("Add Object Menu");
  59. {
  60. JLabel lblName = new JLabel("Name:");
  61. lblName.setHorizontalAlignment(SwingConstants.CENTER);
  62. lblName.setBounds(28, 11, 76, 14);
  63. contentPanel.add(lblName);
  64. }
  65. {
  66. textField = new JTextField();
  67. textField.setBounds(135, 8, 86, 20);
  68. contentPanel.add(textField);
  69. textField.setColumns(10);
  70. }
  71. {
  72. JButton btnBrowseImage = new JButton("Browse Image");
  73. btnBrowseImage.setBounds(10, 50, 112, 23);
  74. contentPanel.add(btnBrowseImage);
  75. btnBrowseImage.addMouseListener(new MouseAdapter() {
  76. public void mouseClicked(MouseEvent e) {
  77. fileChooser();
  78. }
  79. });
  80. }
  81. {
  82. textField_1 = new JTextField();
  83. textField_1.setBounds(135, 51, 271, 20);
  84. contentPanel.add(textField_1);
  85. textField_1.setColumns(10);
  86. }
  87. {
  88. JButton btnAddDefaultElement = new JButton("Add Default Element");
  89. btnAddDefaultElement.addActionListener(new ActionListener() {
  90. public void actionPerformed(ActionEvent arg0) {
  91. addElement = new AddElementPopUp();
  92. addElement.setVisible(true);
  93. HolonElement hl = addElement.getElement();
  94. addElement(hl);
  95. }
  96. });
  97. btnAddDefaultElement.setBounds(262, 95, 144, 23);
  98. contentPanel.add(btnAddDefaultElement);
  99. }
  100. {
  101. JScrollPane scrollPane = new JScrollPane();
  102. scrollPane.setBounds(10, 84, 236, 133);
  103. contentPanel.add(scrollPane);
  104. {
  105. listModel = new DefaultListModel();
  106. HolonElement hel = new HolonElement("Test", 100, 5);
  107. String name = hel.getEleName();
  108. for (int i = 0; i < 11; i++) {
  109. hel.setEleName(name + i);
  110. addElement(hel);
  111. }
  112. list = new JList(listModel);
  113. scrollPane.setViewportView(list);
  114. }
  115. }
  116. {
  117. JButton btnNewButton = new JButton("Delete Default Element");
  118. btnNewButton.addActionListener(new ActionListener() {
  119. public void actionPerformed(ActionEvent e) {
  120. int selectedIndex = list.getSelectedIndex();
  121. if (selectedIndex != -1) {
  122. listModel.remove(selectedIndex);
  123. hElements.remove(selectedIndex);
  124. }
  125. }
  126. });
  127. btnNewButton.setBounds(262, 129, 144, 23);
  128. contentPanel.add(btnNewButton);
  129. }
  130. {
  131. JPanel buttonPane = new JPanel();
  132. buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
  133. getContentPane().add(buttonPane, BorderLayout.SOUTH);
  134. {
  135. JButton okButton = new JButton("OK");
  136. okButton.addMouseListener(new MouseAdapter() {
  137. public void mouseClicked(MouseEvent e) {
  138. if (!textField_1.getText().equals(filePath)) {
  139. Component frame = null;
  140. JOptionPane.showMessageDialog(frame, "No image selected!");
  141. } else {
  142. copieFile();
  143. }
  144. }
  145. });
  146. okButton.setActionCommand("OK");
  147. buttonPane.add(okButton);
  148. getRootPane().setDefaultButton(okButton);
  149. }
  150. {
  151. JButton cancelButton = new JButton("Cancel");
  152. cancelButton.setActionCommand("Cancel");
  153. buttonPane.add(cancelButton);
  154. }
  155. }
  156. }
  157. public void addElement(HolonElement hl) {
  158. hElements.add(hl);
  159. listModel.addElement(hl.getAmount() + "x: " + hl.getEleName() + " " + hl.getEnergy() + "U");
  160. }
  161. protected void fileChooser() {
  162. // TODO Auto-generated method stub
  163. JFileChooser FileChooser = new JFileChooser();
  164. FileNameExtensionFilter filter = new FileNameExtensionFilter("png, jpg or jpeg", "png", "jpg", "jpeg");
  165. FileChooser.setFileFilter(filter);
  166. int returnValue = FileChooser.showOpenDialog(null);
  167. if (returnValue == JFileChooser.APPROVE_OPTION) {
  168. selectedFile = FileChooser.getSelectedFile();
  169. filePath = selectedFile.getAbsolutePath();
  170. textField_1.setText(filePath);
  171. } else {
  172. System.out.println("Failed to Load");
  173. }
  174. }
  175. protected void copieFile() {
  176. InputStream inStream = null;
  177. OutputStream outStream = null;
  178. try {
  179. File source = new File(filePath);
  180. File dest = new File(System.getProperty("user.dir") + "/res/Images/", selectedFile.getName());
  181. inStream = new FileInputStream(source);
  182. outStream = new FileOutputStream(dest);
  183. byte[] buffer = new byte[1024];
  184. int length;
  185. while ((length = inStream.read(buffer)) > 0) {
  186. outStream.write(buffer, 0, length);
  187. }
  188. if (inStream != null)
  189. inStream.close();
  190. if (outStream != null)
  191. outStream.close();
  192. System.out.println("File Copied..");
  193. } catch (IOException e1) {
  194. e1.printStackTrace();
  195. }
  196. }
  197. }