簡體   English   中英

如何從綁定bean讀取數據?

[英]How to read data from binding bean?

我正在嘗試使用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中獲取價值? 當然,通過在處理程序類中創建新實例是行不通的。 因為,它創建了一個空對象,ans返回了null。 :(或者,我的方法有什么問題嗎?

謝謝!

在處理程序中,您可以使用以下方法獲取活動部分(大概是您的視圖):

IWorkbenchPart part = HandlerUtil.getActivePart(event);

if (part instanceof NewView) {
   NewView newView = (NewView)part;

   ... call a method you define on NewView to access your 'bean' 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM