如何从绑定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 Class 被调用,而且,我已经这样写了 class。
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 的文本字段中输入的数据。如何从 beans 访问值?当然,在处理程序 class 中创建一个新实例是行不通的。因为,它创建了一个空对象 ans returns me 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'
}
我正在尝试使用 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 Class 被调用,而且,我已经这样写了 class。
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 的文本字段中输入的数据。如何从 beans 访问值?当然,在处理程序 class 中创建一个新实例是行不通的。因为,它创建了一个空对象 ans returns me 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'
}