Search in sources :

Example 6 with PROP_BORDER_STYLE

use of org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_BORDER_STYLE in project yamcs-studio by yamcs.

the class TextUpdateEditPart method registerPropertyChangeHandlers.

@Override
protected void registerPropertyChangeHandlers() {
    setPropertyChangeHandler(PROP_TEXT, (oldValue, newValue, figure) -> {
        setFigureText((String) newValue);
        if (isAutoSize) {
            Display.getCurrent().timerExec(10, this::performAutoSize);
        }
        return true;
    });
    setPropertyChangeHandler(PROP_FONT, (oldValue, newValue, figure) -> {
        figure.setFont(CustomMediaFactory.getInstance().getFont(((OPIFont) newValue).getFontData()));
        return true;
    });
    IWidgetPropertyChangeHandler handler = (oldValue, newValue, figure) -> {
        Display.getCurrent().timerExec(10, () -> {
            if (getWidgetModel().isAutoSize()) {
                performAutoSize();
                figure.revalidate();
            }
        });
        return true;
    };
    setPropertyChangeHandler(PROP_FONT, handler);
    setPropertyChangeHandler(PROP_BORDER_STYLE, handler);
    setPropertyChangeHandler(PROP_BORDER_WIDTH, handler);
    setPropertyChangeHandler(PROP_TRANSPARENT, (oldValue, newValue, figure) -> {
        figure.setOpaque(!(Boolean) newValue);
        return true;
    });
    setPropertyChangeHandler(PROP_AUTOSIZE, (oldValue, newValue, figure) -> {
        isAutoSize = (Boolean) newValue;
        if ((Boolean) newValue) {
            performAutoSize();
            figure.revalidate();
        }
        return true;
    });
    setPropertyChangeHandler(PROP_ALIGN_H, (oldValue, newValue, figure) -> {
        if (figure instanceof TextFigure) {
            ((TextFigure) figure).setHorizontalAlignment(H_ALIGN.values()[(Integer) newValue]);
        }
        return true;
    });
    setPropertyChangeHandler(PROP_ALIGN_V, (oldValue, newValue, figure) -> {
        if (figure instanceof TextFigure) {
            ((TextFigure) figure).setVerticalAlignment(V_ALIGN.values()[(Integer) newValue]);
        }
        return true;
    });
    setPropertyChangeHandler(PROP_PVVALUE, (oldValue, newValue, figure) -> {
        if (newValue == null) {
            return false;
        }
        formatValue(newValue, PROP_PVVALUE);
        return false;
    });
    setPropertyChangeHandler(PROP_FORMAT_TYPE, (oldValue, newValue, figure) -> {
        format = FormatEnum.values()[(Integer) newValue];
        formatValue(newValue, PROP_FORMAT_TYPE);
        return true;
    });
    setPropertyChangeHandler(PROP_PRECISION, (oldValue, newValue, figure) -> {
        precision = (Integer) newValue;
        formatValue(newValue, PROP_PRECISION);
        return true;
    });
    setPropertyChangeHandler(PROP_PRECISION_FROM_DB, (oldValue, newValue, figure) -> {
        isPrecisionFromDB = (Boolean) newValue;
        formatValue(newValue, PROP_PRECISION_FROM_DB);
        return true;
    });
    setPropertyChangeHandler(PROP_SHOW_UNITS, (oldValue, newValue, figure) -> {
        isShowUnits = (Boolean) newValue;
        formatValue(newValue, PROP_SHOW_UNITS);
        return true;
    });
    setPropertyChangeHandler(PROP_ROTATION, (oldValue, newValue, figure) -> {
        if (figure instanceof TextFigure) {
            ((TextFigure) figure).setRotate((Double) newValue);
        }
        return true;
    });
    setPropertyChangeHandler(PROP_WRAP_WORDS, (oldValue, newValue, figure) -> {
        AbstractWidgetModel model = getWidgetModel();
        var parent = model.getParent();
        parent.removeChild(model);
        parent.addChild(model);
        parent.selectWidget(model, true);
        return false;
    });
}
Also used : WrappableTextFigure(org.csstudio.swt.widgets.figures.WrappableTextFigure) PROP_ALIGN_H(org.csstudio.opibuilder.widgets.model.LabelModel.PROP_ALIGN_H) PROP_PVVALUE(org.csstudio.opibuilder.model.IPVWidgetModel.PROP_PVVALUE) PROP_BORDER_WIDTH(org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_BORDER_WIDTH) AbstractWidgetModel(org.csstudio.opibuilder.model.AbstractWidgetModel) PROP_PVNAME(org.csstudio.opibuilder.model.IPVWidgetModel.PROP_PVNAME) PROP_SHOW_UNITS(org.csstudio.opibuilder.widgets.model.TextUpdateModel.PROP_SHOW_UNITS) RequestConstants(org.eclipse.gef.RequestConstants) CustomMediaFactory(org.csstudio.ui.util.CustomMediaFactory) IFigure(org.eclipse.draw2d.IFigure) PROP_PRECISION(org.csstudio.opibuilder.widgets.model.TextUpdateModel.PROP_PRECISION) ITextFigure(org.csstudio.swt.widgets.figures.ITextFigure) ValueFactory(org.yamcs.studio.data.vtype.ValueFactory) FormatEnum(org.yamcs.studio.data.FormatEnum) PROP_ALIGN_V(org.csstudio.opibuilder.widgets.model.LabelModel.PROP_ALIGN_V) Request(org.eclipse.gef.Request) PROP_AUTOSIZE(org.csstudio.opibuilder.widgets.model.LabelModel.PROP_AUTOSIZE) PROP_TEXT(org.csstudio.opibuilder.widgets.model.LabelModel.PROP_TEXT) NativeTextFigure(org.csstudio.opibuilder.widgets.figures.NativeTextFigure) H_ALIGN(org.csstudio.swt.widgets.figures.TextFigure.H_ALIGN) TextUpdateModel(org.csstudio.opibuilder.widgets.model.TextUpdateModel) PROP_WRAP_WORDS(org.csstudio.opibuilder.widgets.model.LabelModel.PROP_WRAP_WORDS) ExecutionMode(org.csstudio.opibuilder.editparts.ExecutionMode) PROP_PRECISION_FROM_DB(org.csstudio.opibuilder.widgets.model.TextUpdateModel.PROP_PRECISION_FROM_DB) PROP_ROTATION(org.csstudio.opibuilder.widgets.model.TextUpdateModel.PROP_ROTATION) VTypeHelper(org.yamcs.studio.data.VTypeHelper) Display(org.eclipse.swt.widgets.Display) PROP_FONT(org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_FONT) PROP_FORMAT_TYPE(org.csstudio.opibuilder.widgets.model.TextUpdateModel.PROP_FORMAT_TYPE) TextFigure(org.csstudio.swt.widgets.figures.TextFigure) V_ALIGN(org.csstudio.swt.widgets.figures.TextFigure.V_ALIGN) PROP_TRANSPARENT(org.csstudio.opibuilder.widgets.model.LabelModel.PROP_TRANSPARENT) VType(org.yamcs.studio.data.vtype.VType) AbstractPVWidgetEditPart(org.csstudio.opibuilder.editparts.AbstractPVWidgetEditPart) OPIFont(org.csstudio.opibuilder.util.OPIFont) EditPolicy(org.eclipse.gef.EditPolicy) PROP_BORDER_STYLE(org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_BORDER_STYLE) IWidgetPropertyChangeHandler(org.csstudio.opibuilder.properties.IWidgetPropertyChangeHandler) OPIFont(org.csstudio.opibuilder.util.OPIFont) AbstractWidgetModel(org.csstudio.opibuilder.model.AbstractWidgetModel) WrappableTextFigure(org.csstudio.swt.widgets.figures.WrappableTextFigure) ITextFigure(org.csstudio.swt.widgets.figures.ITextFigure) NativeTextFigure(org.csstudio.opibuilder.widgets.figures.NativeTextFigure) TextFigure(org.csstudio.swt.widgets.figures.TextFigure) IWidgetPropertyChangeHandler(org.csstudio.opibuilder.properties.IWidgetPropertyChangeHandler)

