use of com.cburch.logisim.std.hdl.VhdlContent in project logisim-evolution by reds-heig.
the class TclGeneric 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.std.hdl.VhdlContent in project logisim-evolution by reds-heig.
the class TclGeneric method updatePorts.
@Override
void updatePorts(Instance instance) {
VhdlContent content = instance.getAttributeValue(CONTENT_ATTR);
instance.setPorts(content.getPorts());
setPorts(content.getPorts());
}
use of com.cburch.logisim.std.hdl.VhdlContent in project logisim-evolution by reds-heig.
the class TclGeneric method configureNewInstance.
@Override
protected void configureNewInstance(Instance instance) {
VhdlContent content = instance.getAttributeValue(CONTENT_ATTR);
TclGenericListener listener = new TclGenericListener(instance);
contentListeners.put(instance, listener);
content.addHdlModelListener(listener);
instance.addAttributeListener();
updatePorts(instance);
}
use of com.cburch.logisim.std.hdl.VhdlContent in project logisim-evolution by reds-heig.
the class TclGeneric method getOffsetBounds.
@Override
public Bounds getOffsetBounds(AttributeSet attrs) {
VhdlContent content = attrs.getValue(CONTENT_ATTR);
int nbInputs = content.getInputsNumber();
int nbOutputs = content.getOutputsNumber();
return Bounds.create(0, 0, WIDTH, Math.max(nbInputs, nbOutputs) * PORT_GAP + HEIGHT);
}
use of com.cburch.logisim.std.hdl.VhdlContent in project logisim-evolution by reds-heig.
the class TclGenericAttributes method setValue.
@Override
public <V> void setValue(Attribute<V> attr, V value) {
if (attr == TclGeneric.CONTENT_ATTR) {
VhdlContent newContent = (VhdlContent) value;
if (!vhdlEntitiy.equals(newContent))
vhdlEntitiy = newContent;
fireAttributeValueChanged(attr, value, null);
} else {
super.setValue(attr, value);
}
}
Aggregations