Explorar el Código

Fixes loading/saving of graph points

Andreas T. Meyer-Berg hace 6 años
padre
commit
491d547fa5

+ 10 - 1
src/ui/controller/CategoryController.java

@@ -8,6 +8,7 @@ import classes.HolonElement;
 import classes.HolonObject;
 import classes.HolonSwitch;
 import classes.HolonTransformer;
+import classes.Pair;
 import interfaces.CategoryListener;
 import ui.model.Model;
 
@@ -120,14 +121,22 @@ public class CategoryController {
 	 */
 	public void addObject(Category category, AbstractCpsObject object) {
 		int i = 0;
+		boolean updateElementSaves = false;
+		String name = "";
 		while (mpC.searchCatObj(category, object.getObjName()) != null) {
+			updateElementSaves = true;
 			if (object.getObjName().contains("_"))
 				object.setObjName(object.getObjName().substring(0, object.getObjName().indexOf('_')));
-			String name = object.getObjName() + "_" + i;
+			name = object.getObjName() + "_" + i;
 			object.setObjName(name);
 			object.setName(name);
 			i++;
 		}
+		if(updateElementSaves && object instanceof HolonObject){
+			for(HolonElement e: ((HolonObject)object).getElements()){
+				e.setSaving(new Pair<String,String>(e.getSaving().getKey(), name));
+			}
+		}
 		category.getObjIdx().put(object.getObjName(), category.getObjects().size());
 		category.getObjects().add(object);
 		notifyCatListeners();

+ 8 - 2
src/ui/controller/LoadController.java

@@ -1,14 +1,17 @@
 package ui.controller;
 
 import classes.*;
+
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;
+
 import org.apache.commons.compress.archivers.ArchiveEntry;
 import org.apache.commons.compress.archivers.ArchiveException;
 import org.apache.commons.compress.archivers.ArchiveInputStream;
 import org.apache.commons.compress.archivers.ArchiveStreamFactory;
 import org.apache.commons.compress.utils.IOUtils;
+
 import ui.model.Model;
 
 import java.awt.*;
@@ -164,7 +167,7 @@ public class LoadController {
             if (key.contains("CGOBJECT"))
                 loadCategoryObject(json.get(key));
             if (key.contains("CGELEMENT"))
-                loadCategoryElements(json.get(key));
+                loadCategoryElements(json.get(key), eleDispatch);//TODO
             if (key.contains("CVSOBJECT"))
                 loadCanvasObject(json.get(key), objDispatch);
             if (key.contains("CVSELEMENT"))
@@ -242,10 +245,12 @@ public class LoadController {
 
     /**
      * Load a given Element in Category by Deserialization
+     * @param eleDispatch 
      */
-    private void loadCategoryElements(JsonElement jsonElement) {
+    private void loadCategoryElements(JsonElement jsonElement, HashMap<Integer, HolonElement> eleDispatch) {
         HolonElement temp = model.getGson().fromJson(jsonElement.getAsJsonObject().get("properties").getAsJsonObject(),
                 HolonElement.class);
+        eleDispatch.put(temp.getId(), temp);
         initElements(temp);
         objC.addElementIntoCategoryObject(temp.getSaving().getKey(), temp.getSaving().getValue(), temp);
     }
@@ -375,6 +380,7 @@ public class LoadController {
                 break;
             case ELEMENT:
                 HolonElement ele = eleDispatch.get(sav);
+                ele.setGraphPoints(graphpoint);//TODO?
                 break;
             default:
                 break;

+ 7 - 7
src/ui/view/CreateTemplatePopUp.java

@@ -200,7 +200,7 @@ public class CreateTemplatePopUp extends JDialog {
 		listModel = new DefaultListModel<String>();
 		list = new JList<String>(listModel);
 		list.setBounds(12, 118, 221, 166);
-		contentPanel.add(list);
+
 		/**
 		 * Add Elements to List
 		 */
@@ -219,7 +219,7 @@ public class CreateTemplatePopUp extends JDialog {
 		 * Delete Element Button
 		 */
 		JButton btnDeleteElement = new JButton("Delete Element");
-		btnDeleteElement.setBounds(245, 199, 140, 25);
+		btnDeleteElement.setBounds(268, 199, 140, 25);
 		contentPanel.add(btnDeleteElement);
 		btnDeleteElement.addActionListener(e->removeElement());
 		
@@ -227,7 +227,7 @@ public class CreateTemplatePopUp extends JDialog {
 		 * Edit Element Button
 		 */
 		JButton btnEditElement = new JButton("Edit Element");
-		btnEditElement.setBounds(245, 161, 140, 25);
+		btnEditElement.setBounds(268, 161, 140, 25);
 		contentPanel.add(btnEditElement);
 		btnEditElement.addActionListener(e->editElement());
 		
@@ -235,7 +235,7 @@ public class CreateTemplatePopUp extends JDialog {
 		 * Add Element Button
 		 */
 		JButton btnAddElement = new JButton("Add Element");
-		btnAddElement.setBounds(245, 123, 140, 25);
+		btnAddElement.setBounds(268, 123, 140, 25);
 		contentPanel.add(btnAddElement);
 		btnAddElement.addActionListener(e->addElement());
 	
@@ -243,7 +243,7 @@ public class CreateTemplatePopUp extends JDialog {
 		 * Cancel Button
 		 */
 		JButton btnCancel = new JButton("Cancel");
-		btnCancel.setBounds(349, 257, 97, 25);
+		btnCancel.setBounds(372, 257, 74, 25);
 		contentPanel.add(btnCancel);
 		btnCancel.addActionListener(e -> dispose());
 		
@@ -251,7 +251,7 @@ public class CreateTemplatePopUp extends JDialog {
 		 * Add Template Button
 		 */
 		JButton btnAddTemplate = new JButton("Add Template");
-		btnAddTemplate.setBounds(235, 257, 113, 25);
+		btnAddTemplate.setBounds(257, 257, 113, 25);
 		contentPanel.add(btnAddTemplate);
 		btnAddTemplate.addActionListener(e->createTemplate());
 		
@@ -289,7 +289,7 @@ public class CreateTemplatePopUp extends JDialog {
 		try {
 			template.setName(textField_name.getText());
 			template.setImage(textField_imagePath.getText());
-			template.getElements().forEach(ele -> ele.setSaving(new Pair(choice.getSelectedItem(), template.getName())));
+			template.getElements().forEach(ele -> ele.setSaving(new Pair<String, String>(choice.getSelectedItem(), template.getName())));
 			controller.addObject(controller.searchCategory(choice.getItem(choice.getSelectedIndex())), template.getName(), template.getElements(), template.getImage());
 			this.dispose();
 		} catch (IOException e) {