Search in sources :

Example 1 with PROP_ENABLED

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

the class GroupingContainerEditPart method registerPropertyChangeHandlers.

@Override
protected void registerPropertyChangeHandlers() {
    setPropertyChangeHandler(PROP_TRANSPARENT, (oldValue, newValue, figure) -> {
        figure.setOpaque(!(Boolean) newValue);
        return true;
    });
    setPropertyChangeHandler(PROP_ENABLED, (oldValue, newValue, figure) -> {
        for (var child : getWidgetModel().getChildren()) {
            child.setEnabled((Boolean) newValue);
        }
        return true;
    });
    setPropertyChangeHandler(PROP_LOCK_CHILDREN, (oldValue, newValue, figure) -> {
        lockChildren((Boolean) newValue);
        return true;
    });
    lockChildren(getWidgetModel().isLocked());
    if (getWidgetModel().getParent() instanceof TabModel) {
        removeAllPropertyChangeHandlers(PROP_VISIBLE);
        setPropertyChangeHandler(PROP_VISIBLE, (oldValue, newValue, refreshableFigure) -> {
            boolean visible = (Boolean) newValue;
            var figure = getFigure();
            figure.setVisible(visible);
            return true;
        });
    }
    setPropertyChangeHandler(PROP_SHOW_SCROLLBAR, (oldValue, newValue, refreshableFigure) -> {
        ((GroupingContainerFigure) refreshableFigure).setShowScrollBar((Boolean) newValue);
        return true;
    });
    IWidgetPropertyChangeHandler fowardColorHandler = (oldValue, newValue, refreshableFigure) -> {
        if (getWidgetModel().isForwardColors()) {
            forwardColors();
        }
        return true;
    };
    setPropertyChangeHandler(PROP_FORWARD_COLORS, fowardColorHandler);
    setPropertyChangeHandler(PROP_COLOR_BACKGROUND, fowardColorHandler);
    setPropertyChangeHandler(PROP_COLOR_FOREGROUND, fowardColorHandler);
    // use property listener because it doesn't need to be queued in GUIRefreshThread.
    getWidgetModel().getProperty(PROP_WIDTH).addPropertyChangeListener(evt -> resizeChildren((Integer) (evt.getNewValue()), (Integer) (evt.getOldValue()), true));
    getWidgetModel().getProperty(PROP_HEIGHT).addPropertyChangeListener(evt -> resizeChildren((Integer) (evt.getNewValue()), (Integer) (evt.getOldValue()), false));
}
Also used : PROP_HEIGHT(org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_HEIGHT) PROP_ENABLED(org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_ENABLED) AbstractBaseEditPart(org.csstudio.opibuilder.editparts.AbstractBaseEditPart) PROP_TRANSPARENT(org.csstudio.opibuilder.widgets.model.GroupingContainerModel.PROP_TRANSPARENT) IFigure(org.eclipse.draw2d.IFigure) PROP_FORWARD_COLORS(org.csstudio.opibuilder.widgets.model.GroupingContainerModel.PROP_FORWARD_COLORS) TabModel(org.csstudio.opibuilder.widgets.model.TabModel) PROP_COLOR_FOREGROUND(org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_COLOR_FOREGROUND) PROP_SHOW_SCROLLBAR(org.csstudio.opibuilder.widgets.model.GroupingContainerModel.PROP_SHOW_SCROLLBAR) PROP_COLOR_BACKGROUND(org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_COLOR_BACKGROUND) PROP_LOCK_CHILDREN(org.csstudio.opibuilder.widgets.model.GroupingContainerModel.PROP_LOCK_CHILDREN) GroupingContainerFigure(org.csstudio.swt.widgets.figures.GroupingContainerFigure) AbstractContainerEditpart(org.csstudio.opibuilder.editparts.AbstractContainerEditpart) IActionFilter(org.eclipse.ui.IActionFilter) EditPolicy(org.eclipse.gef.EditPolicy) GroupingContainerModel(org.csstudio.opibuilder.widgets.model.GroupingContainerModel) EditPart(org.eclipse.gef.EditPart) PROP_VISIBLE(org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_VISIBLE) PROP_WIDTH(org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_WIDTH) ExecutionMode(org.csstudio.opibuilder.editparts.ExecutionMode) IWidgetPropertyChangeHandler(org.csstudio.opibuilder.properties.IWidgetPropertyChangeHandler) GroupingContainerFigure(org.csstudio.swt.widgets.figures.GroupingContainerFigure) IWidgetPropertyChangeHandler(org.csstudio.opibuilder.properties.IWidgetPropertyChangeHandler) TabModel(org.csstudio.opibuilder.widgets.model.TabModel)

Example 2 with PROP_ENABLED

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

the class AbstractBoolControlEditPart method registerCommonPropertyChangeHandlers.

/**
 * Registers property change handlers for the properties defined in {@link AbstractBoolWidgetModel}. This method is
 * provided for the convenience of subclasses, which can call this method in their implementation of
 * {@link #registerPropertyChangeHandlers()}.
 */
