@Override public void bnaModelChanged(BNAModelEvent evt) { if (evt.getEventType() == BNAModelEvent.EventType.THING_REMOVED) { EditTextLogicData data = evt.getTargetThing().get(DATA_KEY); if (data != null) { SWTTextThing tt = (SWTTextThing) evt.getTargetThing(); IThing t = evt.getSource().getThing(data.thingID); if (t instanceof IHasMutableText && UserEditableUtils.isEditableForAnyQualities(t, IHasMutableText.USER_MAY_EDIT_TEXT)) { BNAOperations.set("Text", getBNAModel(), t, IHasText.TEXT_KEY, tt.getText()); } else if (t != null && UserEditableUtils.isEditableForAnyQualities(t, IHasToolTip.USER_MAY_EDIT_TOOL_TIP)) { BNAOperations.set("Text", getBNAModel(), t, IHasToolTip.TOOL_TIP_KEY, tt.getText()); } } } }
private void initEdit(IThing forThing) { checkNotNull(forThing); IBNAModel model = getBNAModel(); if (model != null) { Point p = checkNotNull(BNAUtils.getCentralPoint(forThing)); SWTTextThing tt = model.addThing(new SWTTextThing(null), forThing); tt.set(DATA_KEY, new EditTextLogicData(forThing.getID())); String text = ""; if (forThing instanceof IHasText) { text = ((IHasText) forThing).getText(); } else { text = ToolTipLogic.getToolTip(forThing); } tt.setText(text); tt.setBoundingBox(new Rectangle(p.x, p.y, 0, 0)); } }