0
동적 인 애플리케이션을 만들고 싶습니다. 다른 플러그인이로드 될 때 Tree
에 TreeItem
을 추가하고 싶습니다. 예를 들어Eclipse RCP, RAP,로드 된 플러그인의 다른 뷰에서 트리를 채우는 방법
:
- 나는 플러그인이 있습니다
com.project.startup
을이 플러그인은 내부Tree
와View
있습니다. 이 - 나는 플러그인을 가지고 :
com.project.populator
.com.project.populator
는
를 시작할 때 나는 항목을 추가하는 방법을 알고 com.project.startup
에서 Tree
을 채우려하지만 난 내 코드를 작성해야 어디 때 모른다.
지금까지 나는이 사용 org.eclipse.ui.IStartup
을했다하지만 난이 오류 :
!MESSAGE Unable to execute early startup code for an extension
!STACK 0
java.lang.NullPointerException
at ro.project.populator.TreePopulator.earlyStartup(TreePopulator.java:18)
:
public class TreePopulator implements IStartup
{
@Override
public void earlyStartup()
{
ViewMenuOffers viewMenuOffers = (ViewMenuOffers) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(ViewMenuOffers.ID);
TreeViewer treeViewer = viewMenuOffers.getTreeViewer();
Tree tree = treeViewer.getTree();
TreeItem trtmItem = new TreeItem(tree, SWT.NONE);
trtmItem.setText("Item 1");
}
}
내가 TreeViewer가 초기화되지 않았 생각 ..하지만이에
createPartControl
은
ViewMenuOffers
이다.
어떻게하면됩니까? 어떻게 다른 플러그인 onStartup에서 View
에 뭔가를 추가 할 수 있습니까?
- 워크 벤치가 열려 있거나 활성 페이지가 때'earlyStartup() '메서드가 호출하게 나타날 것이라고는 보증 할 수 없습니다. 새로운'Job'을 스케쥴 할 수 있습니다. - 작업 관리자가 열리 자마자'JobManager'가 시작될 것이고, 거기서 작업 할 수 있습니다. 그러면 UI를 호출 할 때 실행되도록 보장해야합니다. –
나는 같은 일을하고 있지만'job'을 사용하고 있는데이 오류가 발생합니다 :'내부에서 오류가 발생했습니다 : "방문수 : 메뉴 채우기". 요청 서비스 수명주기 밖에서 사용할 수있는 컨텍스트가 없습니다. ' – Alex
RAP FAQ보기 -> http://wiki.eclipse.org/RAP/FAQ#No_context_available_outside_of_the_request_service_lifecycle –