public void testPropertyChange() throws Exception {
    IWorkbenchWindow window = openTestWindow();
    IEvaluationService service = (IEvaluationService) window.getService(IEvaluationService.class);
    assertNotNull(service);
    MyEval listener = new MyEval();
    IExtensionRegistry registry = Platform.getExtensionRegistry();
    IConfigurationElement element = null;
    IConfigurationElement[] elements =
        registry.getConfigurationElementsFor("org.eclipse.core.expressions.definitions");
    for (int i = 0; i < elements.length && element == null; i++) {
      if (elements[i].getAttribute("id").equals("org.eclipse.ui.tests.defWithPropertyTester")) {
        element = elements[i];
      }
    }

    assertNotNull(element);
    Expression expr = ExpressionConverter.getDefault().perform(element.getChildren()[0]);
    service.addEvaluationListener(expr, listener, IEvaluationService.RESULT);
    assertFalse(listener.currentValue);
    assertEquals(1, listener.count);

    StaticVarPropertyTester.result = true;
    assertFalse(listener.currentValue);
    assertEquals(1, listener.count);

    service.requestEvaluation("org.eclipse.ui.tests.class.method");
    assertTrue(listener.currentValue);
    assertEquals(2, listener.count);

    service.requestEvaluation("org.eclipse.ui.tests.class.method");
    assertTrue(listener.currentValue);
    assertEquals(2, listener.count);
  }
 protected void requestRefresh() {
   IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
   IEvaluationService evaluationService =
       (IEvaluationService) window.getService(IEvaluationService.class);
   if (evaluationService != null) {
     evaluationService.requestEvaluation("eu.fittest.eclipse.transformtools.members_extension");
   }
 }
 /**
  * 刷新 Command 的可用状态
  *
  * @param nameSpace
  * @param properties ;
  */
 public static void refreshCommand(String nameSpace, String properties) {
   if (nameSpace != null && properties != null) {
     IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
     IEvaluationService evaluationService =
         (IEvaluationService) window.getService(IEvaluationService.class);
     if (evaluationService != null) {
       evaluationService.requestEvaluation(nameSpace + "." + properties);
     }
   }
 }
  @Override
  public boolean performOk() {
    if (this.enableAutoCheckin.getBooleanValue()) {
      if (isEmpty(this.currentValueOfRepoName) /*|| isEmpty(this.currentValueOfRepoBaseLocation)*/
          || isEmpty(this.currentValueOfUserName)
          || isEmpty(this.currentValueOfPassWord)) {
        MessageDialog.openWarning(
            getShell(),
            "Warning",
            "Please enter value to Repository Name,UserName and Password fields.");
        return false;
      }
      /*final String prj = this.preferenceStore.getString(P_REPOSITORY_PROJECT);
      if (isEmpty(prj)) {
      	if (!resetProjectName()) {
      		return false;
      	}
      } else {
      	if (!this.preferenceStore.getString(P_REPOSITORY_URL).equals(this.currentValueOfRepoUrl)) {
      		if (!resetProjectName()) {
      			return false;
      		}
      	}
      }*/
    }

    final boolean status = super.performOk();
    final IEvaluationService service =
        (IEvaluationService) PlatformUI.getWorkbench().getService(IEvaluationService.class);
    service.requestEvaluation("org.fastcode.menus.versioncontrol");
    if (status) {
      /*MessageDialog.openInformation(new Shell(), "Information",
      "The SVN url is specific to the project. While working with other project(s), please change the URL.");*/
      VersionControlPreferences.setReload(status);
    } else {
      return status;
    }
    return status;
  }