결국 나는 오래된 활동 속임수를 가방 밖으로 꺼내 받아 들일만한 해결책을 가지고 있습니다. 후손을 위해 여기에 문서화하십시오. 그러나 누군가가 더 나은 방법을 생각해 내면 듣고 싶습니다.
첫 번째 호출에서는 아무 것도 수행하지 않지만 "의도적으로 비워 둔이 뷰"또는 사용자에게 유용한 다른 정보가 표시되므로 업그레이드가 성공했다는 것을 알 수 있도록 뷰를 닫을 수있는 빈 ViewPage를 만듭니다. 우리의 경우 우리는 이제 동등한 기능을 어디서 찾아야 하는지를 설명하고 그들이 클릭 할 수있는 링크가있어 애플리케이션의 해당 부분으로 가져갈 것입니다.
둘째,
<view
allowMultiple="false"
category="com.foobar.category"
class="com.foobar.ui.views.DeprecatedView"
id="com.foobar.ui.views.OldView"
name="My Old View"
restorable="false"/>
마지막으로, 우리는 가방에서 활동 트릭을 당겨 필요 즉, 기존의 뷰 ID의 구현 등이보기 클래스를 등록하고 복원 할 수 없습니다로 표시합니다. 새로운 액티비티를 만들고 그 액티비티에 뷰를 넣는다. 이렇게하면 이전보기가 Show View, Other ... Dialog에서 필터링되어 새 사용자가 다시 볼 수 없게됩니다. 예를 들어 :
<extension
point="org.eclipse.ui.activities">
<activity
name="Deprecated"
description="Supress old views that are no longer used."
id="com.foobar.hidden">
</activity>
<activityPatternBinding
activityId="com.foobar.hidden"
pattern="com.foorbar.plugin/com.foobar.ui.views.OldView"
isEqualityPattern="true">
</activityPatternBinding>
</extension>
사용자 경험 (즉, 이전 뷰를 닫고 따라 이동) 이전보기 볼 수 있다면 업그레이드 한 후 다음 사용자가 설명 왜, 무엇을 알려주는 좋은 메시지를 얻을 수 있다는 것입니다. 어느 쪽이든, Eclipse를 종료하고 해당 뷰를 재시작하면 더 이상 Perspective에 표시되지 않습니다. 새 사용자는보기 표시 대화 상자에서보기 또는 모든 힌트를 볼 수 없으므로 모든 사용자가 업그레이드되었다고 확신하는 몇 가지 릴리스 이후에 plugin.xml 등에서 더 이상 사용되지 않는보기 등록을 제거 할 수 있습니다.
내가 경험할 수있는 최고의 경험 - 사람들이 더 나은 것을 생각한다면 행복하다.Eclipse activity filtering에 대해 더 알고 싶다면 here을보십시오. ViewRegistry와 ShowViewDialog 코드를 밟았을 때 등록 된 뷰를 필터링 할 수있는 유일한 방법입니다.
이것은 Juno에서는 작동하지 않습니다. 뷰와 뷰 카테고리가 IPluginContribution의 것이 아니기 때문에 이런 것 같습니다 :-(어쨌든 Show View 대화 상자에서 뷰를 필터링하는 Juno의 현재 빌드에는 없다고 생각합니다. –