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:
-
ModelOperation,
SynchronizationOperation,
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 overridden by subclasses.
Subclass 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
.
Subclasses can override the methods of this interface to receive job change notifications.
-
Since:
- 3.0
-
See Also:
-
IProgressService
,
Job
,
ISchedulingRule
,
IJobChangeListener
Method Summary
|
boolean
|
belongsTo
(
Object family)
Return whether the job that is running this operation should be considered
a member member of the given family. |
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 results of the
operation remain available to the user in the progress service 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 its 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. |
boolean
|
isKeepOneProgressServiceEntry
()
This method is similar to getKeepOperation but will
only keep one entry of a particular type available. |
protected boolean
|
isPostponeAutobuild
()
Return whether the auto-build should be postponed until after
the operation is complete. |
protected boolean
|
isSameFamilyAs
(
TeamOperation operation)
Return whether this Team operation belongs to the same family
as the given operation for the purpose of showing only one
operation of the same type in the progress service when
isKeepOneProgressServiceEntry is overridden to
return true . |
boolean
|
isUserInitiated
()
Indicates whether the operation was user initiated. |
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 java.lang.
Object
|
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
|
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
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 pre-checks 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 its context or
null
if
no scheduling rule is to be obtained. If the operation is run
as a job, the scheduling rule is used as the scheduling rule of the
job. Otherwise, it is obtained before execution of the operation
occurs.
By default, no scheduling
rule is obtained. Subclasses can override in order to obtain a
scheduling rule or can obtain scheduling rules within their operation
if finer grained scheduling is desired.
-
-
-
Returns:
- the scheduling 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.
subclasses 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
.
Subclass 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 results of the
operation remain available to the user in the progress service even after
the job is done. This method is only relevant if the operation is run as
a job (i.e.,
canRunAsJob
returns true
).
-
-
-
Returns:
-
true
to keep the operation and false
otherwise.
isKeepOneProgressServiceEntry
public boolean isKeepOneProgressServiceEntry()
- This method is similar to
getKeepOperation
but will
only keep one entry of a particular type available.
This method is only relevant if the operation is run as
a job (i.e., canRunAsJob
returns true
).
Subclasses that override this method should also override
isSameFamilyAs
in order to match operations of the same type.
-
-
-
Returns:
-
true
to keep the operation and false
otherwise. -
Since:
- 3.1
isSameFamilyAs
protected boolean isSameFamilyAs(
TeamOperation operation)
- Return whether this Team operation belongs to the same family
as the given operation for the purpose of showing only one
operation of the same type in the progress service when
isKeepOneProgressServiceEntry
is overridden to
return true
. By default,
false
is returned. Subclasses may override.
-
-
-
Parameters:
-
operation
- a team operation -
Since:
- 3.1
belongsTo
public boolean belongsTo(
Object family)
- Return whether the job that is running this operation should be considered
a member member of the given family. Subclasses can override this method in
order to support the family based functionality provided by the
IJobManager
.
By default, false
is always returned. Subclasses that override the
isKeepOneProgressServiceEntry
method do not need to override
this method, but instead should override isSameFamilyAs
.
-
-
-
Parameters:
-
family
- the family being tested.
-
Returns:
- whether the job that is running this operation should be considered
a member member of the given family.
-
Since:
- 3.1
isUserInitiated
public boolean isUserInitiated()
- Indicates whether the operation was user initiated. The
progress for user initiated jobs may be presented differently
than non-user initiated operations if they are run as jobs.
-
-
-
Returns:
- whether the operation is user initiated
-
Since:
- 3.1
getShell
protected
Shell getShell()
- Return a shell that can be used by the operation to display dialogs, etc.
-
-
-
Returns:
- a shell
Guidelines for using Eclipse APIs.
Copyright (c) Eclipse contributors and others 2000, 2008. All rights reserved.