Fixed a bug in Am2900; created dlatch8/80; relayouted some components
[Mograsim.git] / net.mograsim.machine / src / net / mograsim / machine / ModelMemory.java
index 4150318..d0459dc 100644 (file)
@@ -9,24 +9,22 @@ import net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer
 import net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer;
 import net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer.SimpleRectangularLikeParams;
 
-public abstract class ModelMemory extends ModelComponent
+public abstract class ModelMemory<M extends Machine> extends ModelComponent
 {
        private Renderer symbolRenderer;
        private Renderer outlineRenderer;
-       protected final int width, height;
+       private M machine;
 
        protected ModelMemory(LogicModelModifiable model, int width, int height, String name, String centerText, boolean callInit)
        {
                super(model, name, false);
-               this.width = width;
-               this.height = height;
 
                SimpleRectangularLikeParams rendererParams = new SimpleRectangularLikeParams();
                rendererParams.centerText = centerText;
-               rendererParams.centerTextHeight = 24;
-               rendererParams.horizontalComponentCenter = width / 100;
-               rendererParams.pinLabelHeight = 17.5;
-               rendererParams.pinLabelMargin = 2.5;
+               rendererParams.centerTextHeight = 5;
+               rendererParams.horizontalComponentCenter = width / 2;
+               rendererParams.pinLabelHeight = 2.5;
+               rendererParams.pinLabelMargin = 0.5;
                this.symbolRenderer = new SimpleRectangularLikeSymbolRenderer(this, rendererParams);
                this.outlineRenderer = new DefaultOutlineRenderer(this);
 
@@ -42,4 +40,14 @@ public abstract class ModelMemory extends ModelComponent
                symbolRenderer.render(gc, visibleRegion);
                outlineRenderer.render(gc, visibleRegion);
        }
+
+       public void setMachine(M machine)
+       {
+               this.machine = machine;
+       }
+
+       public M getMachine()
+       {
+               return machine;
+       }
 }