Example 7 with PROP_BORDER_STYLE

use of org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_BORDER_STYLE in project yamcs-studio by yamcs.

the class ImageBoolButtonEditPart method registerPropertyChangeHandlers.

@Override
protected void registerPropertyChangeHandlers() {
    registerCommonPropertyChangeHandlers();
    // Save CPU usage
    // removeAllPropertyChangeHandlers(AbstractPVWidgetModel.PROP_PVVALUE);
    // value
    // IWidgetPropertyChangeHandler handler = new IWidgetPropertyChangeHandler() {
    // public boolean handleChange(Object oldValue,
    // final Object newValue,
    // final IFigure refreshableFigure) {
    // if(newValue == null)
    // return false;
    // ImageBoolButtonFigure figure = (ImageBoolButtonFigure) refreshableFigure;
    // //figure.setValue(ValueUtil.getDouble((IValue)newValue));
    // autoSizeWidget(figure);
    // return true;
    // }
    // };
    // setPropertyChangeHandler(AbstractPVWidgetModel.PROP_PVVALUE, handler);
    setPropertyChangeHandler(PROP_ON_IMAGE, (oldValue, newValue, figure) -> {
        var imageFigure = (ImageBoolButtonFigure) figure;
        var absolutePath = (String) newValue;
        if (!absolutePath.contains("://")) {
            var path = Path.fromPortableString(absolutePath);
            if (!path.isAbsolute()) {
                path = ResourceUtil.buildAbsolutePath(getWidgetModel(), path);
                absolutePath = path.toPortableString();
            }
        }
        imageFigure.setOnImagePath(absolutePath);
        autoSizeWidget(imageFigure);
        return true;
    });
    setPropertyChangeHandler(PROP_OFF_IMAGE, (oldValue, newValue, figure) -> {
        var imageFigure = (ImageBoolButtonFigure) figure;
        var absolutePath = (String) newValue;
        if (!absolutePath.contains("://")) {
            var path = Path.fromPortableString(absolutePath);
            if (!path.isAbsolute()) {
                path = ResourceUtil.buildAbsolutePath(getWidgetModel(), path);
                absolutePath = path.toPortableString();
            }
        }
        imageFigure.setOffImagePath(absolutePath);
        autoSizeWidget(imageFigure);
        return true;
    });
    setPropertyChangeHandler(PROP_STRETCH, (oldValue, newValue, figure) -> {
        var imageFigure = (ImageBoolButtonFigure) figure;
        imageFigure.setStretch((Boolean) newValue);
        autoSizeWidget(imageFigure);
        return true;
    });
    FigureTransparencyHelper.addHandler(this, figure);
    setPropertyChangeHandler(PROP_AUTOSIZE, (oldValue, newValue, figure) -> {
        var imageFigure = (ImageBoolButtonFigure) figure;
        autoSizeWidget(imageFigure);
        return true;
    });
    setPropertyChangeHandler(PROP_NO_ANIMATION, (oldValue, newValue, figure) -> {
        var imageFigure = (ImageBoolButtonFigure) figure;
        imageFigure.setAnimationDisabled((Boolean) newValue);
        return false;
    });
    setPropertyChangeHandler(PROP_ALIGN_TO_NEAREST_SECOND, (oldValue, newValue, figure) -> {
        var imageFigure = (ImageBoolButtonFigure) figure;
        imageFigure.setAlignedToNearestSecond((Boolean) newValue);
        return false;
    });
    // changes to the border width property
    IWidgetPropertyChangeHandler handle = (oldValue, newValue, figure) -> {
        var imageFigure = (ImageBoolButtonFigure) figure;
        autoSizeWidget(imageFigure);
        return true;
    };
    setPropertyChangeHandler(PROP_BORDER_WIDTH, handle);
    setPropertyChangeHandler(PROP_BORDER_STYLE, handle);
    // size change handlers - so we can stretch accordingly
    handle = (oldValue, newValue, figure) -> {
        var imageFigure = (ImageBoolButtonFigure) figure;
        autoSizeWidget(imageFigure);
        return true;
    };
    setPropertyChangeHandler(PROP_HEIGHT, handle);
    setPropertyChangeHandler(PROP_WIDTH, handle);
}
Also used : PROP_OFF_IMAGE(org.csstudio.opibuilder.widgets.model.ImageBoolButtonModel.PROP_OFF_IMAGE) PROP_BORDER_WIDTH(org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_BORDER_WIDTH) PROP_NO_ANIMATION(org.csstudio.opibuilder.widgets.model.ImageBoolButtonModel.PROP_NO_ANIMATION) PROP_HEIGHT(org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_HEIGHT) ImageBoolButtonModel(org.csstudio.opibuilder.widgets.model.ImageBoolButtonModel) ResourceUtil(org.csstudio.opibuilder.util.ResourceUtil) Display(org.eclipse.swt.widgets.Display) ImageBoolButtonFigure(org.csstudio.opibuilder.widgets.figures.ImageBoolButtonFigure) IFigure(org.eclipse.draw2d.IFigure) PROP_ON_IMAGE(org.csstudio.opibuilder.widgets.model.ImageBoolButtonModel.PROP_ON_IMAGE) PROP_AUTOSIZE(org.csstudio.opibuilder.widgets.model.ImageBoolButtonModel.PROP_AUTOSIZE) PROP_STRETCH(org.csstudio.opibuilder.widgets.model.ImageBoolButtonModel.PROP_STRETCH) Color(org.eclipse.swt.graphics.Color) PROP_ALIGN_TO_NEAREST_SECOND(org.csstudio.opibuilder.widgets.model.ImageBoolButtonModel.PROP_ALIGN_TO_NEAREST_SECOND) Path(org.eclipse.core.runtime.Path) FigureTransparencyHelper(org.csstudio.opibuilder.widgets.FigureTransparencyHelper) PROP_BORDER_STYLE(org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_BORDER_STYLE) SymbolImageProperties(org.csstudio.swt.widgets.symbol.SymbolImageProperties) PROP_WIDTH(org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_WIDTH) ExecutionMode(org.csstudio.opibuilder.editparts.ExecutionMode) IWidgetPropertyChangeHandler(org.csstudio.opibuilder.properties.IWidgetPropertyChangeHandler) IWidgetPropertyChangeHandler(org.csstudio.opibuilder.properties.IWidgetPropertyChangeHandler) ImageBoolButtonFigure(org.csstudio.opibuilder.widgets.figures.ImageBoolButtonFigure)

