Search in sources :

Example 26 with Port

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();
}
Also used : Graphics(java.awt.Graphics) FontMetrics(java.awt.FontMetrics) Bounds(com.cburch.logisim.data.Bounds) Port(com.cburch.logisim.instance.Port) Font(java.awt.Font)

Example 27 with Port

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);
}
Also used : BitWidth(com.cburch.logisim.data.BitWidth) Port(com.cburch.logisim.instance.Port)

Example 28 with Port

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 });
}
Also used : Port(com.cburch.logisim.instance.Port)

Example 29 with 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) });
}
Also used : Port(com.cburch.logisim.instance.Port)

Example 30 with Port

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);
}
Also used : Port(com.cburch.logisim.instance.Port)

Aggregations

Port (com.cburch.logisim.instance.Port)40 BitWidth (com.cburch.logisim.data.BitWidth)12 Direction (com.cburch.logisim.data.Direction)10 Location (com.cburch.logisim.data.Location)9 Bounds (com.cburch.logisim.data.Bounds)6 Value (com.cburch.logisim.data.Value)3 Font (java.awt.Font)3 FontMetrics (java.awt.FontMetrics)3 Graphics (java.awt.Graphics)3 IOException (java.io.IOException)2 Component (com.cburch.logisim.comp.Component)1 AttributeSet (com.cburch.logisim.data.AttributeSet)1 Instance (com.cburch.logisim.instance.Instance)1 InstanceState (com.cburch.logisim.instance.InstanceState)1 VhdlContent (com.cburch.logisim.std.hdl.VhdlContent)1 FileNotFoundException (java.io.FileNotFoundException)1 PrintWriter (java.io.PrintWriter)1 UnsupportedEncodingException (java.io.UnsupportedEncodingException)1 Date (java.util.Date)1 HashMap (java.util.HashMap)1