package ui.view; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.event.*; import java.io.*; import java.util.ArrayList; import javax.swing.DefaultListModel; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFileChooser; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.ListModel; import javax.swing.ListSelectionModel; import javax.swing.border.EmptyBorder; import javax.swing.filechooser.FileNameExtensionFilter; import javax.swing.JLabel; import javax.swing.JTextField; import javax.swing.JList; import javax.swing.SwingConstants; import classes.HolonElement; import javax.swing.JScrollBar; import javax.swing.ScrollPaneConstants; public class AddObjectPopUp extends JDialog { private final JPanel contentPanel = new JPanel(); private AddElementPopUp addElement; private JTextField textField; private JTextField textField_1; private ArrayList hElements; private DefaultListModel listModel; private JList list; /** * Launch the application. */ public static void main(String[] args) { try { AddObjectPopUp dialog = new AddObjectPopUp(); dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); dialog.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } /** * Create the dialog. */ public AddObjectPopUp() { setBounds(100, 100, 450, 300); getContentPane().setLayout(new BorderLayout()); contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5)); getContentPane().add(contentPanel, BorderLayout.CENTER); contentPanel.setLayout(null); hElements = new ArrayList (); this.setTitle("Add Object Menu"); { JLabel lblName = new JLabel("Name:"); lblName.setHorizontalAlignment(SwingConstants.CENTER); lblName.setBounds(28, 11, 76, 14); contentPanel.add(lblName); } { textField = new JTextField(); textField.setBounds(135, 8, 86, 20); contentPanel.add(textField); textField.setColumns(10); } { JButton btnBrowseImage = new JButton("Browse Image"); btnBrowseImage.setBounds(10, 50, 112, 23); contentPanel.add(btnBrowseImage); btnBrowseImage.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e){ JFileChooser FileChooser = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter("png, jpg or jpeg", "png", "jpg", "jpeg"); FileChooser.setFileFilter(filter); int returnValue = FileChooser.showOpenDialog(null); if (returnValue == JFileChooser.APPROVE_OPTION){ File selectedFile = FileChooser.getSelectedFile(); String filePath = selectedFile.getAbsolutePath(); InputStream inStream = null; OutputStream outStream = null; try{ File source =new File(filePath); File dest =new File(System.getProperty("user.dir") + "/res/Images/", selectedFile.getName()); inStream = new FileInputStream(source); outStream = new FileOutputStream(dest); byte[] buffer = new byte[1024]; int length; while ((length = inStream.read(buffer)) > 0){ outStream.write(buffer, 0, length); } if (inStream != null)inStream.close(); if (outStream != null)outStream.close(); System.out.println("File Copied.."); }catch(IOException e1){ e1.printStackTrace(); } // textArea.setText("File Loaded: " + selectedFile.getName() + "\n\n\n" + "Hit 'Run Code'"); } else System.out.println("Failed to Load"); //UnitXMLReader.ChosenFile = filePath; } }); } { textField_1 = new JTextField(); textField_1.setBounds(135, 51, 271, 20); contentPanel.add(textField_1); textField_1.setColumns(10); } { JButton btnAddDefaultElement = new JButton("Add Default Element"); btnAddDefaultElement.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { addElement = new AddElementPopUp(); addElement.setVisible(true); HolonElement hl = addElement.getElement(); addElement(hl); } }); btnAddDefaultElement.setBounds(262, 95, 144, 23); contentPanel.add(btnAddDefaultElement); } { JScrollPane scrollPane = new JScrollPane(); scrollPane.setBounds(10, 84, 236, 133); contentPanel.add(scrollPane); { listModel = new DefaultListModel(); HolonElement hel = new HolonElement("Test", 100, 5); String name = hel.getEleName(); for(int i = 0; i < 11; i++){ hel.setEleName(name + i); addElement(hel); } list = new JList(listModel); scrollPane.setViewportView(list); } } { JButton btnNewButton = new JButton("Delete Default Element"); btnNewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int selectedIndex = list.getSelectedIndex(); if(selectedIndex != -1){ listModel.remove(selectedIndex); hElements.remove(selectedIndex); } } }); btnNewButton.setBounds(262, 129, 144, 23); contentPanel.add(btnNewButton); } { JPanel buttonPane = new JPanel(); buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT)); getContentPane().add(buttonPane, BorderLayout.SOUTH); { JButton okButton = new JButton("OK"); okButton.setActionCommand("OK"); buttonPane.add(okButton); getRootPane().setDefaultButton(okButton); } { JButton cancelButton = new JButton("Cancel"); cancelButton.setActionCommand("Cancel"); buttonPane.add(cancelButton); } } } public void addElement(HolonElement hl){ hElements.add(hl); listModel.addElement(hl.getAmount() + "x: " + hl.getEleName() + " " + hl.getEnergy() + "U"); } }