【发布时间】:2020-11-05 21:21:54
【问题描述】:
我的 RCP 应用程序中有一个简单的文件对话框,允许用户根据下面的代码 sn-p 选择文件
Label filePathLabel = new Label(composite, SWT.NULL);
filePathLabel.setText("File Path");
Text filePathText = new Text(composite, SWT.BORDER);
filePathText.setText("");
Button browseButton = new Button(composite, SWT.PUSH);
FileDialog fileDialog = new FileDialog(getShell(), SWT.SAVE);
fileDialog.setFilterExtensions(new String[] {"*.txt"});
fileDialog.setFilterNames(new String[] {"Textfiles(*.txt)"});
browseButton.addSelectionListener(new SelectionAdapter()
{
@override
public void widgetSelected(final SelectionEvent e)
{
String path = fileDialog.open();
if(path != null && !path.isEmpty())
{
filePathText.setText(path);
}
}
});
我面临的问题是,在我关闭 RCP 应用程序并重新启动它后,我无法获取文件的先前浏览位置,因为所有控件(文本、文件对话框)都将重新创建。我保存fileDialog.open 的结果,它返回路径并设置filePathText 文本控件的setText(Text text) 方法,每当我的WizardPage 重新打开以显示上一个选择的浏览位置但我关闭后我失去了对浏览位置的访问权限RCP 应用程序,所以下次我重新打开我的应用程序时,我无法将 filePathText 文本设置为以前浏览过的位置 即使在我单击浏览按钮后 Eclipse 确实指向以前浏览过的位置但是在我点击浏览按钮之前我需要知道之前浏览过的位置,以便它可以显示在Text控件中。
我在这个网站上找到了一些建议 - https://dzone.com/articles/remember-state,但我认为这不会帮助我记住相对于 FileDialog 的浏览位置状态
如果我在这里遗漏了什么,请纠正我。
【问题讨论】:
标签: eclipse eclipse-plugin swt eclipse-rcp jface