Search the FirstSpirit Knowledge Base
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!
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
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
Danke, das war es. Viele Grüße!