0

propertyTester と有効化ハンドラーに問題があります。プロパティは areUpdatesAvailable で、このプロパティが true の場合、ハンドラーが有効になります。ハンドラーが実行された後、areUpdatesAvailable の値は false になりますが、現在の設定では、選択が変更されたときのみチェックされます。したがって、アイテムを右クリックして Update ハンドラーを呼び出し、選択内容を変更せずにアイテムを再度右クリックすると、プロパティ テスターが再度呼び出されないため、更新は引き続き有効になります。ハンドラーが実行された後に再度チェックする方法はありますか?

<handler
      class="com.cerner.automation.touchstone.handlers.UpdateExternalReference"
      commandId="com.cerner.automation.touchstone.workflow.Update">
      <enabledWhen>
           <with
                variable="selection">
                <test
                     property="com.cerner.automation.touchstone.testers.nodeItem.areUpdatesAvailable" value="true" forcePluginActivation="true">
                </test>
                <iterate
                     ifEmpty="false"
                     operator="and">
                     <instanceof
                          value="com.cerner.automation.touchstone.model.ExternalReferenceItem">
                     </instanceof>
                </iterate>
               <test
                forcePluginActivation="true"
                property="com.cerner.automation.touchstone.testers.nodeItem.isInternal"
                value="true">
                    </test>
           </with>
      </enabledWhen>
 </handler>
4

1 に答える 1

1

私がやったことは、ハンドラーが完了した後に requestEvaluation を使用することでした。

final IEvaluationService evaluationService = (IEvaluationService) window.getService(IEvaluationService.class);
        evaluationService.requestEvaluation(property);
于 2010-11-29T21:39:30.533 に答える