@Override public IEnabledState getEnabledState() { if (enabledState == null) { if (conditionsChanged) { doServiceBasedChecking(); } return clipboardEnabledChecker.getEnabledState(); } else { return enabledState; } }
private void doServiceBasedChecking() { enabledState = null; if (serviceBasedEnabledChecking && clipboardEnabledChecker.getEnabledState().isEnabled()) { // only do service based checkings, if clipbaord checker allows operation if (executionTask != null && !executionTask.isCanceled()) { executionTask.cancel(); } final Collection<ILinkCreation> linkCreations = linkProvider.get(); if (!linkCreations.isEmpty()) { this.executionTask = CapUiToolkit.executionTaskFactory().create(); linkCreatorService.getExecutableState( createResultCallback(executionTask), linkCreations, executionTask); } } conditionsChanged = false; }