2014-12-18 4 views
0

Menu Contribution 및 PersistedState의 문제점이 있습니다. 나는 VM 인수에서 -clearPersistedState 플래그를 제거하기 전에 아무런 문제가 없었다.Eclipse E4 - 메뉴 기여도 및 PersistedState

이제 앱에 이상한 동작이 발생하고 코드가 실행될 때마다 메뉴 항목이 쌓이기 시작합니다. 당신은 이미 메뉴에 존재하는지 확인해야합니다, 그래서 당신은 응용 프로그램 모델에 추가

MDirectMenuItem menuItem = MMenuFactory.INSTANCE.createDirectMenuItem(); 
    menuItem.setLabel("Another Exit"); 
    menuItem.setContributionURI("bundleclass://" 
      + "com.telespazio.optsat.wizard/" 
      + ExitHandlerWithCheck.class.getName()); 
    if (!menu.getChildren().contains(menuItem)) 
     menu.getChildren().add(menuItem); 

답변

1

메뉴 항목이 지속됩니다

는 여기가 프로세서 안에 유죄 조각입니다. 현재 확인중인 contains 수표는 이것을하지 않습니다.

당신은 라벨의 일치 (또는 기여 URI 또는 ​​ID)를 확인해야합니다 같은 :

List<MMenuElement> children = menu.getChildren(); 

boolean gotExisting = false; 

for (MMenuElement child : children) 
{ 
    if ("Another Exit".equals(child.getLabel()) 
    { 
     gotExisting = true; 
     break; 
    } 
} 

if (!gotExisting) 
{ 
    ... add to menu 
} 
+0

덕분에, 내 자신의 호기심에 대한 영구를 삭제하지 않는 접근을한다 국가가 다른 이상한 행동을 창출합니까? 내가 말하고자했던 것은 깃발을 제거한 후에 무엇을 기대해야 하는가? – unclejohn00

+0

파편에 문제가 있었지만 지금까지 해결되었을 수 있습니다. –

+0

몇 가지 버그가 있다는 것을 의미합니까? 기본적으로 필자는 Eclipse 자체에서 -clearPersistedState 플래그가 자동으로 구성에 추가되었다고 생각합니다. 이유는 다음과 같습니다. – unclejohn00