Example 8 with PROP_BORDER_STYLE

use of org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_BORDER_STYLE in project yamcs-studio by yamcs.

the class ComboEditPart method registerPropertyChangeHandlers.

@Override
@SuppressWarnings("unchecked")
protected void registerPropertyChangeHandlers() {
    setPropertyChangeHandler(PROP_PVNAME, (oldValue, newValue, figure) -> {
        registerLoadItemsListener();
        return false;
    });
    autoSizeWidget((ComboFigure) getFigure());
    setPropertyChangeHandler(PROP_PVVALUE, (oldValue, newValue, refreshableFigure) -> {
        if (newValue != null) {
            var stringValue = VTypeHelper.getString((VType) newValue);
            if (Arrays.asList(combo.getItems()).contains(stringValue)) {
                combo.setText(stringValue);
            } else {
                combo.deselectAll();
            // 
            // if(getWidgetModel().isBorderAlarmSensitve())
            // autoSizeWidget((ComboFigure) refreshableFigure);
            }
        }
        return true;
    });
    setPropertyChangeHandler(PROP_ITEMS, (oldValue, newValue, refreshableFigure) -> {
        if (newValue != null && newValue instanceof List) {
            updateCombo((List<String>) newValue);
            if (getWidgetModel().isItemsFromPV()) {
                combo.setText(VTypeHelper.getString(getPVValue(PROP_PVNAME)));
            }
        }
        return true;
    });
    IWidgetPropertyChangeHandler handler = (oldValue, newValue, refreshableFigure) -> {
        updatePropSheet((Boolean) newValue);
        return false;
    };
    getWidgetModel().getProperty(PROP_ITEMS_FROM_PV).addPropertyChangeListener(evt -> handler.handleChange(evt.getOldValue(), evt.getNewValue(), getFigure()));
    // size change handlers--always apply the default height
    IWidgetPropertyChangeHandler handle = (oldValue, newValue, figure) -> {
        autoSizeWidget((ComboFigure) figure);
        return true;
    };
    setPropertyChangeHandler(PROP_WIDTH, handle);
    setPropertyChangeHandler(PROP_HEIGHT, handle);
    setPropertyChangeHandler(PROP_BORDER_STYLE, handle);
    setPropertyChangeHandler(PROP_BORDER_WIDTH, handle);
    setPropertyChangeHandler(PROP_FONT, handle);
}
Also used : PROP_PVVALUE(org.csstudio.opibuilder.model.IPVWidgetModel.PROP_PVVALUE) Arrays(java.util.Arrays) PROP_BORDER_WIDTH(org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_BORDER_WIDTH) ComboModel(org.csstudio.opibuilder.widgets.model.ComboModel) PROP_HEIGHT(org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_HEIGHT) PROP_ITEMS_FROM_PV(org.csstudio.opibuilder.widgets.model.ComboModel.PROP_ITEMS_FROM_PV) PROP_PVNAME(org.csstudio.opibuilder.model.IPVWidgetModel.PROP_PVNAME) IFigure(org.eclipse.draw2d.IFigure) PROP_ITEMS(org.csstudio.opibuilder.widgets.model.ComboModel.PROP_ITEMS) IPV(org.yamcs.studio.data.IPV) ComboFigure(org.csstudio.opibuilder.widgets.figures.ComboFigure) IPVListener(org.yamcs.studio.data.IPVListener) ExecutionMode(org.csstudio.opibuilder.editparts.ExecutionMode) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) Combo(org.eclipse.swt.widgets.Combo) VTypeHelper(org.yamcs.studio.data.VTypeHelper) VEnum(org.yamcs.studio.data.vtype.VEnum) PROP_FONT(org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_FONT) List(java.util.List) VType(org.yamcs.studio.data.vtype.VType) AbstractPVWidgetEditPart(org.csstudio.opibuilder.editparts.AbstractPVWidgetEditPart) SelectionEvent(org.eclipse.swt.events.SelectionEvent) PROP_BORDER_STYLE(org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_BORDER_STYLE) PROP_WIDTH(org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_WIDTH) IWidgetPropertyChangeHandler(org.csstudio.opibuilder.properties.IWidgetPropertyChangeHandler) SelectionListener(org.eclipse.swt.events.SelectionListener) IWidgetPropertyChangeHandler(org.csstudio.opibuilder.properties.IWidgetPropertyChangeHandler) List(java.util.List) ComboFigure(org.csstudio.opibuilder.widgets.figures.ComboFigure)

