import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
import net.haspamelodica.swt.helper.gcs.GeneralGC;
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.params.SubmodelComponentParams;
import net.mograsim.logic.ui.model.wires.Pin;
public class SimpleRectangularSubmodelComponent extends SubmodelComponent
{
+ public static String kLabel = "label", kInCount = "input_count", kOutCount = "output_count", kLogicWidth = "logic_width";
+
private static final double width = 35;
private static final double pinDistance = 10;
- private static final double minHeight = 25;
private static final double fontHeight = 5;
private final String label;
}
@Override
- protected void renderSymbol(GeneralGC gc)
+ protected void renderSymbol(GeneralGC gc, Rectangle visibleRegion)
{
double posX = getBounds().x;
double posY = getBounds().y;
}
@Override
- protected void renderOutline(GeneralGC gc)
+ protected void renderOutline(GeneralGC gc, Rectangle visibleRegion)
{
gc.drawRectangle(getBounds());
}
+
+ @Override
+ public SubmodelComponentParams calculateParams()
+ {
+ SubmodelComponentParams ret = super.calculateParams();
+ ret.type = SimpleRectangularSubmodelComponent.class.getSimpleName();
+ Map<String, Object> m = new TreeMap<>();
+ m.put(kLabel, label);
+ m.put(kInCount, inputSupermodelPins.size());
+ m.put(kOutCount, outputSupermodelPins.size());
+ m.put(kLogicWidth, logicWidth);
+ ret.specialized = m;
+ return ret;
+ }
}
\ No newline at end of file