/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.diagram.ui.editor; import java.util.List; import org.eclipse.emf.ecore.EObject; import org.eclipse.gef.EditPart; import org.eclipse.jface.viewers.ISelection; import org.teiid.designer.diagram.ui.connection.NodeConnectionEditPart; /** * IDiagramSelectionHandler * This interface defines common methods for Diagram Editor, Diagram Viewer, and Edit Parts * to communicate based on their specific diagram type. Each diagram type plugin may provide their * own handler for selection, hiliting and double-clicking (editing). * * @since 8.0 */ public interface IDiagramSelectionHandler { DiagramViewer getViewer(); void deselectAll(); void select(EObject selectedObject ); List getSelectedEObjects(); void select(ISelection selection ); void clearDependencyHilites(); void hiliteDependencies(Object selectedObject ); void hiliteConnection(NodeConnectionEditPart connectionEditPart); void clearConnectionHilites(); void selectAndReveal(EObject selectedObject ); EditPart findEditPart(EObject selectedObject, boolean linksAllowed); EditPart findDiagramChildEditPart(EObject selectedObject, boolean linksAllowed); /** * This provides the diagram type plugin the chance to customize the double-click of an edit part's * DirectEdit request. If it does intercede, then the return value should be TRUE, else false, and * the edit policy is executed on the edit part. * @param selectedObject * @return */ boolean handleDoubleClick( EObject selectedObject ); boolean shouldRename(EObject dClickedEObject); /** * Method force in-line renaming of EObjects * @param selectedObject * @since 5.0.2 */ void renameInline(EObject selectedObject); String getDiagramType(); boolean shouldReveal(EObject selectedObject); public void setClearHilites(boolean clear); public void fireMouseExit(); }