Dieses Ticket behebt Fehler, die während des Schließens eines Dialogs auftreten. Außerdem führt es Änderungen in der API der DefaultDialogModel Klasse ein, die zur Erstellung von Dialogen verwendet wird. Neu kann ein Argument mitgegeben werden, ob der Dialog schließbar sein soll oder nicht. Schließbar bedeutet in diesem Zusammenhang die Funktionalität, dass der Schließen-X-Knopf oder das Klicken im Hintergrund des Dialogs den Dialog schließt.
Test
In der Anwendung die unten aufgeführten Tests durchführen.
Test 1
- Element anlegen klicken.
- Änderung vornehmen.
- In Dialoghintergrund klicken.
- "Verwerfen" wählen
- Fehler: Operation crasht:
{{{
com.top_logic.util.error.TopLogicException: Internal error at com.top_logic.mig.html.layout.CommandDispatcher.internalDispatchCommand(CommandDispatcher.java:218) at com.top_logic.mig.html.layout.CommandDispatcher.internalDispatch(CommandDispatcher.java:134) at com.top_logic.mig.html.layout.CommandDispatcher.dispatchCommand(CommandDispatcher.java:127) at com.top_logic.layout.basic.CommandHandlerCommand.executeCommand(CommandHandlerCommand.java:51) at com.top_logic.layout.basic.DirtyHandling$DirtyHandlingAction.continueExecution(DirtyHandling.java:560) at com.top_logic.layout.basic.DirtyHandling$DiscardChanges.executeCommand(DirtyHandling.java:404) at com.top_logic.layout.form.model.ExecutableCommandField.executeCommand(ExecutableCommandField.java:76) at com.top_logic.layout.basic.ActivateCommand.execute(ActivateCommand.java:94) at com.top_logic.layout.basic.AbstractControlBase.executeCommand(AbstractControlBase.java:981) at com.top_logic.layout.basic.component.ControlSupport.executeCommand(ControlSupport.java:223) at com.top_logic.layout.basic.component.ControlComponent$DispatchAction.handleCommand(ControlComponent.java:233) at com.top_logic.tool.boundsec.CommandHandlerUtil.handleCommand(CommandHandlerUtil.java:31) at com.top_logic.mig.html.layout.LayoutComponent.dispatchCommand(LayoutComponent.java:3076) at com.top_logic.mig.html.layout.CommandDispatcher.internalDispatchCommand(CommandDispatcher.java:196) at com.top_logic.mig.html.layout.CommandDispatcher.internalDispatch(CommandDispatcher.java:134) at com.top_logic.mig.html.layout.CommandDispatcher.dispatchCommand(CommandDispatcher.java:127) at com.top_logic.base.services.simpleajax.AJAXServlet.processRequest(AJAXServlet.java:686) at com.top_logic.base.services.simpleajax.AJAXServlet.doPost(AJAXServlet.java:359)
Caused by: java.lang.ClassCastException: class com.top_logic.tool.boundsec.BoundLayout cannot be cast to class com.top_logic.layout.form.component.FormComponent (com.top_logic.tool.boundsec.BoundLayout and com.top_logic.layout.form.component.FormComponent are in unnamed module of loader org.apache.catalina.loader.ParallelWebappClassLoader @4e8598d9) at com.top_logic.layout.form.component.AbstractCreateComponent$CancelHandler.handleCommand(AbstractCreateComponent.java:387) at com.top_logic.tool.boundsec.CommandHandlerUtil.handleCommand(CommandHandlerUtil.java:31) at com.top_logic.mig.html.layout.LayoutComponent.dispatchCommand(LayoutComponent.java:3076) at com.top_logic.mig.html.layout.CommandDispatcher.internalDispatchCommand(CommandDispatcher.java:196) ... 54 more }}}
Test 2
- Element anlegen klicken.
- Änderung vornehmen.
- "Abbrechen" Knopf klicken.
- Fehler: Es erscheint trotzdem nochmal die Rückfrage "Sie haben Änderungen vorgenommen".
Test 3
- Im Modell-Editor Attribut anlegen.
- Änderung im Dialog vornehmen.
- In den Hintergrund klicken.
- Fehler: Dialog schließt sich ohne Rückfrage.
Test 4
- Zu dieser Seite navigieren: Technnisches Demo > Layout-Framework#1 > Formulare > Form Controls (inline)
- Die verschiedenen progressComand Knöpfe drücken, um den ProgressDialog zu öffnen.
- Testen, dass er nicht schliessbar ist, ausser man drückt den Abbrechnen Knopf.