X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.ui%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fui%2Fmodel%2Fcomponents%2FSimpleRectangularSubmodelComponent.java;h=3373553026cf30a83d9dfc1c457a7c60e33588a2;hb=b2f3d0b16783289fab229c667c18d61f84119bbd;hp=f537eec220296ec27940a7bbc2a22bbe33548367;hpb=e7eb7ef33104e3795a0f312623fd2b947392aea1;p=Mograsim.git diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/SimpleRectangularSubmodelComponent.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/SimpleRectangularSubmodelComponent.java index f537eec2..33735530 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/SimpleRectangularSubmodelComponent.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/SimpleRectangularSubmodelComponent.java @@ -2,7 +2,6 @@ package net.mograsim.logic.ui.model.components; import java.util.ArrayList; import java.util.Collections; -import java.util.Iterator; import java.util.List; import net.haspamelodica.swt.helper.gcs.GeneralGC; @@ -10,10 +9,7 @@ import net.haspamelodica.swt.helper.swtobjectwrappers.Font; import net.haspamelodica.swt.helper.swtobjectwrappers.Point; import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; import net.mograsim.logic.ui.model.ViewModelModifiable; -import net.mograsim.logic.ui.model.components.ComponentParams.InnerComponentParams; -import net.mograsim.logic.ui.model.components.ComponentParams.InnerPinParams; -import net.mograsim.logic.ui.model.components.ComponentParams.InnerWireParams; -import net.mograsim.logic.ui.model.wires.GUIWire; +import net.mograsim.logic.ui.model.components.params.RectComponentParams; import net.mograsim.logic.ui.model.wires.Pin; public class SimpleRectangularSubmodelComponent extends SubmodelComponent @@ -128,55 +124,14 @@ public class SimpleRectangularSubmodelComponent extends SubmodelComponent gc.drawRectangle(getBounds()); } - public ComponentParams calculateParams() + public RectComponentParams calculateRectParams() { - ComponentParams params = new ComponentParams(); + RectComponentParams params = new RectComponentParams(); params.displayName = label; params.inputCount = inputSupermodelPins.size(); params.outputCount = outputSubmodelPins.size(); params.logicWidth = logicWidth; - params.innerScale = getSubmodelScale(); - - List compList = submodelModifiable.getComponents(); - Iterator componentIt = compList.iterator(); - componentIt.next(); // Skip inner SubmodelInterface - InnerComponentParams[] comps = new InnerComponentParams[compList.size() - 1]; - int i = 0; - while (componentIt.hasNext()) - { - GUIComponent component = componentIt.next(); - InnerComponentParams inner = new InnerComponentParams(); - comps[i] = inner; - inner.logicWidth = component.getPins().get(0).logicWidth; // This could be done a little more elegantly - Rectangle bounds = component.getBounds(); - inner.pos = new Point(bounds.x, bounds.y); - if (component instanceof GUICustomComponent) - inner.type = "file:" + ((GUICustomComponent) component).getPath(); - else - inner.type = "class:" + component.getClass().getCanonicalName(); - i++; - } - params.subComps = comps; - - List wireList = submodelModifiable.getWires(); - InnerWireParams wires[] = new InnerWireParams[wireList.size()]; - i = 0; - for (GUIWire wire : wireList) - { - InnerWireParams inner = new InnerWireParams(); - wires[i] = inner; - InnerPinParams pin1Params = new InnerPinParams(), pin2Params = new InnerPinParams(); - - pin1Params.pinIndex = wire.getPin1().component.getPins().indexOf(wire.getPin1()); - pin1Params.compId = compList.indexOf(wire.getPin1().component); - pin2Params.pinIndex = wire.getPin2().component.getPins().indexOf(wire.getPin2()); - pin2Params.compId = compList.indexOf(wire.getPin2().component); - inner.pin1 = pin1Params; - inner.pin2 = pin2Params; - inner.path = wire.getPath(); - i++; - } - params.innerWires = wires; + params.composition = calculateCompositionParams(); return params; } } \ No newline at end of file