Interface IEvaluationService
- All Superinterfaces:
- IDisposable,- IServiceWithSources
IPropertyChangeListener that will be notified as changes occur.
 
 This can be used to implement core expressions in client extension points
 similar to the <enabledWhen> of
 org.eclipse.ui.handlers/handler elements.
 
 The service will fire Boolean.TRUE and
 Boolean.FALSE for the oldValue and newValue in the property
 change events.
 
 Adding the evaluation listener will fire one change with
 oldValue=null and newValue="evaluated expression".
 Remove the IEvaluationReference will fire one change with
 oldValue="last evaluated value" and newValue=null.
 
 Adding a service listener will fire the PROP_NOTIFYING property
 change event with newValue=Boolean.TRUE when a source change
 causes expression evaluations to update and another PROP_NOTIFYING
 property change event with newValue=Boolean.FALSE when the
 changes that started with a specific source change have finished. The
 PROP_NOTIFYING change events will not be fired for source changes
 caused by the outer most recalculations.
 
 Variable sources can be provided to this service using the
 org.eclipse.ui.services Extension Point. This makes the
 available to <with/> expressions.
 
This service can be acquired from your service locator:
IEvaluationService service = (IEvaluationService) getSite().getService(IEvaluationService.class);
- This service is available globally.
- Since:
- 3.4
- Restriction:
- This interface is not intended to be implemented by clients.
- Restriction:
- This interface is not intended to be extended by clients.
- 
Field SummaryFields
- 
Method SummaryModifier and TypeMethodDescriptionaddEvaluationListener(Expression expression, IPropertyChangeListener listener, String property) Add a listener that can be notified when the workbench application context causes the expression evaluation value to change.voidRe-add a property change listener that has already been removed byremoveEvaluationListener(IEvaluationReference).voidaddServiceListener(IPropertyChangeListener listener) When a source change starts recalculating expressions thePROP_NOTIFYINGproperty change is fired with the newValue=Boolean.TRUE.Get an IEvaluationContext that contains the current state of the workbench application context.voidRemove the listener represented by the evaluation reference.voidremoveServiceListener(IPropertyChangeListener listener) Remove the listener forPROP_NOTIFYINGproperty changes.voidrequestEvaluation(String propertyName) Request that this service re-evaluate all registered core expressions that contain a property tester for the given property name.Methods inherited from interface org.eclipse.ui.services.IDisposabledisposeMethods inherited from interface org.eclipse.ui.services.IServiceWithSourcesaddSourceProvider, removeSourceProvider
- 
Field Details- 
RESULTA general property that can be used.- See Also:
 
- 
PROP_NOTIFYINGThe property used to notify any service listeners.- See Also:
 
 
- 
- 
Method Details- 
addServiceListenerWhen a source change starts recalculating expressions thePROP_NOTIFYINGproperty change is fired with the newValue=Boolean.TRUE. This property is not fired for any source changes caused by the outer recalculations.Note: listeners should be removed when no longer necessary. If not, they will be removed when the IServiceLocator used to acquire this service is disposed. - Parameters:
- listener- The listener to be notified. Must not be- null. Has no effect if the listener has already been added.
 
- 
removeServiceListenerRemove the listener forPROP_NOTIFYINGproperty changes.- Parameters:
- listener- The listener to remove. Must not be- null. Has no effect if the listener is not currently registered.
 
- 
addEvaluationListenerIEvaluationReference addEvaluationListener(Expression expression, IPropertyChangeListener listener, String property) Add a listener that can be notified when the workbench application context causes the expression evaluation value to change.Note: listeners should be removed when no longer necessary. If not, they will be removed when the IServiceLocator used to acquire this service is disposed. - Parameters:
- expression- the core expression to evaluate.
- listener- the listener to be notified.
- property- the property contained in the notification
- Returns:
- a token that can be used to remove this listener.
         removeEvaluationListener(IEvaluationReference)
 
- 
addEvaluationReferenceRe-add a property change listener that has already been removed byremoveEvaluationListener(IEvaluationReference).It will only accept IEvaluationReferences returned from a previous call to addEvaluationListener(Expression, IPropertyChangeListener, String)on this service.Note: references should be removed when no longer necessary. If not, they will be removed when the IServiceLocator used to acquire this service is disposed. - Parameters:
- ref- The listener to re-add.
- See Also:
 
- 
removeEvaluationListenerRemove the listener represented by the evaluation reference.- Parameters:
- ref- the reference to be removed.
 
- 
getCurrentStateIEvaluationContext getCurrentState()Get an IEvaluationContext that contains the current state of the workbench application context. This context changes with the application state, but becomes invalid when the global current selection changes.Note: This context should not be modified. - Returns:
- the latest context.
- See Also:
 
- 
requestEvaluationRequest that this service re-evaluate all registered core expressions that contain a property tester for the given property name. This will fire aPROP_NOTIFYINGproperty change event to service listeners.Notes: - the property must be able to return the new value before this re-evaluation is requested
- limit calls to this method to avoid unnecessary churn
- A re-evaluation that does not change the value of an expression will not fire a property change event
 - Parameters:
- propertyName- The fully qualified property name, like- org.eclipse.core.resources.name. Must not be- null.
- Since:
- 3.4
 
 
-