Aggregations

PROP_BORDER_STYLE (org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_BORDER_STYLE)8 PROP_BORDER_WIDTH (org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_BORDER_WIDTH)8 IWidgetPropertyChangeHandler (org.csstudio.opibuilder.properties.IWidgetPropertyChangeHandler)8 IFigure (org.eclipse.draw2d.IFigure)8 ExecutionMode (org.csstudio.opibuilder.editparts.ExecutionMode)6 Display (org.eclipse.swt.widgets.Display)6 PROP_HEIGHT (org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_HEIGHT)5 PROP_WIDTH (org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_WIDTH)5 PROP_FONT (org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_FONT)4 PROP_PVNAME (org.csstudio.opibuilder.model.IPVWidgetModel.PROP_PVNAME)4 PROP_PVVALUE (org.csstudio.opibuilder.model.IPVWidgetModel.PROP_PVVALUE)4 VTypeHelper (org.yamcs.studio.data.VTypeHelper)4 VType (org.yamcs.studio.data.vtype.VType)4 AbstractPVWidgetEditPart (org.csstudio.opibuilder.editparts.AbstractPVWidgetEditPart)3 AbstractWidgetModel (org.csstudio.opibuilder.model.AbstractWidgetModel)3 ResourceUtil (org.csstudio.opibuilder.util.ResourceUtil)3 FigureTransparencyHelper (org.csstudio.opibuilder.widgets.FigureTransparencyHelper)3 ITextFigure (org.csstudio.swt.widgets.figures.ITextFigure)3 EditPolicy (org.eclipse.gef.EditPolicy)3 Request (org.eclipse.gef.Request)3