SWT在数据库中保存数据的问题

时间:2013-04-05 09:09:01

标签: java swt toplink

我正在尝试使用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);

我只能获得表格的第一个colomne的对象,然后我使用

sessionUow.registerObject(test);

保存更改。有人有想法将整个表作为对象来注册和commitResume吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

如果您正在使用通过ContentProvider正确设置的TableViewer,则假定ContentProvider保存表中包含的所有元素。

如果内容提供程序实现了IStructuredContentProvider,请尝试通过getElements()方法访问这些元素。

Object[] elements = tableViever.getContentProvider().getElements();

如果要注册对象更改,可以在ContentProvider的方法setInput()中执行此操作。实际上,IContentProvider接口的javadoc建议将此方法作为注册更改的位置。

如果您需要在某个时刻访问输入,TableViewer对象可让您通过getInput()方法访问表输入:

Object tableInput = tableViewer.getInput();
祝你好运!