blob: e9c3a3ef2af4fb16f16b89d3b900cf263e4d93ef [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2015 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.ui.internal.provisional.cheatsheets;
import java.util.Dictionary;
/**
* A task within a composite cheat sheet.
* <p>
* This interface is not intended to be implemented by clients.
* </p>
*/
public interface ICompositeCheatSheetTask {
/**
* The constant that indicates that the task has not been
* processed yet.
*/
public static final int NOT_STARTED = 0;
/**
* The constant that indicates that the task is in progress.
*/
public static final int IN_PROGRESS = 1;
/**
* The constant that indicates that the task has been skipped.
*/
public static final int SKIPPED = 2;
/**
* The constant that indicates that the task has been completed.
*/
public static final int COMPLETED = 3;
/**
* @return the unique identifier of this task.
*/
public String getId();
/**
* @return the translatable name of the task.
*/
public String getName();
/**
* Returns the kind of the task editor or task group.
* @return task editor kind or <code>null</code> if no editor
* is assoticated with this task.
*/
public String getKind();
/**
* The task parameters are used to configure the
* task editor with data meaningful to an editor of this kind.
* @return the parameter names and values as specified in the
* composite cheatsheet content file.
*/
public Dictionary<String, String> getParameters();
/**
* Returns the description of the task.
* @return a plain String, or XML markup that can
* be understood by FormText widget.
* @see org.eclipse.ui.forms.widgets.FormText
*/
public String getDescription();
/**
* Gets the text to be displayed when this task is completed
* @return a plain String, or XML markup that can
* be understood by FormText widget.
* @see org.eclipse.ui.forms.widgets.FormText
*/
public String getCompletionMessage();
/**
* Get the subtasks of this task. Each subtask may be
* a task group or editable task. If the task is an editable task
* there will be no children and an empty array will be returned.
* @return an array of subtasks for this task
*/
public ICompositeCheatSheetTask [] getSubtasks();
/**
* get the tasks which are required to be completed
* before this task is started.
* @return an array of tasks that must be completed
* before this task can be started. The array will be
* empty if this tasks is independent of other tasks.
*/
public ICompositeCheatSheetTask [] getRequiredTasks();
/**
* Determine whether the required tasks for this task have
* all been completed.
* @return true if there are noi required tasks or all required
* tasks have been completed.
*/
public boolean requiredTasksCompleted();
/**
* Get the state of this task
* @return NOT_STARTED, IN_PROGRESS, SKIPPED or COMPLETED.
*/
public int getState();
/**
* Get the enclosing composite cheat sheet
* @return the composite cheat sheet which contains this task
*/
public ICompositeCheatSheet getCompositeCheatSheet();
/**
* Get the parent task group
* @return The task group which contains this task or <code>null</code>
* if this is the root of the composite cheat sheet.
*/
public ITaskGroup getParent();
/**
* Test whether this task can be skipped. Skippable tasks are optional
* tasks which are identified in the content file by having the attribute
* <code>skip = "true"</code>. Only skippable tasks can be skipped.
* @return true if this task has the skip attribute set to true in the
* content file.
*/
public boolean isSkippable();
}