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);
symbolRenderer.render(gc, visibleRegion);
outlineRenderer.render(gc, visibleRegion);
}
+
+ public void setMachine(M machine)
+ {
+ this.machine = machine;
+ }
+
+ public M getMachine()
+ {
+ return machine;
+ }
}