//------------------------------------------------------------------------------ // Copyright (c) 2005, 2007 IBM Corporation 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 implementation //------------------------------------------------------------------------------ /* * Copyright (c) 2005, 2007 IBM Corporation 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 implementation * */ package org.eclipse.epf.diagram.core.part; import org.eclipse.epf.library.edit.process.BreakdownElementWrapperItemProvider; import org.eclipse.epf.library.edit.util.IDiagramManager; import org.eclipse.epf.library.edit.util.Suppression; import org.eclipse.epf.library.edit.util.TngUtil; import org.eclipse.epf.uma.BreakdownElement; import org.eclipse.epf.uma.MethodElement; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IPersistableElement; /** * DiagramEditor Input for {@link BreakdownElement} * @author Shashidhar Kannoori * @author Phong Nguyen Le */ public class DiagramEditorInput implements IEditorInput { private MethodElement methodElement; private ImageDescriptor imageDescriptor = null; private Suppression suppression; private BreakdownElementWrapperItemProvider wrapper; private int diagramType; /** * Creates an instance of DiagramEditorInput for activity diagram * @param object * @deprecated use {@link #DiagramEditorInput(Object, Suppression, int)} */ public DiagramEditorInput(Object object, Suppression suppression) { this(object, suppression, IDiagramManager.ACTIVITY_DIAGRAM); } /** * * @param object * @param suppression * @param diagramType * can be one of the constants: * {@link IDiagramManager#ACTIVITY_DIAGRAM}, * {@link IDiagramManager#ACTIVITY_DETAIL_DIAGRAM}, * {@link IDiagramManager#WORK_PRODUCT_DEPENDENCY_DIAGRAM} */ public DiagramEditorInput(Object object, Suppression suppression, int diagramType) { methodElement = (MethodElement) TngUtil.unwrap(object); if (object instanceof BreakdownElementWrapperItemProvider) { wrapper = (BreakdownElementWrapperItemProvider) object; } this.suppression = suppression; this.diagramType = diagramType; } public int getDiagramType() { return diagramType; } /** * @return Returns the suppression. */ public Suppression getSuppression() { return suppression; } /** * @return Returns the wrapper. */ public BreakdownElementWrapperItemProvider getWrapper() { return wrapper; } /** * @see org.eclipse.epf.authoring.ui.editors.MethodElementEditorInput#equals(java.lang.Object) */ public boolean equals(Object obj) { if (this == obj) return true; if (getClass().isInstance(obj)) { DiagramEditorInput other = (DiagramEditorInput) obj; return getMethodElement() == other.getMethodElement() && ((suppression == null && other.getSuppression() == null) || (suppression.getProcess() == other.getSuppression().getProcess())) && getDiagramType() == other.getDiagramType(); } return false; } @Override public int hashCode() { int result = getMethodElement().hashCode(); result ^= suppression.getProcess().hashCode(); result ^= getDiagramType(); return result; } public DiagramEditorInput(MethodElement e) { methodElement = e; } public MethodElement getMethodElement() { return methodElement; } /* (non-Javadoc) * @see org.eclipse.ui.IEditorInput#exists() */ public boolean exists() { // TODO Auto-generated method stub return false; } /* (non-Javadoc) * @see org.eclipse.ui.IEditorInput#getImageDescriptor() */ public ImageDescriptor getImageDescriptor() { return imageDescriptor; } /* (non-Javadoc) * @see org.eclipse.ui.IEditorInput#getName() */ public String getName() { return methodElement.getName(); } /* (non-Javadoc) * @see org.eclipse.ui.IEditorInput#getPersistable() */ public IPersistableElement getPersistable() { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see org.eclipse.ui.IEditorInput#getToolTipText() */ public String getToolTipText() { return ""; //$NON-NLS-1$ } /* (non-Javadoc) * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class) */ public Object getAdapter(Class adapter) { // TODO Auto-generated method stub return null; } }