Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.eclipse.team.ui
Class TeamOperation

    java.lang.Object
      org.eclipse.core.runtime.jobs.JobChangeAdapter
          org.eclipse.team.ui.TeamOperation

All Implemented Interfaces:
  IJobChangeListener, IRunnableWithProgress

Direct Known Subclasses:
  SynchronizeModelOperation

public abstract class TeamOperation
extends JobChangeAdapter
implements IRunnableWithProgress

An operation that can be configured to run in the foreground using the `IProgressService` or the background as a `Job`. The execution context is determined by what is returned by the `canRunAsJob()` hint which may be overriden by subclasses. Subsclass must override the `run(IProgressMonitor)` method to perform the behavior of the operation in the desired execution context.

If this operation is run as a job, it is registered with the job as a `IJobChangeListener` and is scheduled with the part of this operation if it is not `null`. Subsclasses can override the methods of this interface to receive job change notifications.

Since:
  3.0
See Also:
  `IProgressService`, `Job`, `org.eclipse.core.runtime.ISchedulingRule`, `IJobChangeListener`

Constructor Summary
`protected` | `TeamOperation(IRunnableContext context)` Create an team operation that will run in the given context.
`protected` | `TeamOperation(IWorkbenchPart part)` Create an team operation associated with the given part.
`protected` | `TeamOperation(IWorkbenchPart part, IRunnableContext context)` Create an team operation associated with the given part that will run in the given context.

Method Summary
`protected boolean` | `canRunAsJob()` If this operation can safely be run in the background, then subclasses can override this method and return `true`.
`protected IAction` | `getGotoAction()` This method is called to allow subclasses to configure an action that could be run to show the results of the action to the user.
`protected String` | `getJobName()` Return the job name to be used if the action can run as a job.
`protected boolean` | `getKeepOperation()` This method is called to allow subclasses to have the operation remain in the progress indicator even after the job is done.
`protected URL` | `getOperationIcon()` This method is called to allow subclasses to configure an icon to show when running this operation.
`IWorkbenchPart` | `getPart()` Return the part that is associated with this operation.
`protected ISchedulingRule` | `getSchedulingRule()` Returns the scheduling rule that is to be obtained before this operation is executed by it's context or `null` if no scheduling rule is to be obtained.
`protected Shell` | `getShell()` Return a shell that can be used by the operation to display dialogs, etc.
`protected boolean` | `isPostponeAutobuild()` Return whether the auto-build should be postponed until after the operation is complete.
`void` | `run()` Run the operation in a context that is determined by the `canRunAsJob()` hint.
`protected boolean` | `shouldRun()` This method is invoked from the `run()` method before the operation is run in the operation's context.

Methods inherited from class org.eclipse.core.runtime.jobs.JobChangeAdapter
`aboutToRun, awake, done, running, scheduled, sleeping`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.eclipse.jface.operation.IRunnableWithProgress
`run`

Constructor Detail

### TeamOperation

    protected TeamOperation(IWorkbenchPart part)

  Create an team operation associated with the given part.

Parameters:
  `part` - the part the operation is associated with or `null` if the operation is to be run without a part.

### TeamOperation

    protected TeamOperation(IRunnableContext context)

  Create an team operation that will run in the given context.

Parameters:
  `context` - a runnable context

### TeamOperation

    protected TeamOperation(IWorkbenchPart part,
                            IRunnableContext context)

  Create an team operation associated with the given part that will run in the given context.

Parameters:
  `part` - the part the operation is associated with or `null`
  `context` - a runnable context

Method Detail

### getPart

    public IWorkbenchPart getPart()

  Return the part that is associated with this operation.

  Returns:
    Returns the part or `null`

### run

    public final void run()
                   throws InvocationTargetException,
                          InterruptedException

  Run the operation in a context that is determined by the `canRunAsJob()` hint. If this operation can run as a job then it will be run in a background thread. Otherwise it will run in the foreground and block the caller.

  Throws:
    `InvocationTargetException`
    `InterruptedException`

### shouldRun

    protected boolean shouldRun()

  This method is invoked from the `run()` method before the operation is run in the operation's context. Subclasses may override in order to perform prechecks to determine if the operation should run. This may include prompting the user for information, etc.

  Returns:
    whether the operation should be run.

### getSchedulingRule

    protected ISchedulingRule getSchedulingRule()

  Returns the scheduling rule that is to be obtained before this operation is executed by it's context or `null` if no scheduling rule is to be obtained. If the operation is run as a job, the schdulin rule is used as the schduling rule of the job. Otherwise, it is obtained before execution of the operation occurs.

  By default, no scheduling rule is obtained. Sublcasses can override to in order ot obtain a scheduling rule or can obtain schduling rules withing their operation if finer grained schduling is desired.

  Returns:
    the schduling rule to be obtained by this operation or `null`.

### isPostponeAutobuild

    protected boolean isPostponeAutobuild()

  Return whether the auto-build should be postponed until after the operation is complete. The default is to postpone the auto-build. subclas can override.

  Returns:
    whether to postpone the auto-build while the operation is executing.

### canRunAsJob

    protected boolean canRunAsJob()

  If this operation can safely be run in the background, then subclasses can override this method and return `true`. This will make their action run in a `Job`. Subsclass that override this method should also override the `getJobName()` method.

  Returns:
    `true` if this action can be run in the background and `false` otherwise.

### getJobName

    protected String getJobName()

  Return the job name to be used if the action can run as a job. (i.e. if `canRunAsJob()` returns `true`).

  Returns:
    the string to be used as the job name

### getGotoAction

    protected IAction getGotoAction()

  This method is called to allow subclasses to configure an action that could be run to show the results of the action to the user. Default is to return null.

  Returns:
    an action that could be run to see the results of this operation

### getOperationIcon

    protected URL getOperationIcon()

  This method is called to allow subclasses to configure an icon to show when running this operation.

  Returns:
    an URL to an icon

### getKeepOperation

    protected boolean getKeepOperation()

  This method is called to allow subclasses to have the operation remain in the progress indicator even after the job is done.

  Returns:
    `true` to keep the operation and `false` otherwise.

### getShell

    protected Shell getShell()

  Return a shell that can be used by the operation to display dialogs, etc.

  Returns:
    a shell

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2004. All rights reserved.