public void editingCanceled(CaretEvent e) { if (e.getCaret() != caret) { e.getCaret().removeCaretListener(this); return; } caret.removeCaretListener(this); caretCircuit.removeCircuitListener(this); caretCircuit = null; caretComponent = null; caretCreatingText = false; caret = null; }
public void editingStopped(CaretEvent e) { if (e.getCaret() != caret) { e.getCaret().removeCaretListener(this); return; } caret.removeCaretListener(this); caretCircuit.removeCircuitListener(this); String val = caret.getText(); boolean isEmpty = (val == null || val.equals("")); Action a; Project proj = caretCanvas.getProject(); if (caretCreatingText) { if (!isEmpty) { CircuitMutation xn = new CircuitMutation(caretCircuit); xn.add(caretComponent); a = xn.toAction(Strings.getter("addComponentAction", Text.FACTORY.getDisplayGetter())); } else { a = null; // don't add the blank text field } } else { if (isEmpty && caretComponent.getFactory() instanceof Text) { CircuitMutation xn = new CircuitMutation(caretCircuit); xn.add(caretComponent); a = xn.toAction(Strings.getter("removeComponentAction", Text.FACTORY.getDisplayGetter())); } else { Object obj = caretComponent.getFeature(TextEditable.class); if (obj == null) { // should never happen a = null; } else { TextEditable editable = (TextEditable) obj; a = editable.getCommitAction(caretCircuit, e.getOldText(), e.getText()); } } } caretCircuit = null; caretComponent = null; caretCreatingText = false; caret = null; if (a != null) proj.doAction(a); }