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