Restructured the Preferences system
[Mograsim.git] / plugins / net.mograsim.logic.model / src / net / mograsim / logic / model / model / components / submodels / SubmodelInterface.java
1 package net.mograsim.logic.model.model.components.submodels;
2
3 import net.haspamelodica.swt.helper.gcs.GeneralGC;
4 import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
5 import net.mograsim.logic.model.model.LogicModelModifiable;
6 import net.mograsim.logic.model.model.components.ModelComponent;
7 import net.mograsim.logic.model.model.wires.Pin;
8 import net.mograsim.logic.model.preferences.RenderPreferences;
9 import net.mograsim.logic.model.serializing.IdentifyParams;
10
11 public class SubmodelInterface extends ModelComponent
12 {
13         public SubmodelInterface(LogicModelModifiable model)
14         {
15                 super(model, SubmodelComponent.SUBMODEL_INTERFACE_NAME, true);
16         }
17
18         @Override
19         public void render(GeneralGC gc, RenderPreferences renderPrefs, Rectangle visibleRegion)
20         {// nothing to do here
21         }
22
23         @Override
24         public String getIDForSerializing(IdentifyParams idParams)
25         {
26                 throw new UnsupportedOperationException("A SubmodelInterface can't be serialized. Use SubmodelComponent.addSubmodelInterface");
27         }
28
29         /**
30          * {@inheritDoc}<br>
31          * This method is only marked public in {@link SubmodelInterface} for {@link SubmodelComponent} to be able to add / remove pins to /
32          * from a SubmodelInterface.<br>
33          * 
34          * @see ModelComponent#removePin(Pin)
35          * 
36          * @author Daniel Kirschten
37          */
38         @Override
39         public void addPin(Pin pin)
40         {
41                 super.addPin(pin);
42         }
43
44         /**
45          * {@inheritDoc}<br>
46          * This method is only marked public in {@link SubmodelInterface} for {@link SubmodelComponent} to be able to add / remove pins to /
47          * from a SubmodelInterface.<br>
48          * 
49          * @see ModelComponent#removePin(Pin)
50          * 
51          * @author Daniel Kirschten
52          */
53         @Override
54         protected void removePin(String name)
55         {
56                 super.removePin(name);
57         }
58 }