protected void outputText(String newValue) {
   if (editpart.getPV() == null) {
     editpart.setPropertyValue(TextInputModel.PROP_TEXT, newValue);
     editpart.outputPVValue(newValue);
   } else {
     // PV may not be changed instantly, so recover it to old text first.
     text.setText(model.getText());
     // Write PV and update the text with new PV value if writing succeed.
     editpart.outputPVValue(newValue);
   }
 }
  @Override
  public void registerPropertyChangeHandlers() {
    editpart.removeAllPropertyChangeHandlers(TextInputModel.PROP_ALIGN_H);

    PropertyChangeListener updatePropSheetListener =
        new PropertyChangeListener() {

          @Override
          public void propertyChange(PropertyChangeEvent evt) {
            updatePropSheet();
          }
        };

    model
        .getProperty(TextInputModel.PROP_MULTILINE_INPUT)
        .addPropertyChangeListener(updatePropSheetListener);

    IWidgetPropertyChangeHandler handler =
        new IWidgetPropertyChangeHandler() {

          @Override
          public boolean handleChange(Object oldValue, Object newValue, IFigure figure) {
            AbstractContainerModel parent = model.getParent();
            parent.removeChild(model);
            parent.addChild(model);
            parent.selectWidget(model, true);
            return false;
          }
        };
    editpart.setPropertyChangeHandler(TextInputModel.PROP_SHOW_NATIVE_BORDER, handler);
    editpart.setPropertyChangeHandler(TextInputModel.PROP_MULTILINE_INPUT, handler);
    editpart.setPropertyChangeHandler(TextInputModel.PROP_WRAP_WORDS, handler);
    editpart.setPropertyChangeHandler(TextInputModel.PROP_SHOW_H_SCROLL, handler);
    editpart.setPropertyChangeHandler(TextInputModel.PROP_SHOW_V_SCROLL, handler);
    editpart.setPropertyChangeHandler(TextInputModel.PROP_PASSWORD_INPUT, handler);
    editpart.setPropertyChangeHandler(TextInputModel.PROP_ALIGN_H, handler);
  }
 public void performAutoSize() {
   model.setSize(((NativeTextFigure) editpart.getFigure()).getAutoSizeDimension());
 }
 @Override
 public void createEditPolicies() {
   if (editpart.getExecutionMode() == ExecutionMode.RUN_MODE)
     editpart.installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, null);
 }