Added an visual-only text component and modelling helper class
[Mograsim.git] / net.mograsim.logic.ui / src / net / mograsim / logic / ui / modeladapter / componentadapters / NoLogicAdapter.java
1 package net.mograsim.logic.ui.modeladapter.componentadapters;\r
2 \r
3 import java.util.Map;\r
4 \r
5 import net.mograsim.logic.core.timeline.Timeline;\r
6 import net.mograsim.logic.core.wires.Wire;\r
7 import net.mograsim.logic.ui.model.components.GUIComponent;\r
8 import net.mograsim.logic.ui.model.wires.Pin;\r
9 import net.mograsim.logic.ui.modeladapter.LogicModelParameters;\r
10 \r
11 /**\r
12  * For GUIComponents that do not have any simulation logic behaviour\r
13  *\r
14  * @author Christian Femers\r
15  */\r
16 public class NoLogicAdapter<T extends GUIComponent> implements ComponentAdapter<T>\r
17 {\r
18         private final Class<T> guiComponentClass;\r
19 \r
20         public NoLogicAdapter(Class<T> guiComponentClass)\r
21         {\r
22                 this.guiComponentClass = guiComponentClass;\r
23         }\r
24 \r
25         @Override\r
26         public Class<T> getSupportedClass()\r
27         {\r
28                 return guiComponentClass;\r
29         }\r
30 \r
31         @Override\r
32         public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, T guiComponent, Map<Pin, Wire> logicWiresPerPin)\r
33         {\r
34                 // do nothing\r
35         }\r
36 \r
37         /**\r
38          * Creates a new {@link NoLogicAdapter} for the given GUIComponent class.\r
39          * \r
40          * @author Christian Femers\r
41          */\r
42         public static <T extends GUIComponent> NoLogicAdapter<T> forClass(Class<T> guiComponentClass)\r
43         {\r
44                 return new NoLogicAdapter<>(guiComponentClass);\r
45         }\r
46 }\r