Скрыть / Удалить перспективу, предоставленную другим плагином - eclipse - PullRequest
0 голосов
/ 03 сентября 2018

Я заметил, что у меня были зависимости от некоторых функций разработки Eclipse JDT и плагинов, и из-за этого RCP показывал какую-то другую перспективу от других плагинов пользовательского интерфейса, что является ненужными записями в моем продукте Preference Perspective.

Я попытался использовать приведенный ниже фрагмент, но все же перспектива отображается в предпочтительной перспективе.

Вызовите метод removeUnWantedPerspectives () (прилагается ниже) из метода postWindowCreate () класса расширения вашего RCP WorkbenchWindowAdvisor -

    private String[] IGNORE_PERSPECTIVES = new String[] {
       "com.abc.xyz.ui.calibrationPerspective" };

/**
 * Removes the unwanted perspectives from your RCP application
 */
private void removeUnWantedPerspectives() {
    IPerspectiveRegistry perspectiveRegistry = PlatformUI.getWorkbench().getPerspectiveRegistry();
    IPerspectiveDescriptor[] perspectiveDescriptors = perspectiveRegistry.getPerspectives();
    List ignoredPerspectives = Arrays.asList(GenericConstants.IGNORE_PERSPECTIVES);
    List removePerspectiveDesc = new ArrayList();

    // Add the perspective descriptors with the matching perspective ids to the list
    for (IPerspectiveDescriptor perspectiveDescriptor : perspectiveDescriptors) {
        if(ignoredPerspectives.contains(perspectiveDescriptor.getId())) {
            removePerspectiveDesc.add(perspectiveDescriptor);
        }
    }

    // If the list is non-empty then remove all such perspectives from the IExtensionChangeHandler
    if(perspectiveRegistry instanceof IExtensionChangeHandler && !removePerspectiveDesc.isEmpty()) {
        IExtensionChangeHandler extChgHandler = (IExtensionChangeHandler) perspectiveRegistry;
        extChgHandler.removeExtension(null, removePerspectiveDesc.toArray());
    }
}

enter image description here Я также пытался с расширением деятельности, но это не работает для меня

 <extension
      id="com.abc.xyz.pmse.application.activities.hideperspective"
      name="Hide Perspectives"
      point="org.eclipse.ui.activities">
   <activityPatternBinding
         activityId="com.abc.xyz.pmse.application.activities.hideperspective"
         pattern=".*/com.abc.xyz.ui.calibrationperspective">
   </activityPatternBinding>
   <activityPatternBinding
         activityId="com.abc.xyz.pmse.application.activities.hideperspective"
         pattern=".*/com.abc.xyz.ui.varianthandlingperspective">
   </activityPatternBinding>
</extension>

Мой фрагмент расширения рабочей деятельности выглядит как

      <extension
      point="org.eclipse.ui.activities">
     <activity
           id="com.abc.xyz.svn.ui.activity.hideunwantedperspective"
           name="Hide UnwantedPerspective">
        <enabledWhen>
           <equals
                 value="false">
           </equals>
        </enabledWhen>
     </activity>
   <activityPatternBinding
         activityId="com.abc.xyz.svn.ui.activity.hideunwantedperspective"
         isEqualityPattern="true"
         pattern="com.abc.xyz.ui.parameter.impl/com.abc.xyz.ui.calibrationperspective">
   </activityPatternBinding>
   <activityPatternBinding
         activityId="com.abc.xyz.svn.ui.activity.hideunwantedperspective"
         isEqualityPattern="true"
         pattern="com.abc.xyz.ui.dcmmapping/com.abc.xyz.ui.varianthandlingperspective">
   </activityPatternBinding>
   <activityPatternBinding
         activityId="com.abc.xyz.svn.ui.activity.hideunwantedperspective"
         isEqualityPattern="true"
         pattern="com.abc.xyz.ui.dcmmapping/com.abc.xyz.ui.varianthandlingperspectivenew">
   </activityPatternBinding>
</extension>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...