AddObjectPopUp.java 5.9 KB

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