2011-08-09 2 views
0

주어진 시간에 활성 대상 플랫폼을 다시로드해야하는 Eclipse에 대한 플러그인을 작성하고 있습니다. - 기본 설정 -> 플러그인 개발 -> 대상 플랫폼 -> Reload.button과 마찬가지로, 물론 내 플러그인에서 동적으로.플러그인에서 일식 동적으로 리로드 대상 플랫폼

나는 방법이있을 것 같은 것을 상상,하지만 난 입구/MagicProvider 찾을 수 없습니다 당신의 일부가 여기에

답변

5

Tried Max의 접근 방식이지만 작동하지 않는 것 같습니다. 이클립스 소스를 검색 한 결과, ITargetDefinition은 단지 작업 복사본이며 저장되어야한다는 것을 알았습니다. 따라서 코드는 다음과 같습니다 :

org.eclipse.pde.internal.core.target.provisional.ITargetPlatformService service = org.eclipse.pde.internal.core.PDECore.getDefault().acquireService(ITargetPlatformService.class.getName()); 
org.eclipse.pde.internal.core.target.provisional.ITargetDefinition target = service.getWorkspaceTargetHandle().getTargetDefinition(); 
target.resolve(IProgressMonitor); 
org.eclipse.pde.internal.core.target.provisional.LoadTargetDefinitionJob.load(target); 

그러나 가이드 라인의 최대 값은 크레디트입니다. :)

다른 사람이 내가

org.eclipse.pde.internal.ui.preferences.TargetPlatformPreferencePage 근처 줄에서 771 보라는 권유를, 어떤 정보를 필요로하는 경우 - (812) 및 방법 handleReload() 231

3

가고 :) 트릭을 알고

MagicProvider.getTargetPlatforms().getActive().reload(); 

희망 :

org.eclipse.pde.internal.core.target.provisional.ITargetPlatformService service = org.eclipse.pde.internal.core.PDECore.getDefault().acquireService(ITargetPlatformService.class.getName()); 
org.eclipse.pde.internal.core.target.provisional.ITargetDefinition target = service.getWorkspaceTargetHandle().getTargetDefinition(); 
target.resolve(IProgressMonitor); 
+0

가에서라도 작동하지 않습니다 및 org.eclipse.pde.internal.ui.editor.targetdefinition.TargetEditor 근처 라인 라인을 + eclipse Juno : org/eclipse/pde/internal/core/target/provisional/ITargetPlatformService Linux 및 Win32에서 작동합니다. – taitelman