Search in sources :

Example 71 with IFigure

use of org.eclipse.draw2d.IFigure in project yamcs-studio by yamcs.

the class AbstractContainerEditpart method registerBasePropertyChangeHandlers.

@Override
protected void registerBasePropertyChangeHandlers() {
    super.registerBasePropertyChangeHandlers();
    IWidgetPropertyChangeHandler handler = new IWidgetPropertyChangeHandler() {

        @Override
        public boolean handleChange(Object oldValue, Object newValue, IFigure figure) {
            MacrosInput macrosInput = (MacrosInput) newValue;
            LinkedHashMap<String, String> macrosMap = new LinkedHashMap<String, String>();
            if (macrosInput.isInclude_parent_macros()) {
                macrosMap.putAll(getWidgetModel().getParentMacroMap());
            }
            macrosMap.putAll(macrosInput.getMacrosMap());
            getWidgetModel().setMacroMap(macrosMap);
            return false;
        }
    };
    setPropertyChangeHandler(AbstractContainerModel.PROP_MACROS, handler);
    layout();
    childrenPropertyChangeListener = new PropertyChangeListener() {

        @Override
        public void propertyChange(PropertyChangeEvent evt) {
            if (evt.getOldValue() instanceof Integer) {
                addChild(createChild(evt.getNewValue()), ((Integer) evt.getOldValue()).intValue());
                layout();
            } else if (evt.getOldValue() instanceof AbstractWidgetModel) {
                EditPart child = (EditPart) getViewer().getEditPartRegistry().get(evt.getOldValue());
                if (child != null) {
                    removeChild(child);
                    layout();
                }
            } else
                refreshChildren();
        }
    };
    getWidgetModel().getChildrenProperty().addPropertyChangeListener(childrenPropertyChangeListener);
    if (getExecutionMode() == ExecutionMode.EDIT_MODE) {
        selectionPropertyChangeListener = new PropertyChangeListener() {

            @SuppressWarnings("unchecked")
            @Override
            public void propertyChange(PropertyChangeEvent evt) {
                List<AbstractWidgetModel> widgets = (List<AbstractWidgetModel>) evt.getNewValue();
                List<EditPart> widgetEditparts = new ArrayList<EditPart>();
                for (AbstractWidgetModel w : widgets) {
                    EditPart e = (EditPart) getViewer().getEditPartRegistry().get(w);
                    if (e != null)
                        widgetEditparts.add(e);
                }
                if (!(Boolean) evt.getOldValue()) {
                    // append
                    getViewer().deselectAll();
                }
                for (EditPart editpart : widgetEditparts) {
                    if (editpart.isSelectable())
                        getViewer().appendSelection(editpart);
                }
            }
        };
        getWidgetModel().getSelectionProperty().addPropertyChangeListener(selectionPropertyChangeListener);
    }
}
Also used : MacrosInput(org.csstudio.opibuilder.util.MacrosInput) PropertyChangeEvent(java.beans.PropertyChangeEvent) PropertyChangeListener(java.beans.PropertyChangeListener) EditPart(org.eclipse.gef.EditPart) LinkedHashMap(java.util.LinkedHashMap) AbstractWidgetModel(org.csstudio.opibuilder.model.AbstractWidgetModel) IWidgetPropertyChangeHandler(org.csstudio.opibuilder.properties.IWidgetPropertyChangeHandler) ArrayList(java.util.ArrayList) List(java.util.List) IFigure(org.eclipse.draw2d.IFigure)

Example 72 with IFigure

use of org.eclipse.draw2d.IFigure in project yamcs-studio by yamcs.

the class DisplayEditpart method doCreateFigure.

@Override
protected IFigure doCreateFigure() {
    Figure f = new FreeformLayer() {

        @Override
        protected void paintFigure(Graphics graphics) {
            super.paintFigure(graphics);
            if (getExecutionMode() == ExecutionMode.EDIT_MODE && ((DisplayModel) getModel()).isShowEditRange()) {
                graphics.pushState();
                graphics.setLineStyle(SWT.LINE_DASH);
                graphics.setForegroundColor(ColorConstants.black);
                graphics.drawRectangle(new Rectangle(new Point(0, 0), getWidgetModel().getSize()));
                graphics.popState();
            }
        }
    };
    // f.setBorder(new MarginBorder(3));
    f.setLayoutManager(new FreeformLayout());
    return f;
}
Also used : Graphics(org.eclipse.draw2d.Graphics) FreeformLayout(org.eclipse.draw2d.FreeformLayout) Rectangle(org.eclipse.draw2d.geometry.Rectangle) Point(org.eclipse.draw2d.geometry.Point) FreeformLayer(org.eclipse.draw2d.FreeformLayer) IFigure(org.eclipse.draw2d.IFigure) Figure(org.eclipse.draw2d.Figure)

