2011-08-04 15 views
0

に私は、ツリーコントロールでtreeviewerコントロールを初期化しようとしているこのコードツリーからTreeViewer制御

TreeViewer m_treeViewer = new TreeViewer(m_myTree); 

を持っています。ツリーコントロールは、

!ENTRY org.eclipse.ui 4 0 2011-08-04 12:40:17.944 
!MESSAGE Unhandled event loop exception 
!STACK 0 
org.eclipse.core.runtime.AssertionFailedException: **null argument**: 
    at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:85) 
    at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:73) 
    at org.eclipse.jface.viewers.AbstractTreeViewer.**getTreePathFromItem**(AbstractTreeViewer.java:2870) 
    at org.eclipse.jface.viewers.**AbstractTreeViewer.getSelection**(AbstractTreeViewer.java:2893) 
    at org.eclipse.jface.viewers.StructuredViewer.handleSelect(StructuredViewer.java:1190) 
    at org.eclipse.jface.viewers.StructuredViewer$4.widgetSelected(StructuredViewer.java:1220) 
    at org.eclipse.jface.util.OpenStrategy.**fireSelectionEvent**(OpenStrategy.java:228) 
    at org.eclipse.jface.util.OpenStrategy.access$4(OpenStrategy.java:222) 
    at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:389) 
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) 
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) 
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066) 
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657) 
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) 
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) 
    at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) 
    at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) 
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) 
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) 
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) 
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115) 
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) 
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) 
    at org.eclipse.equinox.launcher.Main.run(Main.java:1408) 
    at org.eclipse.equinox.launcher.Main.main(Main.java:1384) 

私はこれを把握することはできませんこのよう

m_myTree= new Tree(parent, SWT.VIRTUAL); 
setTreeItemListener(); // Add a double mouse click listener 

// Code to populate the tree control.. 

m_myTree.pack(); 

を初期化されますが、私はTreeViewer制御をコントロールツリー内の項目を選択するたびに、次のスタックログで失敗しています私に手を差し伸べてください。私は空のILazyTreePathContentProviderを関連付けようとしましたが、失敗しました。

+0

1として、両方の構文を使用してみましたのですか?ここにsetTreeItemListener()メソッドを表示できますか? 2.リスナーが空の場合、この例外は発生しますか? –

+0

はい、それも起こります。コードはここにhttp://nopaste.info/57b62a0d29.htmlですが、それはかなり複雑です。とにかくこのリスナーなしでも起こるので、私は何も関係しません。問題は、TreeViewerを既存のTreeコントロールにリンクし、そのアイテムとパスをすべて正しく取得する方法です。 –

答えて

2

私は、入力がビューアに割り当てられていないと思います。

+0

既存のツリーコントロールに基づいて割り当てる方法は? –

+0

私はすでにそれを持っていると思いますが、その場合には:ビューアでsetInputメソッドを使用します。 – pimpf0r

+1

ありがとう、私は完全にTreeViewerでツリーコントロールを再構築しました、はるかに良いと思われ、MVCパターンに従います –

0

[追加]ボタンをクリックしても同様のエラーが発生します。私はTableViewerのを使用して、リスナーが何をするん

m_tableViewer.setSelection(new StructuredSelection(workplaceDetail), true); 

以下

m_tableViewer.setInput(workplaceDetail); 
関連する問題