我想使用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/

10-11 00:30