Pass factory via constructor
This commit is contained in:
		
							parent
							
								
									c11b1bb1c3
								
							
						
					
					
						commit
						d9e92e31af
					
				
					 1 changed files with 17 additions and 17 deletions
				
			
		|  | @ -1,7 +1,7 @@ | |||
| package de.oshgnacknak.gruphi; | ||||
| 
 | ||||
| import h07.graph.DirectedGraph; | ||||
| import h07.graph.EmptyGraphFactory; | ||||
| import h07.graph.DirectedGraphFactory; | ||||
| 
 | ||||
| import javax.swing.*; | ||||
| import java.awt.*; | ||||
|  | @ -17,18 +17,21 @@ class Gruphi extends JFrame { | |||
|     private static final double VEL = 5; | ||||
|     private static final double NEIGHBOUR_DISTANCE = 50; | ||||
| 
 | ||||
|     DirectedGraph<Node, Double> graph = newGraph(); | ||||
|     private final DirectedGraph<Node, Double> graph; | ||||
| 
 | ||||
|     MazeGenerator<Node> mazeGenerator = new MazeGenerator<>(graph, (a, b) -> | ||||
|         a.pos.dist(b.pos) <= NEIGHBOUR_DISTANCE); | ||||
|     private final MazeGenerator<Node> mazeGenerator; | ||||
| 
 | ||||
|     Node selected = null; | ||||
|     Vector vel = new Vector(0, 0); | ||||
|     private Node selected = null; | ||||
|     private final Vector vel = new Vector(0, 0); | ||||
|     private boolean running = true; | ||||
| 
 | ||||
|     Gruphi() { | ||||
|     Gruphi(DirectedGraphFactory<Node, Double> factory) { | ||||
|         super("Gruphi - The Graph GUI - By Osh"); | ||||
| 
 | ||||
|         this.graph = factory.createDirectedGraph(); | ||||
|         this. mazeGenerator = new MazeGenerator<>(graph, (a, b) -> | ||||
|             a.pos.dist(b.pos) <= NEIGHBOUR_DISTANCE); | ||||
| 
 | ||||
|         add(new Canvas(this::draw)); | ||||
|         pack(); | ||||
|         setLocationRelativeTo(null); | ||||
|  | @ -198,7 +201,7 @@ class Gruphi extends JFrame { | |||
|             .findFirst(); | ||||
|     } | ||||
| 
 | ||||
|     void draw(Drawable d) { | ||||
|     private void draw(Drawable d) { | ||||
|         d.fill(Color.BLACK); | ||||
|         d.rect(0, 0, getWidth(), getHeight()); | ||||
| 
 | ||||
|  | @ -247,20 +250,17 @@ class Gruphi extends JFrame { | |||
|         } | ||||
|     } | ||||
| 
 | ||||
|     void update() { | ||||
|     private void update() { | ||||
|         if (selected != null) { | ||||
|             selected.pos.add(vel); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     DirectedGraph<Node, Double> newGraph() { | ||||
|         return new EmptyGraphFactory<Node, Double>().createDirectedGraph(); | ||||
|     } | ||||
| 
 | ||||
|     public static void main(String[] args) { | ||||
|         var gruphi = new Gruphi(); | ||||
|         gruphi.setVisible(true); | ||||
|         gruphi.updateLoop(); | ||||
|         System.exit(0); | ||||
|         // TODO: | ||||
|         // var gruphi = new Gruphi(new SomeFactory<>()); | ||||
|         // gruphi.setVisible(true); | ||||
|         // gruphi.updateLoop(); | ||||
|         // System.exit(0); | ||||
|     } | ||||
| } | ||||
|  |  | |||
		Reference in a new issue