From a3ab6e818f368531f4b1761ff8fcec0e889ad052 Mon Sep 17 00:00:00 2001 From: Susana Montes Pedreira Date: Tue, 16 Feb 2010 18:42:49 +0100 Subject: [PATCH] ItEr48S04ValidacionEProbasFuncionaisItEr47S04 : Adjustment of the zoom size when it shows the company view mode after apply filters. --- .../main/java/org/zkoss/ganttz/Planner.java | 20 +++++++++++++++---- .../company/CompanyPlanningController.java | 3 +++ .../order/OrderPlanningController.java | 1 + .../web/planner/order/OrderPlanningModel.java | 3 ++- 4 files changed, 22 insertions(+), 5 deletions(-) diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java b/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java index cec4f4248..1cf193250 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java @@ -57,9 +57,10 @@ import org.zkoss.zk.ui.HtmlMacroComponent; import org.zkoss.zk.ui.util.Clients; import org.zkoss.zul.Button; import org.zkoss.zul.ListModel; +import org.zkoss.zul.Listbox; +import org.zkoss.zul.Listitem; import org.zkoss.zul.Separator; import org.zkoss.zul.SimpleListModel; -import org.zkoss.zul.api.Listbox; public class Planner extends HtmlMacroComponent { @@ -110,6 +111,8 @@ public class Planner extends HtmlMacroComponent { private GanttPanel ganttPanel; + private boolean fixedZoomByUser = false; + private List> contextualizedGlobalCommands; private CommandContextualized goingDownInLastArrowCommand; @@ -193,10 +196,11 @@ public class Planner extends HtmlMacroComponent { } public void setZoomLevel(final ZoomLevel zoomLevel) { - if (ganttPanel == null) { return; } + this.fixedZoomByUser = true; + initialZoomLevel = zoomLevel; ganttPanel.setZoomLevel(zoomLevel); } @@ -468,8 +472,8 @@ public class Planner extends HtmlMacroComponent { return ganttPanel.getTimeTracker().getDetailLevel(); } - public boolean isInitialZoomLevelAlreadySet() { - return this.initialZoomLevel != null; + public boolean isFixedZoomByUser() { + return this.fixedZoomByUser; } public void setInitialZoomLevel(final ZoomLevel zoomLevel) { @@ -498,4 +502,12 @@ public class Planner extends HtmlMacroComponent { } } + public void updateSelectedZoomLevel() { + if (!isFixedZoomByUser()) { + Listitem selectedItem = (Listitem) listZoomLevels.getItems().get( + initialZoomLevel.ordinal()); + listZoomLevels.setSelectedItem(selectedItem); + listZoomLevels.invalidate(); + } + } } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningController.java index 8b9c602e0..a09f32211 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningController.java @@ -121,6 +121,8 @@ public class CompanyPlanningController implements Composer{ model .setConfigurationToPlanner(planner, additional, doubleClickCommand, createPredicate()); + planner.updateSelectedZoomLevel(); + planner.invalidate(); } public void setAdditional(List> additional) { @@ -160,6 +162,7 @@ public class CompanyPlanningController implements Composer{ // Recalculate predicate model.setConfigurationToPlanner(planner, additional, doubleClickCommand, predicate); + planner.updateSelectedZoomLevel(); planner.invalidate(); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningController.java index 624854a58..f6eb5ae4f 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningController.java @@ -160,6 +160,7 @@ public class OrderPlanningController implements Composer { private void updateConfiguration() { model.setConfigurationToPlanner(planner, order, viewSwitcher, editTaskController, calendarAllocationController, additional); + planner.updateSelectedZoomLevel(); } public EditTaskController getEditTaskController() { diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java index 7882475dd..fcce0178a 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java @@ -153,7 +153,7 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { public static void configureInitialZoomLevelFor(Planner planner, ZoomLevel defaultZoomLevel) { - if (!planner.isInitialZoomLevelAlreadySet()) { + if (!planner.isFixedZoomByUser()) { planner.setInitialZoomLevel(defaultZoomLevel); } } @@ -243,6 +243,7 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { orderReloaded = reload(order); PlannerConfiguration configuration = createConfiguration(orderReloaded); addAdditional(additional, configuration); + ZoomLevel defaultZoomLevel = OrderPlanningModel .calculateDefaultLevel(configuration); configureInitialZoomLevelFor(planner, defaultZoomLevel);