我想使用swt制作可编辑表格,但无法保存日期为
通过使用toplink在数据库中修改:
if (referenceViewId.equalsIgnoreCase(TISTableViewPart.ID)) {
//TODO YUCHEN : Register and save objects in db
System.out.println("test");
final IViewPart viewPart = workbenchPage.findView(TISTableViewPart.ID);
final TISTableViewPart vdv = (TISTableViewPart) viewPart;
WorkingUnitMasterDataImpl sessionUow = new WorkingUnitMasterDataImpl();
Object test = vdv.getLocalComposite().getTableViewer().getElementAt(1);
sessionUow.registerObject(test);
try {
sessionUow.commitAndResume();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
通过使用
Object test = vdv.getLocalComposite().getTableViewer().getElementAt(1);
我只能获取表的第一个列的对象,然后使用
sessionUow.registerObject(test);
保存更改。有人有想法将整个表作为对象进行注册和commitResume吗?提前致谢。
最佳答案
如果您使用通过ContentProvider正确设置的TableViewer,则假定ContentProvider包含表中包含的所有元素。
如果您的内容提供者实现了IStructuredContentProvider,请尝试通过getElements()方法访问这些元素。
Object[] elements = tableViever.getContentProvider().getElements();
如果要注册对象更改,可以在ContentProvider的setInput()方法中进行。确实,IContentProvider接口的javadoc建议将此方法作为注册更改的地方。
如果需要在特定时刻访问输入,则可以使用TableViewer对象通过getInput()方法访问表输入:
Object tableInput = tableViewer.getInput();
祝好运!
关于java - SWT在数据库中保存数据的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15829944/