2012-05-16 2 views
4

보기에 기여한 Eclipse 플러그인이 있습니다. 그러나 다음 버전의 플러그인에서는 기능이 다른 방식으로 수행되기 때문에 더 이상이보기를 제공하지 않으려합니다. 그렇다면 뷰를 제거하는 방법은 무엇입니까?Eclipse 플러그인에서보기를 비 사용하는 방법

단순히 plugin.xml에서보기 선언을 제거하면 "com.foobar.view.id보기를 만들지 못했습니다"라는 업그레이드 후 오류로 표시됩니다. 이는보기가 여전히 workspace.xml에 나열되어 있기 때문에 Eclipse는 다시 시작할 때이를 작성하려고합니다.

나는 내가 plugin.xml에이 등록해야 다음 만든 더미 뷰에 대해 해당 뷰의 ID를 등록, 그래서 ... 윈도우, 쇼보기, 기타 목록에

모든 표시됩니다 어떻게 다른 뷰에서 해당 ID를 다시 사용하고 싶지 않을 때 좋은 방법으로이 오래된 뷰를 제거 할 수 있을지 생각해보십시오.

답변

1

결국 나는 오래된 활동 속임수를 가방 밖으로 꺼내 받아 들일만한 해결책을 가지고 있습니다. 후손을 위해 여기에 문서화하십시오. 그러나 누군가가 더 나은 방법을 생각해 내면 듣고 싶습니다.

첫 번째 호출에서는 아무 것도 수행하지 않지만 "의도적으로 비워 둔이 뷰"또는 사용자에게 유용한 다른 정보가 표시되므로 업그레이드가 성공했다는 것을 알 수 있도록 뷰를 닫을 수있는 빈 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 코드를 밟았을 때 등록 된 뷰를 필터링 할 수있는 유일한 방법입니다.

+0

이것은 Juno에서는 작동하지 않습니다. 뷰와 뷰 카테고리가 IPluginContribution의 것이 아니기 때문에 이런 것 같습니다 :-(어쨌든 Show View 대화 상자에서 뷰를 필터링하는 Juno의 현재 빌드에는 없다고 생각합니다. –

1

이클립스에서보기를 비추기는 쉽지 않다고 생각합니다. 당신이 질문에 그것을 진술했듯이, 당신은 그것을 제거 할 수도 있고하지 않을 수도 있습니다.

다음 버전에서는 다음에 기능을 찾을 수있는 문서가있는 더미 뷰를 포함 할 수 있습니다. 다음 번에이 더미 뷰를 다시 열지 않도록 plugin.xml의 복원 가능한 속성을 false로 설정하십시오.

그런 다음 나중에 버전을 완전히 제거 할 수 있습니다.

+0

그래, 지금은 옵션 중 하나이지만 기본적으로 "이보기는 의도적으로 비워 둔"보기 인 창,보기보기, 기타 목록에보기를 남기 싫어합니다 .-- 계속 놀고 있지만 기꺼이 계속하려고합니다. 나는 바보가되는 것이 아닙니다. –

+1

네, 그게 진짜 해결책이 아니라는 걸 압니다. 당신은 그것을 완전히 제거하거나 가짜로 제거 할 수 있지만 AFAIK는 중간에 아무것도 없습니다. –

-1

동일한 ID로 새보기를 등록하면 어떻게됩니까? 또한 오류는 처음에만 발생하며 이후 재시작시에는 발생하지 않습니다.

관련 문제