Merge branch 'development' of
[Mograsim.git] / net.mograsim.logic.model / src / net / mograsim / logic / model / util / ModellingTool.java
1 package net.mograsim.logic.model.util;
2
3 import net.mograsim.logic.model.model.ViewModelModifiable;
4 import net.mograsim.logic.model.model.components.GUIComponent;
5 import net.mograsim.logic.model.model.wires.GUIWire;
6 import net.mograsim.logic.model.model.wires.Pin;
7 import net.mograsim.logic.model.model.wires.WireCrossPoint;
8
9 public class ModellingTool
10 {
11         private ViewModelModifiable model;
12
13         ModellingTool(ViewModelModifiable model)
14         {
15                 this.model = model;
16         }
17
18         public GUIWire connect(GUIComponent a, GUIComponent b, String pinA, String pinB)
19         {
20                 return connect(a.getPin(pinA), b.getPin(pinB));
21         }
22
23         public GUIWire connect(WireCrossPoint a, GUIComponent b, String pinB)
24         {
25                 return connect(a.getPin(), b.getPin(pinB));
26         }
27
28         public GUIWire connect(Pin a, GUIComponent b, String pinB)
29         {
30                 return connect(a, b.getPin(pinB));
31         }
32
33         public GUIWire connect(GUIComponent a, WireCrossPoint b, String pinA)
34         {
35                 return connect(a.getPin(pinA), b.getPin());
36         }
37
38         public GUIWire connect(WireCrossPoint a, WireCrossPoint b)
39         {
40                 return connect(a.getPin(), b.getPin());
41         }
42
43         public GUIWire connect(Pin a, WireCrossPoint b)
44         {
45                 return connect(a, b.getPin());
46         }
47
48         public GUIWire connect(GUIComponent a, Pin b, String pinA)
49         {
50                 return connect(a.getPin(pinA), b);
51         }
52
53         public GUIWire connect(WireCrossPoint a, Pin b)
54         {
55                 return connect(a.getPin(), b);
56         }
57
58         public GUIWire connect(Pin a, Pin b)
59         {
60                 return new GUIWire(model, a, b);
61         }
62
63         public static ModellingTool createFor(ViewModelModifiable model)
64         {
65                 return new ModellingTool(model);
66         }
67 }