dominik.rieder преди 8 години
родител
ревизия
2bd9026140
променени са 5 файла, в които са добавени 151 реда и са изтрити 92 реда
  1. 1 1
      src/classes/HolonElement.java
  2. 2 2
      src/ui/controller/ObjectControl.java
  3. 55 19
      src/ui/view/AddElementPopUp.java
  4. 93 69
      src/ui/view/AddObjectPopUp.java
  5. 0 1
      src/ui/view/GUI.java

+ 1 - 1
src/classes/HolonElement.java

@@ -17,7 +17,7 @@ public class HolonElement {
 
 	
 	
-	public HolonElement(String eleName, int amount, float energy) {
+	public HolonElement(String eleName, float energy, int amount) {
 		setEleName(eleName);
 		setAmount(amount);
 		setEnergy(energy);

+ 2 - 2
src/ui/controller/ObjectControl.java

@@ -81,7 +81,7 @@ public class ObjectControl {
 	 */
 	public void addNewElementIntoCanvasObject(String object, String eleName, int amount, float energy, Type type) {
 		addElementIntoCanvasObject(searchHolonObject(object, M.getObjectsOnCanvas()),
-				new HolonElement(eleName, amount, energy), type);
+				new HolonElement(eleName, energy, amount), type);
 	}
 
 	/**
@@ -116,7 +116,7 @@ public class ObjectControl {
 			}
 		}
 		addElementIntoCategoryObject(searchHolonObject(object, cat.getObjects()),
-				new HolonElement(eleName, amount, energy), type);
+				new HolonElement(eleName, energy, amount), type);
 	}
 
 	/**

+ 55 - 19
src/ui/view/AddElementPopUp.java

@@ -2,22 +2,31 @@ package ui.view;
 
 import java.awt.BorderLayout;
 import java.awt.FlowLayout;
+import java.util.ArrayList;
 
 import javax.swing.JButton;
 import javax.swing.JDialog;
 import javax.swing.JPanel;
 import javax.swing.border.EmptyBorder;
+import javax.swing.JFrame;
 import javax.swing.JLabel;
+import javax.swing.JOptionPane;
 import javax.swing.JTextField;
 import javax.swing.JComboBox;
 import javax.swing.DefaultComboBoxModel;
 
+import classes.HolonElement;
+
+import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
+
 public class AddElementPopUp extends JDialog {
 
 	private final JPanel contentPanel = new JPanel();
-	private JTextField textField;
-	private JTextField textField_1;
-	private JTextField textField_2;
+	private JTextField elementName;
+	private JTextField providedEnergy;
+	private JTextField amount;
+	private HolonElement hl;
 
 	/**
 	 * Launch the application.
@@ -36,6 +45,8 @@ public class AddElementPopUp extends JDialog {
 	 * Create the dialog.
 	 */
 	public AddElementPopUp() {
+		super((java.awt.Frame) null, true);
+		setModalityType(java.awt.Dialog.ModalityType.APPLICATION_MODAL);
 		setBounds(100, 100, 300, 190);
 		getContentPane().setLayout(new BorderLayout());
 		contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
@@ -55,31 +66,52 @@ public class AddElementPopUp extends JDialog {
 		lblAmount.setBounds(10, 84, 46, 14);
 		contentPanel.add(lblAmount);
 		
-		textField = new JTextField();
-		textField.setBounds(140, 8, 110, 20);
-		contentPanel.add(textField);
-		textField.setColumns(10);
+		elementName = new JTextField();
+		elementName.setBounds(140, 8, 110, 20);
+		contentPanel.add(elementName);
+		elementName.setColumns(10);
 		
-		JComboBox comboBox = new JComboBox();
-		comboBox.setModel(new DefaultComboBoxModel(new String[] {"+", "-"}));
-		comboBox.setBounds(100, 46, 33, 20);
-		contentPanel.add(comboBox);
+		final JComboBox sign = new JComboBox();
+		sign.setModel(new DefaultComboBoxModel(new String[] {"+", "-"}));
+		sign.setBounds(100, 46, 33, 20);
+		contentPanel.add(sign);
 		
-		textField_1 = new JTextField();
-		textField_1.setBounds(140, 46, 110, 20);
-		contentPanel.add(textField_1);
-		textField_1.setColumns(10);
+		providedEnergy = new JTextField();
+		providedEnergy.setBounds(140, 46, 110, 20);
+		contentPanel.add(providedEnergy);
+		providedEnergy.setColumns(10);
+		providedEnergy.setText("0");
 		
-		textField_2 = new JTextField();
-		textField_2.setBounds(140, 81, 110, 20);
-		contentPanel.add(textField_2);
-		textField_2.setColumns(10);
+		amount = new JTextField();
+		amount.setBounds(140, 81, 110, 20);
+		contentPanel.add(amount);
+		amount.setColumns(10);
+		amount.setText("0");
 		{
 			JPanel buttonPane = new JPanel();
 			buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
 			getContentPane().add(buttonPane, BorderLayout.SOUTH);
 			{
 				JButton okButton = new JButton("OK");
+				okButton.addActionListener(new ActionListener() {
+					public void actionPerformed(ActionEvent arg0) {
+						if(elementName.getText().length() != 0){
+							try{
+								float energy = Float.parseFloat(providedEnergy.getText().toString());
+								int elementAmount = Integer.parseInt(amount.getText().toString());
+								if(sign.getSelectedItem().toString().equals("-")){
+									energy = energy * -1;
+								}
+								hl = new HolonElement(elementName.getText().toString(), energy, elementAmount);
+								dispose();
+							} catch(NumberFormatException e){
+								JOptionPane.showMessageDialog(new JFrame(),"Please enter numbers in the Fields amount and providedEnergy");
+							}
+						}else{
+							JOptionPane.showMessageDialog(new JFrame(), "Please enter a Name");
+						}
+					}
+				});
 				okButton.setActionCommand("OK");
 				buttonPane.add(okButton);
 				getRootPane().setDefaultButton(okButton);
@@ -91,4 +123,8 @@ public class AddElementPopUp extends JDialog {
 			}
 		}
 	}
+	
+	public HolonElement getElement(){
+		return hl;
+	}
 }

+ 93 - 69
src/ui/view/AddObjectPopUp.java

@@ -1,31 +1,40 @@
 package ui.view;
 
 import java.awt.BorderLayout;
-import java.awt.Component;
 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.JOptionPane;
 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 File selectedFile = null;
-	private String filePath = " ";
+	private ArrayList<HolonElement> hElements;
+	private DefaultListModel listModel;
+	private JList list;
 
 	/**
 	 * Launch the application.
@@ -49,6 +58,7 @@ public class AddObjectPopUp extends JDialog {
 		contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
 		getContentPane().add(contentPanel, BorderLayout.CENTER);
 		contentPanel.setLayout(null);
+		hElements = new ArrayList<HolonElement> ();
 		this.setTitle("Add Object Menu");
 		{
 			JLabel lblName = new JLabel("Name:");
@@ -62,27 +72,54 @@ public class AddObjectPopUp extends JDialog {
 			contentPanel.add(textField);
 			textField.setColumns(10);
 		}
-		{
-			textField_1 = new JTextField();
-			textField_1.setBounds(135, 51, 271, 20);
-			contentPanel.add(textField_1);
-			textField_1.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) {
-					fileChooser();
-				}
+				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;
+
+		        }
 			});
 
 		}
 		{
-			JList list = new JList();
-			list.setBounds(10, 98, 242, 130);
-			contentPanel.add(list);
+			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");
@@ -90,27 +127,52 @@ public class AddObjectPopUp extends JDialog {
 				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.addMouseListener(new MouseAdapter() {
-					public void mouseClicked(MouseEvent e) {
-						if (!textField_1.getText().equals(filePath)) {
-							Component frame = null;
-							JOptionPane.showMessageDialog(frame, "No image selected!");
-						} else {
-							copieFile();
-						}
-					}
-				});
 				okButton.setActionCommand("OK");
 				buttonPane.add(okButton);
 				getRootPane().setDefaultButton(okButton);
@@ -122,47 +184,9 @@ public class AddObjectPopUp extends JDialog {
 			}
 		}
 	}
-
-	protected void fileChooser() {
-		// TODO Auto-generated method stub
-		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) {
-			selectedFile = FileChooser.getSelectedFile();
-			filePath = selectedFile.getAbsolutePath();
-			textField_1.setText(filePath);
-		} else {
-			System.out.println("Failed to Load");
-		}
-
-	}
-
-	protected void copieFile() {
-		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();
-		}
+	
+	public void addElement(HolonElement hl){
+		hElements.add(hl);
+		listModel.addElement(hl.getAmount() + "x: " + hl.getEleName() + " " + hl.getEnergy() + "U");
 	}
-
 }

+ 0 - 1
src/ui/view/GUI.java

@@ -46,7 +46,6 @@ import classes.GlobalVariables;
 import classes.HolonObject;
 import classes.HolonSwitch;
 import classes.HolonTransformer;
-import jdk.nashorn.internal.objects.Global;
 import Interfaces.CategoryListener;
 
 import java.awt.event.ActionListener;