Get zoom from session in project Gantt view

Add a listener in order to update the value in the session for each project when
user changes the zoom.

FEA: ItEr77S15FilteringEnhancements
This commit is contained in:
Manuel Rego Casasnovas 2013-02-06 14:28:02 +01:00
parent ee7c6d708a
commit c610ccd140

View file

@ -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;
@ -319,9 +320,7 @@ public class OrderPlanningModel implements IOrderPlanningModel {
.isExpandOrderPlanningViewCharts());
addAdditional(additional, configuration);
ZoomLevel defaultZoomLevel = OrderPlanningModel
.calculateDefaultLevel(configuration);
planner.setInitialZoomLevel(defaultZoomLevel);
planner.setInitialZoomLevel(getZoomLevel(configuration, order));
final boolean writingAllowed = isWritingAllowedOnOrder();
ISaveCommand saveCommand = setupSaveCommand(configuration,
@ -370,6 +369,9 @@ public class OrderPlanningModel implements IOrderPlanningModel {
PROFILING_LOG.debug("setConfiguration on planner took: "
+ (System.currentTimeMillis() - setConfigurationTime) + " ms");
long preparingChartsAndMisc = System.currentTimeMillis();
setupZoomLevelListener(planner, order);
// Prepare tabpanels
Tabpanels chartTabpanels = new Tabpanels();
@ -402,6 +404,36 @@ public class OrderPlanningModel implements IOrderPlanningModel {
+ (System.currentTimeMillis() - overalProgressContentTime));
}
private ZoomLevel getZoomLevel(
PlannerConfiguration<TaskElement> configuration, Order order) {
ZoomLevel sessionZoom = (ZoomLevel) Sessions.getCurrent().getAttribute(
order.getCode() + "-zoomLevel");
if (sessionZoom != null) {
return sessionZoom;
}
return OrderPlanningModel.calculateDefaultLevel(configuration);
}
private void setupZoomLevelListener(Planner planner, Order order) {
planner.getTimeTracker().addZoomListener(
getSessionZoomLevelListener(order));
}
private IZoomLevelChangedListener getSessionZoomLevelListener(
final Order order) {
IZoomLevelChangedListener zoomListener = new IZoomLevelChangedListener() {
@Override
public void zoomLevelChanged(ZoomLevel detailLevel) {
Sessions.getCurrent().setAttribute(
order.getCode() + "-zoomLevel", detailLevel);
}
};
keepAliveZoomListeners.add(zoomListener);
return zoomListener;
}
private OrderEarnedValueChartFiller earnedValueChartFiller;
private void setupAdvanceAssignmentPlanningController(final Planner planner,