From 2eb30a4c36fa33646b760455a4ced117e51152af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lorenzo=20Tilve=20=C3=81lvaro?= Date: Mon, 26 Nov 2012 09:44:05 +0100 Subject: [PATCH] Added confirmClose method to give the user a warning when leaving the order edition mode FEA: ItEr77S03Community --- .../tabs/MultipleTabsPlannerController.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/MultipleTabsPlannerController.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/MultipleTabsPlannerController.java index 8c2b88858..46feb2eba 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/MultipleTabsPlannerController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/tabs/MultipleTabsPlannerController.java @@ -64,11 +64,16 @@ import org.zkoss.ganttz.adapters.TabsConfiguration.ChangeableTab; import org.zkoss.ganttz.extensions.ITab; import org.zkoss.ganttz.extensions.TabProxy; import org.zkoss.ganttz.util.LongOperationFeedback; +import org.zkoss.ganttz.util.LongOperationFeedback.IBackGroundOperation; +import org.zkoss.ganttz.util.LongOperationFeedback.IDesktopUpdate; +import org.zkoss.ganttz.util.LongOperationFeedback.IDesktopUpdatesEmitter; import org.zkoss.ganttz.util.LongOperationFeedback.ILongOperation; +import org.zkoss.zk.ui.Desktop; import org.zkoss.zk.ui.Executions; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.event.Events; +import org.zkoss.zk.ui.util.Clients; import org.zkoss.zk.ui.util.Composer; /** @@ -423,6 +428,34 @@ public class MultipleTabsPlannerController implements Composer, } } + confirmCloseThread(comp.getDesktop()); + } + + private void confirmCloseThread(Desktop desktop) { + LongOperationFeedback + .progressive( + desktop, + new IBackGroundOperation() { + + @Override + public void doOperation( + IDesktopUpdatesEmitter desktopUpdateEmitter) { + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + desktopUpdateEmitter + .doUpdate(new IDesktopUpdate() { + + @Override + public void doUpdate() { + Clients.confirmClose(null); + Clients.confirmClose("You are about to leave the project planning edition, confirm that you have saved your changes"); + } + }); + } + }); } private TabsRegistry getTabsRegistry() {