Jan Enders 8 سال پیش
والد
کامیت
9914b92e5f

+ 1 - 1
scopviz/src/main/java/de/tu_darmstadt/informatik/tk/scopviz/ui/ButtonManager.java

@@ -160,7 +160,7 @@ public class ButtonManager {
 				n.setAttribute("y", trueY);
 				
 				// TEST TEST TEST ATTENTION
-				PropertiesManager.setItemsProperties(n.getId());
+				PropertiesManager.setItemsProperties();
 				
 				
 				Debug.out("Created a dot on (" + trueX + "/" + trueY + ")");

+ 26 - 8
scopviz/src/main/java/de/tu_darmstadt/informatik/tk/scopviz/ui/PropertiesManager.java

@@ -1,5 +1,6 @@
 package de.tu_darmstadt.informatik.tk.scopviz.ui;
 
+import org.graphstream.graph.Edge;
 import org.graphstream.graph.Node;
 
 import de.tu_darmstadt.informatik.tk.scopviz.main.Main;
@@ -55,19 +56,36 @@ public class PropertiesManager {
 		properties.getItems().setAll(data);
 	}
 	
-	public static void setItemsProperties(String nodeID){
+	public static void setItemsProperties(){
+		Node selectedNode;
+		Edge selectedEdge;
+		String nid = Main.getInstance().getVisualizer().getSelectedNodeID();
+		String eid = Main.getInstance().getVisualizer().getSelectedEdgeID();
 		
-		Node selectedNode = Main.getInstance().getVisualizer().getGraph().getNode(nodeID);
+		selectedNode = Main.getInstance().getVisualizer().getGraph().getNode(nid);
+		selectedEdge = Main.getInstance().getVisualizer().getGraph().getEdge(eid);
 		
+		if (selectedNode == null && selectedEdge ==null){
+			return;
+		}
 		ObservableList<Pair<String, Object>> newData = FXCollections.observableArrayList();
-		
-		for(String key : selectedNode.getAttributeKeySet()){
-			
-			TextField textField = new TextField(selectedNode.getAttribute(key).toString());
-			
-			newData.add(pair(key, textField));
+		if (selectedNode != null){
+			for(String key : selectedNode.getAttributeKeySet()){
+				
+				TextField textField = new TextField(selectedNode.getAttribute(key).toString());
+				
+				newData.add(pair(key, textField));
+			}
+		} else if (selectedEdge != null){
+			for(String key : selectedEdge.getAttributeKeySet()){
+				
+				TextField textField = new TextField(selectedEdge.getAttribute(key).toString());
+				
+				newData.add(pair(key, textField));
+			}
 		}
 		
+		
 		properties.getItems().setAll(newData);
 	}
 	

+ 1 - 1
scopviz/src/main/java/de/tu_darmstadt/informatik/tk/scopviz/ui/Visualizer.java

@@ -57,7 +57,7 @@ public class Visualizer {
 		/*ViewerPipe */fromViewer = viewer.newViewerPipe();
 		fromViewer.addViewerListener(new MyViewerListener(this));
 		fromViewer.addSink(graph);
-		selectionMode = SelectionMode.SHOW_ATTRIBUTES;
+		selectionMode = SelectionMode.SELECT_EDGE;
 	}
 
 	/**

+ 11 - 2
scopviz/src/main/java/de/tu_darmstadt/informatik/tk/scopviz/ui/handlers/MyViewerListener.java

@@ -2,8 +2,10 @@ package de.tu_darmstadt.informatik.tk.scopviz.ui.handlers;
 
 import java.util.Random;
 
+import org.graphstream.graph.Edge;
 import org.graphstream.ui.view.ViewerListener;
 
+import de.tu_darmstadt.informatik.tk.scopviz.debug.Debug;
 import de.tu_darmstadt.informatik.tk.scopviz.main.SelectionMode;
 import de.tu_darmstadt.informatik.tk.scopviz.ui.PropertiesManager;
 import de.tu_darmstadt.informatik.tk.scopviz.ui.Visualizer;
@@ -56,19 +58,26 @@ public class MyViewerListener implements ViewerListener {
 			}
 			break;
 		case SELECT_EDGE:
+			Debug.out("id =" +lastClickedID);
 			if(lastClickedID==null){
 				lastClickedID=id;
 			} else {
-				v.setSelectedEdgeID(v.getGraph().getNode(lastClickedID).getEdgeToward(id));
+				Edge e = v.getGraph().getNode(lastClickedID).getEdgeToward(id);
+				if(e != null){
+				v.setSelectedEdgeID(e.getId());
 				v.setSelectedNodeID(null);
 				lastClickedID = null;
 				//v.getGraph().getEdge(v.getSelectedEdgeID()).setAttribute("ui.style", values);
+				} else {
+					lastClickedID = id;
+				}
 			}
 			break;
 		default:
+			
 			break;
-			//PropertiesManager.setItemsProperties(id);
 		}
+		PropertiesManager.setItemsProperties();
 	}
 
 	/**

+ 2 - 0
scopviz/src/main/resources/Example.graphml

@@ -35,8 +35,10 @@
 			<data key="attr0003">135</data>
 		</node>
 		<edge id="AB" source="A" target="B" directed="false">
+			<data key="attr0000">test</data>
 		</edge>
 		<edge id="BC" source="B" target="C" directed="false">
+			<data key="attr0000">test</data>
 		</edge>
 		<edge id="CD" source="C" target="D" directed="false">
 		</edge>