如何在Eclipse RCP应用程序中使用用户输入?

时间:2015-09-08 09:32:37

标签: java eclipse-plugin swt eclipse-rcp jface

以下是我正在研究的Eclipse RCP应用程序的摘录:

UML diagram

说明:在类createContents(Composite)内的方法ContainerSelectionDialog中,我在createComposite(Composite)中调用MyComposite,它继承自抽象类{ {1}}:

AbstractCompositeProxy

内部TabFolder folder = new TabFolder((Composite) dialogArea, SWT.TOP); Composite comp = (Composite) super.createDialogArea(folder); TabItem tab = new TabItem(folder, SWT.NONE); tab.setText("Header"); tab.setControl(compositeProxy .createComposite(comp)); 我正在创建SWT小部件,例如createComposite(Composite)org.eclipse.swt.widgets.Text等。例如:

org.eclipse.swt.widgets.Combo

因此,在我的Eclipse RCP应用程序中,用户可以打开包含已定义的窗口小部件元素的对话框,在该对话框中可以输入数据。在Label label = new Label(parentComposite, SWT.NONE); label.setText("Something"); Text text = new Text(parentComposite, SWT.BORDER); GridData gridData = new GridData(); gridData.horizontalAlignment = SWT.FILL; gridData.grabExcessHorizontalSpace = true; text.setLayoutData(gridData); ,在课程okPressed()中,我想使用ContainerSelectionDialog中的getSettings()来阅读用户输入的值:

MyComposite

这不是我的设计决定。我只想了解以下内容:如何使用@Override protected void okPressed() { List<Object> results = new ArrayList<>(); results.add(abstractCompositeProxy.getSimulationSettings()); setResult(results); super.okPressed(); } 中的getSettings()方法获取值?

希望这是足够的信息,否则我会在评论中提供更多信息。我会赞美任何帮助!

1 个答案:

答案 0 :(得分:0)

以与compositeProxy相同的方式从okPressed()访问createContents()