如何从绑定bean中读取数据?

时间:2015-08-19 07:35:04

标签: java eclipse data-binding eclipse-rcp rcp

我正在尝试使用Eclipse RCP创建一个简单的编辑器。下面是一些代码片段。

我对新文件有这个观点 -

public class NewView extends ViewPart {
private DataBindingContext m_bindingContext;
public static final String ID = "com.app.Editor.newView";
SaveFileBean bean = new SaveFileBean();
private StyledText text;

public NewView() {
}

@Override
public void createPartControl(Composite parent) {

    text = new StyledText(parent, SWT.BORDER);
    m_bindingContext = initDataBindings();
}


@Override
public void setFocus() {

}
protected DataBindingContext initDataBindings() {
    DataBindingContext bindingContext = new DataBindingContext();
    //
    IObservableValue observeTextTextObserveWidget = WidgetProperties.text(SWT.Modify).observe(text);
    IObservableValue textBeanObserveValue = PojoProperties.value("text").observe(bean);
    bindingContext.bindValue(observeTextTextObserveWidget, textBeanObserveValue, null, null);
    //
    return bindingContext;
}
}

我有SaveFileBean,我绑定数据以保存新创建的文件。

public class SaveFileBean {
private String text;
public String getText() {
    return text;
}

public void setText(String text) {
    this.text = text;
}

}

当我点击“保存”按钮时,会调用SaveHandler类,并且我已经编写了这样的类。

public class SaveHandler extends AbstractHandler implements IHandler {

@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
    Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow()
            .getShell();
    FileDialog dialog = new FileDialog(shell, SWT.SAVE);
    dialog.setFilterExtensions(new String[] { "*.txt", "*.*" });
    dialog.setFilterNames(new String[] { "Text File", "All Files" });
    String fileSelected = dialog.open();

    if (fileSelected != null) {
        //want to read data
    }
    return null;
}
}

现在,我想读取NewView中文本字段内输入的数据。如何从bean访问值?当然,它不会通过在处理程序类中创建新实例来工作。因为,它创建一个空对象,然后返回null。 :( 或者,我的方法有什么问题吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

在您的处理程序中,您可以使用以下方式获取活动部分(可能是您的视图)

public class AS400Statusfacade {
    Logger logger=Logger.getLogger(AS400Statusfacade.class);
    @Autowired
    AS400StatusDAO aS400StatusDAO=null;

    public String getAS400StatusInformation() {
        return aS400StatusDAO.getAS400Status();
    }
}