/******************************************************************************* * Copyright (c) 2008 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.smooks.graphical.editors.editparts; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.List; import org.eclipse.draw2d.IFigure; import org.eclipse.gef.editparts.AbstractGraphicalEditPart; import org.jboss.tools.smooks.gef.model.AbstractSmooksGraphicalModel; /** * @author Dart * */ public class AbstractSmooksElementEditPart extends AbstractGraphicalEditPart implements PropertyChangeListener { @Override public void activate() { super.activate(); Object model = getModel(); if (model instanceof AbstractSmooksGraphicalModel) { ((AbstractSmooksGraphicalModel) model).addPropertyChangeListener(this); } } @Override public void deactivate() { Object model = getModel(); if (model instanceof AbstractSmooksGraphicalModel) { ((AbstractSmooksGraphicalModel) model).removePropertyChangeListener(this); } super.deactivate(); } @Override protected List<?> getModelChildren() { Object model = getModel(); if (model instanceof AbstractSmooksGraphicalModel) { return ((AbstractSmooksGraphicalModel)model).getChildren(); } return super.getModelChildren(); } /* * (non-Javadoc) * * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#createFigure() */ @Override protected IFigure createFigure() { return null; } /* * (non-Javadoc) * * @see org.eclipse.gef.editparts.AbstractEditPart#createEditPolicies() */ @Override protected void createEditPolicies() { } public void propertyChange(PropertyChangeEvent evt) { String proName = evt.getPropertyName(); if (AbstractSmooksGraphicalModel.PRO_FORCE_VISUAL_CHANGED.equals(proName)) { refreshVisuals(); } if (AbstractSmooksGraphicalModel.PRO_ADD_CHILD.equals(proName) || AbstractSmooksGraphicalModel.PRO_REMOVE_CHILD.equals(proName) || AbstractSmooksGraphicalModel.PRO_FORCE_CHIDLREN_CHANGED.equals(proName)) { refreshChildren(); } if (AbstractSmooksGraphicalModel.PRO_ADD_SOURCE_CONNECTION.equals(proName) || AbstractSmooksGraphicalModel.PRO_REMOVE_SOURCE_CONNECTION.equals(proName)) { refreshSourceConnections(); } if (AbstractSmooksGraphicalModel.PRO_ADD_TARGET_CONNECTION.equals(proName) || AbstractSmooksGraphicalModel.PRO_REMOVE_TARGET_CONNECTION.equals(proName)) { refreshTargetConnections(); } if (AbstractSmooksGraphicalModel.PRO_FORCE_CONNECTION_CHANGED.equals(proName)) { refreshSourceConnections(); refreshTargetConnections(); } } }