1
0
Fork 0
mirror of https://github.com/graphhopper/jsprit.git synced 2020-01-24 07:45:05 +01:00

improve GraphStreamViewer

This commit is contained in:
Stefan Schroeder 2013-12-12 18:29:05 +01:00
parent 9e178b681b
commit f8f75e6398

View file

@ -1,5 +1,17 @@
package jsprit.analysis.toolbox; package jsprit.analysis.toolbox;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.text.MessageFormat;
import javax.swing.BoxLayout;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSeparator;
import javax.swing.JTextField;
import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.VehicleRoutingProblem;
import jsprit.core.problem.job.Job; import jsprit.core.problem.job.Job;
import jsprit.core.problem.job.Service; import jsprit.core.problem.job.Service;
@ -70,22 +82,6 @@ public class GraphStreamViewer {
NO_LABEL, ID NO_LABEL, ID
} }
// private static class BoundingBox {
// final double minX;
// final double minY;
// final double maxX;
// final double maxY;
//
// public BoundingBox(double minX, double minY, double maxX, double maxY) {
// super();
// this.minX = minX;
// this.minY = minY;
// this.maxX = maxX;
// this.maxY = maxY;
// }
//
// }
private static class Center { private static class Center {
final double x; final double x;
final double y; final double y;
@ -108,8 +104,6 @@ public class GraphStreamViewer {
private Center center; private Center center;
// private BoundingBox boundingBox;
private VehicleRoutingProblem vrp; private VehicleRoutingProblem vrp;
private VehicleRoutingProblemSolution solution; private VehicleRoutingProblemSolution solution;
@ -166,7 +160,29 @@ public class GraphStreamViewer {
public void display(){ public void display(){
// JFrame jframe = new JFrame(); JFrame jframe = new JFrame();
JPanel basic = new JPanel();
basic.setLayout(new BoxLayout(basic,BoxLayout.Y_AXIS));
JPanel topPanel = new JPanel(new BorderLayout());
topPanel.setMaximumSize(new Dimension(450, 0));
MessageFormat format = new MessageFormat("{0,number,00}:{1,number,00}:{2,number,00}");
JFormattedTextField textField = new JFormattedTextField(format);
textField.setEditable(false);
textField.setMaximumSize(new Dimension(100,30));
textField.setMinimumSize(new Dimension(80,30));
textField.setHorizontalAlignment(JTextField.LEFT);
textField.setText("00:01:56");
topPanel.add(textField, BorderLayout.WEST);
basic.add(topPanel);
System.setProperty("org.graphstream.ui.renderer", "org.graphstream.ui.j2dviewer.J2DGraphRenderer"); System.setProperty("org.graphstream.ui.renderer", "org.graphstream.ui.j2dviewer.J2DGraphRenderer");
Graph g = new MultiGraph("g"); Graph g = new MultiGraph("g");
@ -174,28 +190,33 @@ public class GraphStreamViewer {
g.addAttribute("ui.antialias"); g.addAttribute("ui.antialias");
g.addAttribute("ui.stylesheet", styleSheet); g.addAttribute("ui.stylesheet", styleSheet);
Viewer viewer; Viewer viewer = new Viewer(g,Viewer.ThreadingModel.GRAPH_IN_ANOTHER_THREAD);
View view = viewer.addDefaultView(false);
basic.add(view);
// viewer.getDefaultView().setLayout(new BorderLayout()); // viewer.getDefaultView().setLayout(new BorderLayout());
// //
// MessageFormat format = new MessageFormat("{0,number,00}:{1,number,00}:{2,number,00}"); jframe.add(basic);
//// ////
// JFormattedTextField textField = new JFormattedTextField(format); jframe.setVisible(true);
// textField.setEditable(false); jframe.setSize(800,600);
// textField.setMaximumSize(new Dimension(100,30)); jframe.setLocationRelativeTo(null);
// textField.setMinimumSize(new Dimension(80,30)); jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// textField.setHorizontalAlignment(JTextField.LEFT);
// textField.setText("00:01:56");
// textField.s
// viewer.getDefaultView().add(textField,BorderLayout.NORTH,);
if(center != null){ if(center != null){
viewer = g.display(false); // viewer = g.display(false);
View view = viewer.getDefaultView(); // View view = viewer.getDefaultView();
view.resizeFrame(800, 600); view.resizeFrame(800, 600);
view.getCamera().setViewCenter(center.x, center.y, 0); view.getCamera().setViewCenter(center.x, center.y, 0);
view.getCamera().setViewPercent(zoomFactor); view.getCamera().setViewPercent(zoomFactor);
} }
else viewer = g.display(); // else viewer = g.display();
// viewer.getDefaultView().add(textField,BorderLayout.NORTH);
// viewer.getDefaultView().;
if(!enableAutoLayout) viewer.disableAutoLayout(); if(!enableAutoLayout) viewer.disableAutoLayout();