diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java b/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java index b2d58cb01..4f54d2fa2 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java @@ -62,6 +62,7 @@ import org.zkoss.zk.mesg.MZk; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Executions; import org.zkoss.zk.ui.HtmlMacroComponent; +import org.zkoss.zk.ui.Sessions; import org.zkoss.zk.ui.UiException; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.EventListener; @@ -277,7 +278,9 @@ public class Planner extends HtmlMacroComponent { return; } this.fixedZoomByUser = true; + initialZoomLevel = zoomLevel; + Sessions.getCurrent().setAttribute("zoomLevel", zoomLevel); ganttPanel.setZoomLevel(zoomLevel, scrollLeft); } @@ -409,8 +412,7 @@ public class Planner extends HtmlMacroComponent { if (command.equals("onZoomLevelChange")){ zoomindex= (Integer) retrieveData(request, "zoomindex"); scrollLeft = (Integer) retrieveData(request, "scrollLeft"); - - setZoomLevel((ZoomLevel)((Listbox)getFellow("listZoomLevels")) + setZoomLevel((ZoomLevel) ((Listbox) getFellow("listZoomLevels")) .getModel().getElementAt(zoomindex), scrollLeft); return true; diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/company/CompanyPlanningController.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/company/CompanyPlanningController.java index a85c5fdcf..277aa12e0 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/company/CompanyPlanningController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/company/CompanyPlanningController.java @@ -115,6 +115,11 @@ public class CompanyPlanningController implements Composer { && !(parameters.isEmpty())) { zoomLevelParameter = parameters.get("zoom")[0]; } + ZoomLevel sessionZoom = (ZoomLevel) Sessions.getCurrent().getAttribute( + "zoomLevel"); + if (sessionZoom != null) { + zoomLevelParameter = sessionZoom.getInternalName(); + } if (zoomLevelParameter != null) { planner.setInitialZoomLevel(ZoomLevel .getFromString(zoomLevelParameter)); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/company/CompanyPlanningModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/company/CompanyPlanningModel.java index db9507225..f6f58d44f 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/company/CompanyPlanningModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/company/CompanyPlanningModel.java @@ -230,8 +230,11 @@ public class CompanyPlanningModel implements ICompanyPlanningModel { addPrintSupport(configuration); disableSomeFeatures(configuration); - ZoomLevel defaultZoomLevel = OrderPlanningModel + ZoomLevel defaultZoomLevel = sessionGetZoomLevel(); + if (defaultZoomLevel == null) { + defaultZoomLevel = OrderPlanningModel .calculateDefaultLevel(configuration); + } OrderPlanningModel.configureInitialZoomLevelFor(planner, defaultZoomLevel); @@ -264,6 +267,17 @@ public class CompanyPlanningModel implements ICompanyPlanningModel { } } + private ZoomLevel sessionGetZoomLevel() { + return (ZoomLevel) Sessions.getCurrent().getAttribute("zoomLevel"); + } + + private void sessionSetZoomLevel(ZoomLevel level) { + if (level != null) { + Sessions.getCurrent().setAttribute("zoomLevel", level); + System.out.println("setting !"); + } + } + private BaseCalendar getDefaultCalendar() { return configurationDAO.getConfiguration().getDefaultCalendar(); } @@ -660,7 +674,7 @@ public class CompanyPlanningModel implements ICompanyPlanningModel { @Override public void zoomLevelChanged(ZoomLevel detailLevel) { loadChart.setZoomLevel(detailLevel); - + sessionSetZoomLevel(detailLevel); transactionService .runOnReadOnlyTransaction(new IOnTransaction() { @Override diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningController.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningController.java index 5c59f04c9..3b2f5e7bb 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningController.java @@ -172,6 +172,21 @@ public class OrderPlanningController implements Composer { && !(parameters.isEmpty())) { zoomLevelParameter = parameters.get("zoom")[0]; } + ZoomLevel sessionZoom = (ZoomLevel) Sessions.getCurrent().getAttribute( + "zoomLevel"); + // ZoomLevel sessionZoom = (ZoomLevel) + // Sessions.getCurrent().getAttribute( + // order.getCode() + "zoomLevel"); + if (order != null) { + System.out.println("expecting to get" + order.getCode() + + sessionZoom); + } else { + System.out.println("expecting to get (null)" + sessionZoom); + } + if (sessionZoom != null) { + zoomLevelParameter = sessionZoom.getInternalName(); + } + if (zoomLevelParameter != null) { planner.setInitialZoomLevel(ZoomLevel .getFromString(zoomLevelParameter)); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningModel.java index 910b561a8..573ba6a98 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningModel.java @@ -123,6 +123,7 @@ import org.zkoss.ganttz.timetracker.zoom.ZoomLevel; import org.zkoss.ganttz.util.Interval; import org.zkoss.ganttz.util.ProfilingLogFactory; import org.zkoss.zk.ui.Executions; +import org.zkoss.zk.ui.Sessions; import org.zkoss.zk.ui.WrongValueException; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.EventListener; @@ -1174,6 +1175,7 @@ public class OrderPlanningModel implements IOrderPlanningModel { @Override public void zoomLevelChanged(ZoomLevel detailLevel) { loadChart.setZoomLevel(detailLevel); + sessionStoreZoomLevel(detailLevel); transactionService .runOnReadOnlyTransaction(new IOnTransaction() { @@ -1189,6 +1191,10 @@ public class OrderPlanningModel implements IOrderPlanningModel { } }); } + + private void sessionStoreZoomLevel(ZoomLevel detailLevel) { + Sessions.getCurrent().setAttribute("zoomLevel", detailLevel); + } }; keepAliveZoomListeners.add(zoomListener);