blob: 899345d77e1585df8876a3c74b3c2643cd183086 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2006 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.ui.internal.provisional.cheatsheets;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.forms.widgets.FormToolkit;
/**
* Classes that extend this class are responsible for rendering the
* hierarchy of tasks in the composite cheat sheet. They must support task
* selection via the selection provider, be able to accept focus, and create
* control when asked.
*/
public abstract class TaskExplorer {
/**
* @return the id of this TaskExplorer which must match the id used in the
* extension point
*/
public abstract String getId();
/**
* Create a control which will display the structure of the composite cheat
* sheet and allow tasks within the composite cheat sheet to be selected.
*
* @param parent
* @param toolkit
*/
public abstract void createControl(Composite parent, FormToolkit toolkit);
/**
* Get the control created by a previous call to createControl
*
* @return the task explorer control
*/
public abstract Control getControl();
/**
* Called when the explorer gains focus.
*/
public abstract void setFocus();
/**
* Get the selection provider for this explorer. The selections returned by
* the selection provider should represent IGuideTasks.
*
* @return the selection provider for the task explorer
*/
public abstract ISelectionProvider getSelectionProvider();
/**
* Sets the composite cheat sheet to be displayed. createControl will
* already have been called.
*
* @param compositeCheatSheet
*/
public abstract void setCompositeCheatSheet(ICompositeCheatSheet compositeCheatSheet);
/**
* Called after this explorer is no longer in use. Any resources should be
* disposed of at this point.
*/
public abstract void dispose();
/**
* Called when the state of a task changes and the representation of the
* task may need to be redrawn.
*
* @param task
*/
public abstract void taskUpdated(ICompositeCheatSheetTask task);
/**
* Called to set the provided selection and optionally reveal it
* if the scroll bars are active and the selected tasks
* are partially or fully hidden.
*
* @param selection the new selection
* @param reveal if <code>true</code>, expose the task if hidden;
* otherwise, just select.
*/
public abstract void setSelection(ISelection selection, boolean reveal);
}