主界面中含有一个目录树(是将一个目录下所有的文件和子文件呈现成一个可以逐级展开的树),我将树的功能单独写成一个FileTree.class,这样能够让目录树处理更清晰些。
第一次我的做法是:将建立TreeViewer和Tree写在FileTree.class中,在主界面中能够正确显示目录内容,但是刷新目录树总是没有反应。
public void showTree()
{
msgTreeViewer = new TreeViewer(msgCatalogGroup, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI);
messageTree = msgTreeViewer.getTree();
messageTree.setBounds(5, 15, 203, 420);
msgTreeViewer.setContentProvider(new FileTreeContentProvider());//内容类
msgTreeViewer.setLabelProvider(new FileTreeLabelProvider());//标签类
msgTreeViewer.setInput("conf/message");//输入
}
找了很多办法都无法解决,后来我将TreeViewer和Tree写在主界面类中,这样的话刷新目录树就能成功。
public void showTree(TreeViewer msgTreeViewer, final Tree messageTree) {
this.msgTreeViewer = msgTreeViewer;
this.messageTree = messageTree;
msgTreeViewer.setContentProvider(new FileTreeContentProvider());
msgTreeViewer.setLabelProvider(new FileTreeLabelProvider());
msgTreeViewer.setInput("conf/message");
}
刷新目录树的代码是:
TreeViewer msgTreeViewer = MainUI.getInstance().getMsgTreeViewer();
Tree messageTree = MainUI.getInstance().getMessageTree();          FileTree.getInstance().showTree(msgTreeViewer,messageTree);