Example 73 with IFigure

use of org.eclipse.draw2d.IFigure in project yamcs-studio by yamcs.

the class PVWidgetEditpartDelegate method setControlEnabled.

/**
 * Set whether the editpart is enabled for PV control.  Disabled
 * editparts have greyed-out figures, and the cursor is set to a cross.
 */
@Override
public void setControlEnabled(boolean enabled) {
    if (enabled) {
        IFigure figure = editpart.getFigure();
        if (figure.getCursor() == Cursors.NO)
            figure.setCursor(savedCursor);
        figure.setEnabled(editpart.getWidgetModel().isEnabled());
        figure.repaint();
    } else {
        IFigure figure = editpart.getFigure();
        if (figure.getCursor() != Cursors.NO)
            savedCursor = figure.getCursor();
        figure.setEnabled(false);
        figure.setCursor(Cursors.NO);
        figure.repaint();
    }
}
Also used : IFigure(org.eclipse.draw2d.IFigure)

Example 74 with IFigure

use of org.eclipse.draw2d.IFigure in project yamcs-studio by yamcs.

the class WidgetNodeEditPolicy method removeAnchorHandles.

/**
 * removes the anchor handles
 */
protected void removeAnchorHandles() {
    if (handles == null)
        return;
    IFigure layer = getLayer(LayerConstants.HANDLE_LAYER);
    for (int i = 0; i < handles.size(); i++) layer.remove(handles.get(i));
    handles = null;
}
Also used : IFigure(org.eclipse.draw2d.IFigure)

Example 75 with IFigure

use of org.eclipse.draw2d.IFigure in project yamcs-studio by yamcs.

the class WidgetXYLayoutEditPolicy method showSizeOnDropFeedback.

@Override
protected void showSizeOnDropFeedback(CreateRequest request) {
    String typeId = determineTypeIdFromRequest(request);
    IGraphicalFeedbackFactory feedbackFactory = WidgetsService.getInstance().getWidgetFeedbackFactory(typeId);
    if (feedbackFactory != null) {
        IFigure feedbackFigure = getSizeOnDropFeedback(request);
        feedbackFactory.showSizeOnDropFeedback(request, feedbackFigure, getCreationFeedbackOffset(request));
    // feedbackFigure.repaint();
    } else {
        super.showSizeOnDropFeedback(request);
    }
}
Also used : IGraphicalFeedbackFactory(org.csstudio.opibuilder.feedback.IGraphicalFeedbackFactory) IFigure(org.eclipse.draw2d.IFigure)

Aggregations

IFigure (org.eclipse.draw2d.IFigure)225 IWidgetPropertyChangeHandler (org.csstudio.opibuilder.properties.IWidgetPropertyChangeHandler)61 Rectangle (org.eclipse.draw2d.geometry.Rectangle)42 Point (org.eclipse.draw2d.geometry.Point)36 Dimension (org.eclipse.draw2d.geometry.Dimension)30 PropertyChangeEvent (java.beans.PropertyChangeEvent)25 PropertyChangeListener (java.beans.PropertyChangeListener)25 List (java.util.List)20 Figure (org.eclipse.draw2d.Figure)17 GraphicalEditPart (org.eclipse.gef.GraphicalEditPart)13 DefaultSizeNodeFigure (org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure)12 NodeFigure (org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure)12 StackLayout (org.eclipse.draw2d.StackLayout)11 Iterator (java.util.Iterator)10 VType (org.diirt.vtype.VType)10 AbstractWidgetModel (org.csstudio.opibuilder.model.AbstractWidgetModel)9 OPIColor (org.csstudio.opibuilder.util.OPIColor)9 EditPart (org.eclipse.gef.EditPart)9 ArrayList (java.util.ArrayList)7 Label (org.eclipse.draw2d.Label)7