novomind
I'm new here

Problem bei Update einer DataList im Zusammenhang mit RemoteFormData

Jump to solution

Ziel ist das Hinzufügen oder Andern von Elementen einer DataList per Modul, wobei die Änderung direkt in der GUI gemacht werden soll, so dass diese sofort sichtbar ist und der Benutzer wählen kann, ob er speichert oder verwirft.

Der Zugriff auf die Elemente der Liste mit folgendem Code Fragment funktioniert, aber das Setzen der aktualisierten DataList führt zu einer UnsupportedOperationException. Kann hier jemand weiterhelfen?

Page page = ...;

operationAgent = context.requireSpecialist(OperationAgent.TYPE);

OpenElementDataFormOperation editDialog = operationAgent.getOperation(OpenElementDataFormOperation.TYPE);

RemoteFormData rfd = editDialog.perform(page);

RemoteFormField<?> categoryFormField = rfd.get(masterLanguage, CATEGORY_LIST);

FormDataList dataList = (FormDataList) categoryFormField.get();

// add element to list

IdProvidingFormData formData = ((SectionFormsProducer) dataList.getProducer()).create(sectionTemplate);

FormField<Number> catEntryIdField = (FormField<Number>) formData.get(null, "st_entryId");

catEntryIdField.set(Integer.valueOf(entryId));

dataList.add(formData);

categoryFormField.set(dataList); // -> führt zu UnsupportedOperationException

editDialog.setFormData(rfd);

Exception:

ERROR 22.03.2013 15:15:40.577 (de.espirit.firstspirit.client.gui.applications.jxbrowser.MethodInvocationNode): java.lang.reflect.InvocationTargetException

FSVersion=5.0.211.55785#3218;JDK=1.7.0_13 32bit Oracle Corporation;OS=Windows 7 6.1 x86;Date=22.03.2013 15:15:40

java.lang.reflect.InvocationTargetException

          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

          at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

          at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

          at java.lang.reflect.Method.invoke(Unknown Source)

          at de.espirit.firstspirit.client.gui.applications.jxbrowser.MethodInvocationNode.invoke(MethodInvocationNode.java:49)

          at de.espirit.firstspirit.client.gui.applications.jxbrowser.InvocationProxy$1.run(InvocationProxy.java:128)

          at de.espirit.firstspirit.client.gui.util.GuiUtil$RunnableWrapper.run(GuiUtil.java:1928)

          at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

          at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

          at java.lang.Thread.run(Unknown Source)

Caused by: java.lang.UnsupportedOperationException

          at de.espirit.firstspirit.ui.gadgets.swing.ValueHoldingSwingGadgetMediator$ValueHolderMediator.assimilateValue(ValueHoldingSwingGadgetMediator.java:2400)

          at de.espirit.firstspirit.client.control.SwingGadgetControlSetRequest.handle(SwingGadgetControlSetRequest.java:31)

          at de.espirit.firstspirit.ui.operations.AbstractSwingGadgetControlRequest.handle(AbstractSwingGadgetControlRequest.java:39)

          at de.espirit.firstspirit.ui.gadgets.swing.ValueHoldingSwingGadgetMediator.handle(ValueHoldingSwingGadgetMediator.java:687)

          at de.espirit.firstspirit.ui.gadgets.swing.AggregatingSwingGadgetMediator.handle(AggregatingSwingGadgetMediator.java:191)

          at de.espirit.firstspirit.ui.gadgets.swing.AggregatingSwingGadgetMediator.handle(AggregatingSwingGadgetMediator.java:191)

          at de.espirit.firstspirit.ui.gadgets.swing.AggregatingSwingGadgetMediator.handle(AggregatingSwingGadgetMediator.java:191)

          at de.espirit.firstspirit.client.gui.SwingFormView.handle(SwingFormView.java:407)

          at de.espirit.firstspirit.client.gui.SwingMultiFormView.handle(SwingMultiFormView.java:686)

          at de.espirit.firstspirit.client.gui.tree.store.pagestore.GomModuleView.handle(GomModuleView.java:144)

          at de.espirit.firstspirit.client.gui.tree.store.pagestore.PSPageView.handle(PSPageView.java:252)

          at de.espirit.firstspirit.client.control.GuiControlEvents$Set.visit(GuiControlEvents.java:199)

          at de.espirit.firstspirit.client.control.EditorialTabsHandler.handleGuiControl(EditorialTabsHandler.java:492)

          at de.espirit.firstspirit.client.control.EditorialTabsHandler.getHandle(EditorialTabsHandler.java:339)

          at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source)

          at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

          at java.lang.reflect.Method.invoke(Unknown Source)

          at de.espirit.common.gui.RunsInEDTProxyFactory$RunsInEDTInvocationHandler.invoke(RunsInEDTProxyFactory.java:142)

          at sun.proxy.$Proxy1.getHandle(Unknown Source)

          at de.espirit.common.base.control.AbstractActionProcessor$ActionProcessDelegate.handle(AbstractActionProcessor.java:1099)

          at de.espirit.common.base.control.AbstractActionProcessor$AbstractActionProcess.handle(AbstractActionProcessor.java:1280)

          at de.espirit.common.base.control.AbstractActionProcessor$InnerActionProcess.handle(AbstractActionProcessor.java:1572)

          at de.espirit.common.base.control.AbstractActionProcessor$InnerActionProcess$1.onGrant(AbstractActionProcessor.java:1555)

          at de.espirit.common.base.control.AbstractActionProcessor$ActionProcessDelegate.grant(AbstractActionProcessor.java:956)

          at de.espirit.common.base.control.AbstractActionProcessor$AbstractActionProcess.grant(AbstractActionProcessor.java:1275)

          at de.espirit.common.base.control.AbstractActionProcessor$InnerActionProcess.grant(AbstractActionProcessor.java:1552)

          at de.espirit.common.base.control.AbstractActionProcessor$InnerActionProcess.start(AbstractActionProcessor.java:1547)

          at de.espirit.common.base.control.AbstractActionProcessor.doProcess(AbstractActionProcessor.java:435)

          at de.espirit.common.base.control.AbstractActionProcessor.access$600(AbstractActionProcessor.java:37)

          at de.espirit.common.base.control.AbstractActionProcessor$2.execute(AbstractActionProcessor.java:588)

          at de.espirit.common.util.ExecutorScheduler$ExecuteCommand.run(ExecutorScheduler.java:123)

          at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)

          at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)

          at java.util.concurrent.FutureTask.run(Unknown Source)

          ... 3 more

Danke und viele Grüße!

0 Kudos
1 Solution

Accepted Solutions
andre
I'm new here

die Gui sollte fuer eine solche aktion editable sein.

...die explizite Exception sollte auch etwas mit kontext/text bestreut werden. dass hab ich aufgenommen unter der internen ID#135792.

--

andre

View solution in original post

0 Kudos
2 Replies
andre
I'm new here

die Gui sollte fuer eine solche aktion editable sein.

...die explizite Exception sollte auch etwas mit kontext/text bestreut werden. dass hab ich aufgenommen unter der internen ID#135792.

--

andre

0 Kudos

Danke, das war es.  Viele Grüße!

0 Kudos