Sfoglia il codice sorgente

Implemented pumping on every mouse release

Jan Enders 7 anni fa
parent
commit
568d038163

+ 5 - 0
scopviz/pom.xml

@@ -28,5 +28,10 @@
     	<artifactId>gs-core</artifactId>
     	<version>1.3</version>
     </dependency>
+    <dependency>
+    	<groupId>org.graphstream</groupId>
+    	<artifactId>gs-algo</artifactId>
+    	<version>1.3</version>
+    </dependency>
   </dependencies>
 </project>

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

@@ -6,6 +6,7 @@ import org.graphstream.graph.Graph;
 import org.graphstream.graph.Node;
 import org.graphstream.ui.geom.Vector3;
 import org.graphstream.ui.swingViewer.util.GraphMetrics;
+import org.graphstream.algorithm.Toolkit;
 
 import de.tu_darmstadt.informatik.tk.scopviz.debug.Debug;
 import de.tu_darmstadt.informatik.tk.scopviz.main.Main;
@@ -139,6 +140,7 @@ public class ButtonManager {
 			Visualizer visualizer = Main.getInstance().getVisualizer();
 			Modus currentMod = Main.getInstance().getModus();
 			Graph graph = visualizer.getGraph();
+			//visualizer.getView().
 			double x = event.getX();
 			double trueX = (x - 45) / 3 + 100;
 			double y = event.getY();
@@ -160,8 +162,9 @@ public class ButtonManager {
 				String id = null;
 				while (itr.hasNext()) {
 					Node curN = itr.next();
-					double nodeX = curN.getAttribute("x");
-					double nodeY = curN.getAttribute("y");
+					double pos[] = Toolkit.nodePosition(curN);
+					double nodeX = /*curN.getAttribute("x")*/ pos[0];
+					double nodeY = /* curN.getAttribute("y")*/ pos[1];
 					double curD = Math.sqrt(Math.pow(nodeX - trueX, 2.0) + Math.pow(nodeY - trueY, 2.0));
 					Debug.out("+" + curN.getId() + " (" + nodeX + "/" + nodeY + ")");
 					if (curD < d) {

+ 15 - 0
scopviz/src/main/java/de/tu_darmstadt/informatik/tk/scopviz/ui/GUIController.java

@@ -5,16 +5,19 @@ import java.util.ResourceBundle;
 
 import javax.swing.JPanel;
 
+import de.tu_darmstadt.informatik.tk.scopviz.debug.Debug;
 import de.tu_darmstadt.informatik.tk.scopviz.main.Main;
 import de.tu_darmstadt.informatik.tk.scopviz.ui.handlers.ResizeListener;
 import javafx.embed.swing.SwingNode;
 import javafx.event.ActionEvent;
 import javafx.event.EventHandler;
+import javafx.event.EventType;
 import javafx.fxml.FXML;
 import javafx.fxml.Initializable;
 import javafx.scene.control.Button;
 import javafx.scene.control.ListView;
 import javafx.scene.control.ScrollPane;
+import javafx.scene.input.MouseEvent;
 import javafx.scene.layout.Pane;
 
 /**
@@ -87,6 +90,8 @@ public class GUIController implements Initializable {
 		PropertiesManager.initialize(properties);
 		ButtonManager.initialize(this);
 
+		
+		
 		// Bind all the handlers to their corresponding UI elements
 		initializeZoomButtons();
 		initializeCreateButtons();
@@ -124,6 +129,16 @@ public class GUIController implements Initializable {
 	 * Sets the minimum size and adds the handlers to the graph display.
 	 */
 	private void initializeDisplayPane() {
+		
+		//swingNode.onMouseReleasedProperty().addListener(new SomethingHappenedListener());
+		//swingNode.onMousePressedProperty().addListener(new SomethingHappenedListener());
+		swingNode.setOnMouseReleased(new EventHandler<MouseEvent>(){
+			public void handle(MouseEvent evt){
+				Debug.out("pump!");
+				Main.getInstance().getVisualizer().getFromViewer().pump();
+			}
+		});
+		
 		pane.heightProperty().addListener(new ResizeListener(swingNode, pane));
 		pane.widthProperty().addListener(new ResizeListener(swingNode, pane));
 		swingNode.setContent((JPanel) Main.getInstance().getVisualizer().getView());

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

@@ -37,6 +37,9 @@ public class Visualizer {
 	// View Panel of the Graph
 	private ViewPanel view;
 
+	private Viewer viewer;
+	private ViewerPipe fromViewer;
+
 	/**
 	 * Creates a new visualizer for the given graph.
 	 * 
@@ -45,10 +48,10 @@ public class Visualizer {
 	 */
 	public Visualizer(Graph graph) {
 		g = graph;
-		Viewer viewer = new Viewer(g, Viewer.ThreadingModel.GRAPH_IN_ANOTHER_THREAD);
+		/*Viewer*/ viewer = new Viewer(g, Viewer.ThreadingModel.GRAPH_IN_ANOTHER_THREAD);
 		view = viewer.addDefaultView(false);
 		viewer.setCloseFramePolicy(Viewer.CloseFramePolicy.EXIT);
-		ViewerPipe fromViewer = viewer.newViewerPipe();
+		/*ViewerPipe */fromViewer = viewer.newViewerPipe();
 		fromViewer.addViewerListener(new MyViewerListener(this));
 		fromViewer.addSink(graph);
 	}
@@ -226,4 +229,8 @@ public class Visualizer {
 		view.getCamera().setViewPercent(view.getCamera().getViewPercent() * 1.05);
 	}
 
+	public ViewerPipe getFromViewer() {
+		return fromViewer;
+	}
+	
 }