RCP App: отключение меню при смене перспективы с тем же видом - PullRequest
0 голосов
/ 30 ноября 2010

У меня есть проблема, из-за которой я не могу устранить неполадки.У нас есть две перспективы, которые содержат одну и ту же точку зрения.Это представление имеет меню, которое включено на основе instanceof.Если я выбираю элемент из дерева и щелкаю правой кнопкой мыши, меню включается, потому что экземпляр instanceof квалифицирован.Если я затем переключусь на другую перспективу, которая имеет тот же вид, выбор в дереве не изменится, но если я щелкну правой кнопкой мыши на том же выбранном элементе, меню больше не будет активировано.Я должен выключить вид и вернуться, чтобы снова включить меню.Вот как я определил plugin.xml.Я думаю, что plugin.xml - это хорошо, потому что он прекрасно работает, когда НЕ меняет перспективу.Мне просто нужно выяснить, почему изменение перспективы обновляет меню, но не перепроверяет.

Кроме того, если я переключаюсь на перспективу, которая не содержит этого вида, меню включается, когда я возвращаюсь.

<extension

     point="org.eclipse.ui.commands">

  <command

        id="com.cerner.automation.touchstone.workflow.Modify"

        name="%com.cerner.automation.touchstone.workflow.Modify.label">

  </command>

<extension

      point="org.eclipse.ui.handlers">

   <handler



         commandId="com.cerner.automation.touchstone.workflow.Modify">

      <enabledWhen>

         <with

               variable="selection">

            <iterate

                  ifEmpty="false"

                  operator="and">

               <instanceof

                     value="com.cerner.automation.touchstone.model.ModuleItem">

               </instanceof>

            </iterate>  

         </with>

      </enabledWhen>

   </handler>

</extension>

<extension

     point="org.eclipse.ui.menus">

  <menuContribution

        locationURI="popup:com.cerner.automation.touchstone.views.ModuleView">

     <command

           commandId="com.cerner.automation.touchstone.workflow.Modify"

           icon="icons/modify.png"

           label="%com.cerner.automation.touchstone.workflow.Modify.label"

           style="push">

     </command>

  </menuContribution>

 </extension>

Ответы [ 2 ]

1 голос
/ 11 декабря 2010

Кажется, проблема в элементе, потому что отбор обрабатывается для любых провайдеров выбора в перспективе.При переключении выбора перспективы изменения и пункт меню становится недоступным.Я использовал valative activePartID, чтобы ограничить количество поставщиков выбора одним представлением.Предоставленный пример:

<handler
            class="ru.griffo.core.handlers.EditBOHandler"
            commandId="ru.scops.applications.edit">
         <activeWhen>
            <and>
               <with
                     variable="activePartId">
                  <equals
                        value="ru.scops.applications.applications">
                  </equals>
               </with>
               <count
                     value="+">
               </count>
           <with
                 variable="selection">
              <iterate
                    ifEmpty="false"
                    operator="and">
                 <not>
                    <test
                          property="ru.griffo.core.ui.bo.super"
                          value="griffo.state.State">
                    </test>
                 </not>
              </iterate>
           </with>
        </and>
     </activeWhen>
  </handler>
0 голосов
/ 17 марта 2011

Скорее всего, вы столкнулись с этой ошибкой: https://bugs.eclipse.org/bugs/show_bug.cgi?id=334524 Какую версию Eclipse вы используете? Я исправил это в 3.7 M5. Это происходит в последних сборках или 3.7 M6?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...