Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 


Eclipse Platform
Release 3.5

org.eclipse.team.ui.mapping
Class SynchronizationStateTester

java.lang.Object
  extended by 
org.eclipse.team.ui.mapping.SynchronizationStateTester

public class SynchronizationStateTester
extends Object

A state change tester is used by logical models to communicate the synchronization state of their logical model elements to the lightweight label decorator of a team provider.

There are two different types of elements being decorated: those that have a one-to-one mapping to a resource and those that do not. Those that do should adapt to their corresponding resource. Doing so will ensure that label updates occur when the state of that resource changes (i.e. the team provider will generate label updates for those resources and the model can translate them to appropriate label updates of their model elements).

For those elements that do not have a one-to-one mapping to resources, the model must do extra work. The purpose of this class is to allow the model to decide when a label update for a logical model element is required and to communicate the dirty state of their logical model elements to the team decorator.

Model providers need to re-evaluate the state of a model element whenever a change in the resources occurs by listening to both resource deltas and change events from the team state provider ( getTeamStateProvider().

Decoration enablement changes and decoration configuration changes are handled by the IDecoratorManager.update(String) API. A call to this method will result in label changes to all elements. The isDecorationEnabled(Object) API on this class can be used to determine if an element will receive team decorations. If decoration is disabled. team state changes on the element can be ignored.

Clients may subclass this class.

Since:
3.2
See Also:
IWorkspace.addResourceChangeListener(IResourceChangeListener), Subscriber.addListener(org.eclipse.team.core.subscribers.ISubscriberChangeListener)

Field Summary
static  String PROP_TESTER
          Constant that is used as the property key on an IDecorationContext.
 
Constructor Summary
SynchronizationStateTester ()
          Create a synchronization state tester.
 
Method Summary
 void elementDecorated ( Object element, ITeamStateDescription description)
          A callback to the tester made from the team decorator to notify the tester that the given element has been decorated with the given state.
 int getState ( Object element, int stateMask, IProgressMonitor monitor)
          Return the synchronization state of the given element.
  ITeamStateProvider getTeamStateProvider ()
          Return a team state provider that delegates to the appropriate team provider.
 boolean isDecorationEnabled ( Object element)
          Return whether decoration is enabled for the given model element in the context to which this tester is associated.
 boolean isStateDecorationEnabled ()
          Return whether state decoration is enabled for the context to which this tester is associated.
 
Methods inherited from class java.lang. Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PROP_TESTER

public static final 
String PROP_TESTER
Constant that is used as the property key on an IDecorationContext. Model based views can assign their state test to this property in the decoration context. If a context passed to a team decorator has this property, the associated state tester will be used by the decorator to determine the team state of the elements being decorated.

See Also:
Constant Field Values
Constructor Detail

SynchronizationStateTester

public SynchronizationStateTester()
Create a synchronization state tester.

Method Detail

isStateDecorationEnabled

public boolean isStateDecorationEnabled()
Return whether state decoration is enabled for the context to which this tester is associated. If true is returned, a team decorator will use the state methods provided on this class to calculate the synchronization state of model elements for the purpose of decoration. If false is returned, a team decorator will not decorate the elements with any synchronization related decorations. Subclasses will want to disable state decoration if state decoration is being provided another way (e.g. by a SynchronizationLabelProvider). By default, trueis returned. Subclasses may override.

Returns:
whether state decoration is enabled

isDecorationEnabled

public boolean isDecorationEnabled(
Object element)
Return whether decoration is enabled for the given model element in the context to which this tester is associated. By default, the value returned from isStateDecorationEnabled() is used but subclasses may override to disable decoration of particular elements.

A team decorator should call this method before decorating a model element. If the method returns true, no team state decorations should be applied to the model element. Otherwise, the getState(Object, int, IProgressMonitor) should be consulted in order to determine what state to decorate.

Parameters:
element - the model element
Returns:
whether decoration is enabled for the given model element

getState

public int getState(
Object element,
                    int stateMask,
                    
IProgressMonitor monitor)
             throws 
CoreException
Return the synchronization state of the given element. Only the portion of the synchronization state covered by stateMask is returned. By default, this method calls Subscriber.getState(ResourceMapping, int, IProgressMonitor).

A team decorator will use this method to determine how to decorate the provided element. The ITeamStateProvider.getDecoratedStateMask(Object) returns the state that the corresponding team decorator is capable of decorating but the decorator may be configured to decorate only a portion of that state. When the team decorator invokes this method, it will pass the stateMask that it is currently configured to show. If a mask of zero is provided, this indicates that the team decorator is not configured to decorate the synchronization state of model elements.

Subclasses may want to override this method in the following cases:

  1. The subclass wishes to fire appropriate label change events when the decorated state of a model element changes. In this case the subclass can override this method to record the stateMask and returned state. It can use this recorded information to determine whether local changes or subscriber changes result in a change in the decorated state of the model element.
  2. The subclasses wishes to provide a more accurate change description for a model element that represents only a portion of the file. In this case, the subclass can use the remote file contents available from the provider to determine the proper state for the element.

Parameters:
element - the model element
stateMask - the mask that identifies which state flags are desired if present
monitor - a progress monitor
Returns:
the synchronization state of the given element
Throws:
CoreException

getTeamStateProvider

public final 
ITeamStateProvider getTeamStateProvider()
Return a team state provider that delegates to the appropriate team provider.

Returns:
a team state provider that delegates to the appropriate team provider

elementDecorated

public void elementDecorated(
Object element,
                             
ITeamStateDescription description)
A callback to the tester made from the team decorator to notify the tester that the given element has been decorated with the given state. The purpose of the callback is to allow the owner of the tester to cache the decorated state in order to detect whether a future state change requires a label update for the element.

Parameters:
element - the element that was decorated
description - a description of the decorated state of the element

Eclipse Platform
Release 3.5

Guidelines for using Eclipse APIs.

Copyright (c) Eclipse contributors and others 2000, 2008. All rights reserved.


 
 
  Published under the terms of the Eclipse Public License Version 1.0 ("EPL") Design by Interspire