@Override
protected void registerCommonPropertyChangeHandlers() {
    configureButtonListener((AbstractBoolControlFigure) getFigure());
    super.registerCommonPropertyChangeHandlers();
    IWidgetPropertyChangeHandler toggleHandler = (oldValue, newValue, refreshableFigure) -> {
        var figure = (AbstractBoolControlFigure) refreshableFigure;
        figure.setToggle((Boolean) newValue);
        return true;
    };
    getWidgetModel().getProperty(PROP_TOGGLE_BUTTON).addPropertyChangeListener(evt -> toggleHandler.handleChange(evt.getOldValue(), evt.getNewValue(), getFigure()));
    setPropertyChangeHandler(PROP_CONFIRM_DIALOG, (oldValue, newValue, refreshableFigure) -> {
        var figure = (AbstractBoolControlFigure) refreshableFigure;
        figure.setShowConfirmDialog(getWidgetModel().getShowConfirmDialog());
        return true;
    });
    setPropertyChangeHandler(PROP_CONFIRM_TIP, (oldValue, newValue, refreshableFigure) -> {
        var figure = (AbstractBoolControlFigure) refreshableFigure;
        figure.setConfirmTip((String) newValue);
        return true;
    });
    setPropertyChangeHandler(PROP_PASSWORD, (oldValue, newValue, refreshableFigure) -> {
        var figure = (AbstractBoolControlFigure) refreshableFigure;
        figure.setPassword((String) newValue);
        return true;
    });
    // enabled. WidgetBaseEditPart will force the widget as disabled in edit model,
    // which is not the case for the bool control widget
    setPropertyChangeHandler(PROP_ENABLED, (oldValue, newValue, refreshableFigure) -> {
        var figure = (AbstractBoolControlFigure) refreshableFigure;
        figure.setEnabled((Boolean) newValue);
        return true;
    });
}
Also used : PROP_PVVALUE(org.csstudio.opibuilder.model.IPVWidgetModel.PROP_PVVALUE) AbstractBoolFigure(org.csstudio.swt.widgets.figures.AbstractBoolFigure) PROP_CONFIRM_TIP(org.csstudio.opibuilder.widgets.model.AbstractBoolControlModel.PROP_CONFIRM_TIP) PROP_PASSWORD(org.csstudio.opibuilder.widgets.model.AbstractBoolControlModel.PROP_PASSWORD) PROP_ENABLED(org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_ENABLED) AbstractBaseEditPart(org.csstudio.opibuilder.editparts.AbstractBaseEditPart) PROP_PVNAME(org.csstudio.opibuilder.model.IPVWidgetModel.PROP_PVNAME) PROP_CONFIRM_DIALOG(org.csstudio.opibuilder.widgets.model.AbstractBoolControlModel.PROP_CONFIRM_DIALOG) AbstractBoolWidgetModel(org.csstudio.opibuilder.widgets.model.AbstractBoolWidgetModel) AbstractBoolControlFigure(org.csstudio.swt.widgets.figures.AbstractBoolControlFigure) PROP_TOGGLE_BUTTON(org.csstudio.opibuilder.widgets.model.AbstractBoolControlModel.PROP_TOGGLE_BUTTON) AbstractBoolControlModel(org.csstudio.opibuilder.widgets.model.AbstractBoolControlModel) ExecutionMode(org.csstudio.opibuilder.editparts.ExecutionMode) IWidgetPropertyChangeHandler(org.csstudio.opibuilder.properties.IWidgetPropertyChangeHandler) IWidgetPropertyChangeHandler(org.csstudio.opibuilder.properties.IWidgetPropertyChangeHandler) AbstractBoolControlFigure(org.csstudio.swt.widgets.figures.AbstractBoolControlFigure)

Aggregations

AbstractBaseEditPart (org.csstudio.opibuilder.editparts.AbstractBaseEditPart)2 ExecutionMode (org.csstudio.opibuilder.editparts.ExecutionMode)2 PROP_ENABLED (org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_ENABLED)2 IWidgetPropertyChangeHandler (org.csstudio.opibuilder.properties.IWidgetPropertyChangeHandler)2 AbstractContainerEditpart (org.csstudio.opibuilder.editparts.AbstractContainerEditpart)1 PROP_COLOR_BACKGROUND (org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_COLOR_BACKGROUND)1 PROP_COLOR_FOREGROUND (org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_COLOR_FOREGROUND)1 PROP_HEIGHT (org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_HEIGHT)1 PROP_VISIBLE (org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_VISIBLE)1 PROP_WIDTH (org.csstudio.opibuilder.model.AbstractWidgetModel.PROP_WIDTH)1 PROP_PVNAME (org.csstudio.opibuilder.model.IPVWidgetModel.PROP_PVNAME)1 PROP_PVVALUE (org.csstudio.opibuilder.model.IPVWidgetModel.PROP_PVVALUE)1 AbstractBoolControlModel (org.csstudio.opibuilder.widgets.model.AbstractBoolControlModel)1 PROP_CONFIRM_DIALOG (org.csstudio.opibuilder.widgets.model.AbstractBoolControlModel.PROP_CONFIRM_DIALOG)1 PROP_CONFIRM_TIP (org.csstudio.opibuilder.widgets.model.AbstractBoolControlModel.PROP_CONFIRM_TIP)1 PROP_PASSWORD (org.csstudio.opibuilder.widgets.model.AbstractBoolControlModel.PROP_PASSWORD)1 PROP_TOGGLE_BUTTON (org.csstudio.opibuilder.widgets.model.AbstractBoolControlModel.PROP_TOGGLE_BUTTON)1 AbstractBoolWidgetModel (org.csstudio.opibuilder.widgets.model.AbstractBoolWidgetModel)1 GroupingContainerModel (org.csstudio.opibuilder.widgets.model.GroupingContainerModel)1 PROP_FORWARD_COLORS (org.csstudio.opibuilder.widgets.model.GroupingContainerModel.PROP_FORWARD_COLORS)1