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