blob: 929d0eecd644537299a1fbda01d723178eaf935e [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2008 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 API and implementation
*******************************************************************************/
package org.eclipse.jdt.ui;
import org.eclipse.ui.IViewPart;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IType;
/**
* The standard type hierarchy view presents a type hierarchy for a given input class
* or interface. Visually, this view consists of a pair of viewers, one showing the type
* hierarchy, the other showing the members of the type selected in the first.
* <p>
* This interface is not intended to be implemented by clients.
* </p>
*
* @see JavaUI#ID_TYPE_HIERARCHY
*
* @noimplement This interface is not intended to be implemented by clients.
* @noextend This interface is not intended to be extended by clients.
*/
public interface ITypeHierarchyViewPart extends IViewPart {
/**
* Constant used for the vertical view layout.
* @since 3.3
*/
public static final int VIEW_LAYOUT_VERTICAL= 0;
/**
* Constant used for the horizontal view layout.
* @since 3.3
*/
public static final int VIEW_LAYOUT_HORIZONTAL= 1;
/**
* Constant used for the single view layout (no members view)
* @since 3.3
*/
public static final int VIEW_LAYOUT_SINGLE= 2;
/**
* Constant used for the automatic view layout.
* @since 3.3
*/
public static final int VIEW_LAYOUT_AUTOMATIC= 3;
/**
* Constant used for the 'classic' type hierarchy mode.
* @since 3.3
*/
public static final int HIERARCHY_MODE_CLASSIC= 2;
/**
* Constant used for the super types hierarchy mode.
* @since 3.3
*/
public static final int HIERARCHY_MODE_SUPERTYPES= 0;
/**
* Constant used for the sub types hierarchy mode.
* @since 3.3
*/
public static final int HIERARCHY_MODE_SUBTYPES= 1;
/**
* Sets the input element of this type hierarchy view to a type.
*
* @param type the input element of this type hierarchy view, or <code>null</code>
* to clear any input element
* @deprecated use setInputElement instead
*/
public void setInput(IType type);
/**
* Sets the input element of this type hierarchy view. The following input types are possible
* <code>IMember</code> (types, methods, fields..), <code>IPackageFragment</code>, <code>IPackageFragmentRoot</code>
* and <code>IJavaProject</code>.
*
* @param element the input element of this type hierarchy view, or <code>null</code>
* to clear any input
*
* @since 2.0
*/
public void setInputElement(IJavaElement element);
/**
* Returns the input element of this type hierarchy view.
*
* @return the input element, or <code>null</code> if no input element is set
* @see #setInput(IType)
* @deprecated use getInputElement instead
*/
public IType getInput();
/**
* Returns the input element of this type hierarchy view.
*
* @return the input element, or <code>null</code> if no input element is set
* @see #setInputElement(IJavaElement)
*
* @since 2.0
*/
public IJavaElement getInputElement();
/**
* Locks the the members view and shows the selected members in the hierarchy.
*
* @param enabled If set, the members view will be locked and the selected members are shown in the hierarchy.
*
* @since 3.3
*/
public void showMembersInHierarchy(boolean enabled);
/**
* If set, the lock mode is enabled.
*
* @return returns if the lock mode is enabled.
*
* @since 3.3
*/
public boolean isShowMembersInHierarchy();
/**
* Specifies if type names are shown with the parent container's name.
*
* @param enabled if enabled, the hierarchy will also show the type container names
*
* @since 3.3
*/
public void showQualifiedTypeNames(boolean enabled);
/**
* If set, type names are shown with the parent container's name.
*
* @return returns if type names are shown with the parent container's name.
*
* @since 3.3
*/
public boolean isQualifiedTypeNamesEnabled();
/**
* Returns whether this type hierarchy view's selection automatically tracks the active editor.
*
* @return <code>true</code> if linking is enabled, <code>false</code> if not
*
* @since 3.3
*/
public boolean isLinkingEnabled();
/**
* Sets whether this type hierarchy view's selection automatically tracks the active editor.
*
* @param enabled <code>true</code> to enable, <code>false</code> to disable
*
* @since 3.3
*/
public void setLinkingEnabled(boolean enabled);
/**
* Sets the view layout. Valid inputs are {@link #VIEW_LAYOUT_VERTICAL}, {@link #VIEW_LAYOUT_HORIZONTAL}
* {@link #VIEW_LAYOUT_SINGLE} and {@link #VIEW_LAYOUT_AUTOMATIC}.
*
* @param layout The layout to set
*
* @since 3.3
*/
public void setViewLayout(int layout);
/**
* Returns the currently configured view layout. Possible layouts are {@link #VIEW_LAYOUT_VERTICAL}, {@link #VIEW_LAYOUT_HORIZONTAL}
* {@link #VIEW_LAYOUT_SINGLE} and {@link #VIEW_LAYOUT_AUTOMATIC} but clients should also be able to handle yet unknown
* layout.
*
* @return The layout currently set
*
* @since 3.3
*/
public int getViewLayout();
/**
* Sets the hierarchy mode. Valid modes are {@link #HIERARCHY_MODE_SUBTYPES}, {@link #HIERARCHY_MODE_SUPERTYPES}
* and {@link #HIERARCHY_MODE_CLASSIC}.
*
* @param mode The hierarchy mode to set
*
* @since 3.3
*/
public void setHierarchyMode(int mode);
/**
* Returns the currently configured hierarchy mode. Possible modes are {@link #HIERARCHY_MODE_SUBTYPES}, {@link #HIERARCHY_MODE_SUPERTYPES}
* and {@link #HIERARCHY_MODE_CLASSIC} but clients should also be able to handle yet unknown modes.
*
* @return The hierarchy mode currently set
*
* @since 3.3
*/
public int getHierarchyMode();
}