🔥 Want the top? High visibility ads start here.

Eclipse Gef Tutorial [OFFICIAL]

public void removePropertyChangeListener(PropertyChangeListener listener) listeners.removePropertyChangeListener(listener);

public class ShapeEditPart extends AbstractGraphicalEditPart

(root) – manages children:

@Override protected IFigure createFigure() Shape model = (Shape) getModel(); if (model instanceof RectangleShape) return new RectangleFigure(); else if (model instanceof EllipseShape) return new EllipseFigure(); // create similar return null; eclipse gef tutorial

public class ShapeEditor extends GraphicalEditorWithFlyoutPalette private Diagram diagram; public ShapeEditor() setEditDomain(new DefaultEditDomain(this));

private Diagram createDiagram() diagram = new Diagram(); RectangleShape rect = new RectangleShape(); rect.setX(100); rect.setY(100); rect.setWidth(80); rect.setHeight(60); diagram.addShape(rect); EllipseShape ellipse = new EllipseShape(); ellipse.setX(250); ellipse.setY(150); ellipse.setWidth(70); ellipse.setHeight(70); diagram.addShape(ellipse); return diagram;

editor/ShapeEditor.java :

@Override protected PaletteRoot getPaletteRoot() // return palette with creation tools (optional) return null; // for minimal

@Override protected void initializeGraphicalViewer() super.initializeGraphicalViewer(); GraphicalViewer viewer = getGraphicalViewer(); viewer.setContents(createDiagram()); viewer.getControl().setBackground(ColorConstants.white);

private PropertyChangeSupport listeners = new PropertyChangeSupport(this); private int x, y, width, height; // create similar return null

@Override public void activate() super.activate(); ((Shape) getModel()).addPropertyChangeListener(evt -> refreshVisuals());

org.eclipse.core.runtime org.eclipse.ui org.eclipse.draw2d org.eclipse.gef org.eclipse.jface org.eclipse.swt org.eclipse.ui.ide Define the data structure.

public void addPropertyChangeListener(PropertyChangeListener listener) listeners.addPropertyChangeListener(listener); RectangleShape rect = new RectangleShape()

:

public class RectangleFigure extends RectangleFigure public RectangleFigure() setBackgroundColor(ColorConstants.lightBlue); setForegroundColor(ColorConstants.blue); setBorder(new LineBorder(1));