0

私は現在、Eclipseプラグインがどのように機能するかを学んでいます。テーブルをビューに入れたいのですが、サンプルビュープラグインをしばらくいじっていますが、それでも機能させることができません。サンプルビュープラグインのコードスニペットは次のとおりです。

package com.example.helloworld2.views;


import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.part.*;
import org.eclipse.jface.viewers.*;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.jface.action.*;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.ui.*;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.SWT;

public class SampleView extends ViewPart {

    /**
     * The ID of the view as specified by the extension.
     */
    public static final String ID = "com.example.helloworld2.views.SampleView";

    private TableViewer viewer;
    private Action action1;
    private Action action2;
    private Action doubleClickAction;

    /*
     * The content provider class is responsible for
     * providing objects to the view. It can wrap
     * existing objects in adapters or simply return
     * objects as-is. These objects may be sensitive
     * to the current input of the view, or ignore
     * it and always show the same content 
     * (like Task List, for example).
     */

    class ViewContentProvider implements IStructuredContentProvider {
        public void inputChanged(Viewer v, Object oldInput, Object newInput) {
        }
        public void dispose() {
        }
        public Object[] getElements(Object parent) {
            return new String[] { "Onsdfsde", "Twosdfsd", "Threesdf" };
        }
    }
    class ViewLabelProvider extends LabelProvider implements ITableLabelProvider {
        public String getColumnText(Object obj, int index) {
            return getText(obj);
        }
        public Image getColumnImage(Object obj, int index) {
            return getImage(obj);
        }
        public Image getImage(Object obj) {
            return PlatformUI.getWorkbench().
                    getSharedImages().getImage(ISharedImages.IMG_OBJ_ELEMENT);
        }
    }
    class NameSorter extends ViewerSorter {
    }

    /**
     * The constructor.
     */
    public SampleView() {
    }

    /**
     * This is a callback that will allow us
     * to create the viewer and initialize it.
     */
    public void createPartControl(Composite parent) {
        viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
        viewer.setContentProvider(new ViewContentProvider());
        viewer.setLabelProvider(new ViewLabelProvider());
        viewer.setSorter(new NameSorter());
        viewer.setInput(getViewSite());

        // Create the help context id for the viewer's control
        PlatformUI.getWorkbench().getHelpSystem().setHelp(viewer.getControl(), "com.example.helloworld2.viewer");

    }

...
}

ビューコンテンツプロバイダーがビュー内にコンテンツを配置する責任があるようですが、どのように正確にテーブルを挿入しますか?理想的には、最終的に複雑なツリーテーブルを挿入したいと思います。

http://www.java2s.com/Tutorial/Java/0280__SWT/CreateaTreeTable.htm

しかし、誰かが私に似たようなもの、あるいは私が読むことができるいくつかのリソースでさえ私に正しい直接を向けることができれば、それは素晴らしいことです。

ありがとう

4

2 に答える 2

1

「newTableViewer()」呼び出しの一部として、createPartControl()にすでにテーブルを挿入しています。別のウィジェットを挿入するには、createPartControl()を変更して、代わりにTreeTableViewerを使用するなど、別のことを行います。

于 2012-06-21T00:44:12.530 に答える
0

Table table = viewer.getTable();

私があなたの質問から推測することから、私は上記のコードがあなたが望むことをするべきだと思います。

于 2012-07-18T10:11:04.503 に答える