Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Eclipse插件视图中动态更改视图内容_Eclipse_Eclipse Plugin_Treeview - Fatal编程技术网

在Eclipse插件视图中动态更改视图内容

在Eclipse插件视图中动态更改视图内容,eclipse,eclipse-plugin,treeview,Eclipse,Eclipse Plugin,Treeview,我正在开发Eclipse插件,它有一个带有工具栏和按钮的树状视图。我想让插件工作,这样它会显示默认的树状视图,但在一些错误的情况下,将有一些文本和按钮初始化或更新插件。插件视图应该根据树状视图和错误视图之间插件的状态而动态更改 现在,我正在创建treeview实例,并在createPartControl方法中执行其他需要的操作,以正确显示treeview。我应该如何实现在插件视图中显示不同类型内容的动态视图?那有可能吗 createPartControlMethod的代码: public voi

我正在开发Eclipse插件,它有一个带有工具栏和按钮的树状视图。我想让插件工作,这样它会显示默认的树状视图,但在一些错误的情况下,将有一些文本和按钮初始化或更新插件。插件视图应该根据树状视图和错误视图之间插件的状态而动态更改

现在,我正在创建treeview实例,并在createPartControl方法中执行其他需要的操作,以正确显示treeview。我应该如何实现在插件视图中显示不同类型内容的动态视图?那有可能吗

createPartControlMethod的代码:

public void createPartControl(Composite parent) {
        viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
        drillDownAdapter = new DrillDownAdapter(viewer);
        viewContentProvider = new ViewContentProvider();
        viewer.setContentProvider(viewContentProvider);
        viewer.setLabelProvider(new ViewLabelProvider());
        viewer.setSorter(new NameSorter());
        viewer.setInput(getViewSite());
        viewer.expandToLevel(2);

        // Create the help context id for the viewer's control
        PlatformUI.getWorkbench().getHelpSystem().setHelp(viewer.getControl(), "my.plugin.viewer");
        makeActions();
        hookContextMenu();
        hookDoubleClickAction();
        contributeToActionBars();
        setToolBarButtonsEnabled();

最简单的方法是创建一个具有StackLayout和两个子项的组合:

private Composite container;
private TreeViewer viewer;
private Composite errorComposite;
private StackLayout layout;

public void createPartControl(Composite parent) {
    container = new Composite(parent);
    layout = new StackLayout();
    viewer = new TreeViewer(container, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
    ... // setup viewer
    errorComposite = new Composite(container, SWT.NONE);
    ... // setup error view
}

谢谢你的回答。然后我是否应该将树视图或错误组合设置为容器的子级,并在需要时更改子级?您应该将两者都设置为容器的子级,并根据需要将其中一个放到顶部这就是StackLayout允许您做的:使其中一个子级完全可见。