Search in sources :

Example 11 with Action

use of com.cburch.logisim.proj.Action in project logisim-evolution by reds-heig.

the class AddTool method processKeyEvent.

private void processKeyEvent(Canvas canvas, KeyEvent event, int type) {
    KeyConfigurator handler = keyHandler;
    if (!keyHandlerTried) {
        ComponentFactory source = getFactory();
        AttributeSet baseAttrs = getBaseAttributes();
        handler = (KeyConfigurator) source.getFeature(KeyConfigurator.class, baseAttrs);
        keyHandler = handler;
        keyHandlerTried = true;
    }
    if (handler != null) {
        AttributeSet baseAttrs = getBaseAttributes();
        KeyConfigurationEvent e = new KeyConfigurationEvent(type, baseAttrs, event, this);
        KeyConfigurationResult r = handler.keyEventReceived(e);
        if (r != null) {
            Action act = ToolAttributeAction.create(r);
            canvas.getProject().doAction(act);
        }
    }
}
Also used : KeyConfigurationResult(com.cburch.logisim.tools.key.KeyConfigurationResult) Action(com.cburch.logisim.proj.Action) ToolAttributeAction(com.cburch.logisim.gui.main.ToolAttributeAction) AttributeSet(com.cburch.logisim.data.AttributeSet) KeyConfigurationEvent(com.cburch.logisim.tools.key.KeyConfigurationEvent) ComponentFactory(com.cburch.logisim.comp.ComponentFactory) KeyConfigurator(com.cburch.logisim.tools.key.KeyConfigurator)

Example 12 with Action

use of com.cburch.logisim.proj.Action in project logisim-evolution by reds-heig.

the class WiringTool method mouseReleased.

@Override
public void mouseReleased(Canvas canvas, Graphics g, MouseEvent e) {
    if (!exists)
        return;
    Canvas.snapToGrid(e);
    int curX = e.getX();
    int curY = e.getY();
    if (computeMove(curX, curY)) {
        cur = Location.create(curX, curY);
    }
    if (hasDragged) {
        exists = false;
        super.mouseReleased(canvas, g, e);
        ArrayList<Wire> ws = new ArrayList<Wire>(2);
        if (cur.getY() == start.getY() || cur.getX() == start.getX()) {
            Wire w = Wire.create(cur, start);
            w = checkForRepairs(canvas, w, w.getEnd0());
            w = checkForRepairs(canvas, w, w.getEnd1());
            if (performShortening(canvas, start, cur)) {
                return;
            }
            if (w.getLength() > 0)
                ws.add(w);
        } else {
            Location m;
            if (direction == HORIZONTAL) {
                m = Location.create(cur.getX(), start.getY());
            } else {
                m = Location.create(start.getX(), cur.getY());
            }
            Wire w0 = Wire.create(start, m);
            Wire w1 = Wire.create(m, cur);
            w0 = checkForRepairs(canvas, w0, start);
            w1 = checkForRepairs(canvas, w1, cur);
            if (w0.getLength() > 0)
                ws.add(w0);
            if (w1.getLength() > 0)
                ws.add(w1);
        }
        if (ws.size() > 0) {
            CircuitMutation mutation = new CircuitMutation(canvas.getCircuit());
            mutation.addAll(ws);
            StringGetter desc;
            if (ws.size() == 1)
                desc = Strings.getter("addWireAction");
            else
                desc = Strings.getter("addWiresAction");
            Action act = mutation.toAction(desc);
            canvas.getProject().doAction(act);
            lastAction = act;
        }
    }
}
Also used : Action(com.cburch.logisim.proj.Action) ArrayList(java.util.ArrayList) CircuitMutation(com.cburch.logisim.circuit.CircuitMutation) Wire(com.cburch.logisim.circuit.Wire) StringGetter(com.cburch.logisim.util.StringGetter) Location(com.cburch.logisim.data.Location)

Aggregations

Action (com.cburch.logisim.proj.Action)12 Component (com.cburch.logisim.comp.Component)5 Project (com.cburch.logisim.proj.Project)5 Circuit (com.cburch.logisim.circuit.Circuit)4 CircuitMutation (com.cburch.logisim.circuit.CircuitMutation)4 ToolAttributeAction (com.cburch.logisim.gui.main.ToolAttributeAction)4 CircuitException (com.cburch.logisim.circuit.CircuitException)3 ComponentFactory (com.cburch.logisim.comp.ComponentFactory)3 AttributeSet (com.cburch.logisim.data.AttributeSet)3 SubcircuitFactory (com.cburch.logisim.circuit.SubcircuitFactory)2 Wire (com.cburch.logisim.circuit.Wire)2 Bounds (com.cburch.logisim.data.Bounds)2 Direction (com.cburch.logisim.data.Direction)2 Location (com.cburch.logisim.data.Location)2 Selection (com.cburch.logisim.gui.main.Selection)2 ReplacementMap (com.cburch.logisim.circuit.ReplacementMap)1 Attribute (com.cburch.logisim.data.Attribute)1 AddTool (com.cburch.logisim.tools.AddTool)1 SetAttributeAction (com.cburch.logisim.tools.SetAttributeAction)1 KeyConfigurationEvent (com.cburch.logisim.tools.key.KeyConfigurationEvent)1