/** * */ package org.jboss.tools.smooks.gef.tree.editparts; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import org.eclipse.draw2d.IFigure; import org.eclipse.draw2d.geometry.Dimension; import org.eclipse.draw2d.geometry.Point; import org.eclipse.draw2d.geometry.Rectangle; import org.eclipse.gef.GraphicalEditPart; import org.eclipse.gef.editparts.AbstractGraphicalEditPart; import org.jboss.tools.smooks.gef.tree.figures.IMoveableModel; import org.jboss.tools.smooks.gef.tree.figures.TestFigure; import org.jboss.tools.smooks.gef.tree.figures.TreeContainerFigure; import org.jboss.tools.smooks.gef.tree.model.TreeContainerModel; /** * @author DartPeng * */ public class TestEditpart extends AbstractGraphicalEditPart implements PropertyChangeListener{ /* (non-Javadoc) * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#createFigure() */ @Override protected IFigure createFigure() { // TODO Auto-generated method stub return new TestFigure(); } @Override public void activate() { ((TreeContainerModel)getModel()).addPropertyChangeListener(this); super.activate(); } @Override public void deactivate() { ((TreeContainerModel)getModel()).addPropertyChangeListener(this); super.deactivate(); } /* (non-Javadoc) * @see org.eclipse.gef.editparts.AbstractEditPart#createEditPolicies() */ @Override protected void createEditPolicies() { } @Override protected void refreshVisuals() { super.refreshVisuals(); TreeContainerModel model = (TreeContainerModel) getModel(); String text = model.getText(); if (text != null && getFigure() instanceof TreeContainerFigure) { TreeContainerFigure figure = (TreeContainerFigure) getFigure(); figure.setText(text); } Point location = model.getLocation(); Dimension size = getFigure().getPreferredSize(); try { ((GraphicalEditPart) this.getParent()).setLayoutConstraint(this, this .getFigure(),new Rectangle(location,size)); // ((AbstractGraphicalEditPart) getParent()).setLayoutConstraint(this, // this.getFigure(), rect); } catch (Exception e) { e.printStackTrace(); } } public void propertyChange(PropertyChangeEvent evt) { if(evt.getPropertyName().equals(IMoveableModel.PRO_BOUNDS_CHANGED)){ refreshVisuals(); } } }