/******************************************************************************* * Copyright (c) 2003, 2010, 2012 IBM Corporation, Gerhardt Informatics Kft. and others. * All rights reserved. This program and the accompanying materials * are 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: * IBM Corporation - initial API and implementation * Gerhardt Informatics Kft. - GEFGWT port *******************************************************************************/ package org.eclipse.gef.internal.ui.rulers; import org.eclipse.gef.EditPart; import org.eclipse.gef.EditPartFactory; import org.eclipse.gef.GraphicalViewer; import org.eclipse.gef.rulers.RulerProvider; /** * @author Pratik Shah */ public class RulerEditPartFactory implements EditPartFactory { protected GraphicalViewer diagramViewer; public RulerEditPartFactory(GraphicalViewer primaryViewer) { diagramViewer = primaryViewer; } /* * (non-Javadoc) * * @see * org.eclipse.gef.EditPartFactory#createEditPart(org.eclipse.gef.EditPart, * java.lang.Object) */ public EditPart createEditPart(EditPart parentEditPart, Object model) { // the model can be null when the contents of the root edit part are set // to null EditPart part = null; if (isRuler(model)) { part = createRulerEditPart(parentEditPart, model); } else if (model != null) { part = createGuideEditPart(parentEditPart, model); } return part; } protected EditPart createGuideEditPart(EditPart parentEditPart, Object model) { return new GuideEditPart(model); } protected EditPart createRulerEditPart(EditPart parentEditPart, Object model) { return new RulerEditPart(model); } protected Object getHorizontalRuler() { Object ruler = null; RulerProvider provider = (RulerProvider) diagramViewer .getProperty(RulerProvider.PROPERTY_HORIZONTAL_RULER); if (provider != null) { ruler = provider.getRuler(); } return ruler; } protected Object getVerticalRuler() { Object ruler = null; RulerProvider provider = (RulerProvider) diagramViewer .getProperty(RulerProvider.PROPERTY_VERTICAL_RULER); if (provider != null) { ruler = provider.getRuler(); } return ruler; } protected boolean isRuler(Object model) { boolean result = false; if (model != null) { result = model == getHorizontalRuler() || model == getVerticalRuler(); } return result; } }