use of com.cburch.logisim.instance.Port in project logisim-evolution by reds-heig.
the class VhdlEntity method paintInstance.
@Override
public void paintInstance(InstancePainter painter) {
Graphics g = painter.getGraphics();
VhdlContent content = painter.getAttributeValue(CONTENT_ATTR);
FontMetrics metric = g.getFontMetrics();
Bounds bds = painter.getBounds();
int x0 = bds.getX() + (bds.getWidth() / 2);
int y0 = bds.getY() + metric.getHeight() + 12;
GraphicsUtil.drawText(g, StringUtil.resizeString(content.getName(), metric, WIDTH), x0, y0, GraphicsUtil.H_CENTER, GraphicsUtil.V_BOTTOM);
String glbLabel = painter.getAttributeValue(StdAttr.LABEL);
if (glbLabel != null) {
Font font = g.getFont();
g.setFont(painter.getAttributeValue(StdAttr.LABEL_FONT));
GraphicsUtil.drawCenteredText(g, glbLabel, bds.getX() + bds.getWidth() / 2, bds.getY() - g.getFont().getSize());
g.setFont(font);
}
g.setColor(Color.GRAY);
g.setFont(g.getFont().deriveFont((float) 10));
metric = g.getFontMetrics();
Port[] inputs = content.getInputs();
Port[] outputs = content.getOutputs();
for (int i = 0; i < inputs.length; i++) GraphicsUtil.drawText(g, StringUtil.resizeString(inputs[i].getToolTip(), metric, (WIDTH / 2) - X_PADDING), bds.getX() + 5, bds.getY() + HEIGHT - 2 + (i * PORT_GAP), GraphicsUtil.H_LEFT, GraphicsUtil.V_CENTER);
for (int i = 0; i < outputs.length; i++) GraphicsUtil.drawText(g, StringUtil.resizeString(outputs[i].getToolTip(), metric, (WIDTH / 2) - X_PADDING), bds.getX() + WIDTH - 5, bds.getY() + HEIGHT - 2 + (i * PORT_GAP), GraphicsUtil.H_RIGHT, GraphicsUtil.V_CENTER);
painter.drawBounds();
painter.drawPorts();
}
use of com.cburch.logisim.instance.Port in project logisim-evolution by reds-heig.
the class Shifter method configurePorts.
private void configurePorts(Instance instance) {
BitWidth dataWid = instance.getAttributeValue(StdAttr.WIDTH);
int data = dataWid == null ? 32 : dataWid.getWidth();
int shift = 1;
while ((1 << shift) < data) shift++;
Port[] ps = new Port[3];
ps[IN0] = new Port(-40, -10, Port.INPUT, data);
ps[IN1] = new Port(-40, 10, Port.INPUT, shift);
ps[OUT] = new Port(0, 0, Port.OUTPUT, data);
ps[IN0].setToolTip(Strings.getter("shifterInputTip"));
ps[IN1].setToolTip(Strings.getter("shifterDistanceTip"));
ps[OUT].setToolTip(Strings.getter("shifterOutputTip"));
instance.setPorts(ps);
}
use of com.cburch.logisim.instance.Port in project logisim-evolution by reds-heig.
the class Pin method configurePorts.
private void configurePorts(Instance instance) {
PinAttributes attrs = (PinAttributes) instance.getAttributeSet();
String endType = attrs.isOutput() ? Port.INPUT : Port.OUTPUT;
Port port = new Port(0, 0, endType, StdAttr.WIDTH);
if (attrs.isOutput()) {
port.setToolTip(Strings.getter("pinOutputToolTip"));
} else {
port.setToolTip(Strings.getter("pinInputToolTip"));
}
instance.setPorts(new Port[] { port });
}
use of com.cburch.logisim.instance.Port in project logisim-evolution by reds-heig.
the class PowerOnReset method configureNewInstance.
@Override
protected void configureNewInstance(Instance instance) {
instance.addAttributeListener();
instance.setPorts(new Port[] { new Port(0, 0, Port.OUTPUT, BitWidth.ONE) });
}
use of com.cburch.logisim.instance.Port in project logisim-evolution by reds-heig.
the class Probe method configureNewInstance.
//
// methods for instances
//
@Override
protected void configureNewInstance(Instance instance) {
instance.setPorts(new Port[] { new Port(0, 0, Port.INPUT, BitWidth.UNKNOWN) });
instance.addAttributeListener();
configureLabel(instance);
}
Aggregations