From 1a149646f2eb2449dd14d4f79e413fec9dc585bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Mon, 11 Jan 2010 23:39:45 +0100 Subject: [PATCH] ItEr43S09ImplantacionAplicacionItEr42S13: PlannerConfiguration can be enabled with printing support Calling CutyPrint to do the printing --- .../ganttz/adapters/PlannerConfiguration.java | 21 +++++++++++++++++++ .../planner/company/CompanyPlanningModel.java | 12 +++++++++++ .../web/planner/order/OrderPlanningModel.java | 13 ++++++++++++ 3 files changed, 46 insertions(+) diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/adapters/PlannerConfiguration.java b/ganttzk/src/main/java/org/zkoss/ganttz/adapters/PlannerConfiguration.java index c64e891b9..e087aff2c 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/adapters/PlannerConfiguration.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/adapters/PlannerConfiguration.java @@ -42,6 +42,10 @@ import org.zkoss.zk.ui.Component; */ public class PlannerConfiguration implements IDisabilityConfiguration { + public interface IPrintAction { + public void doPrint(); + } + public interface IReloadChartListener { public void reloadChart(); } @@ -124,6 +128,8 @@ public class PlannerConfiguration implements IDisabilityConfiguration { private List reloadChartListeners = new ArrayList(); + private IPrintAction printAction; + public PlannerConfiguration(IAdapterToTaskFundamentalProperties adapter, IStructureNavigator navigator, List data) { this.adapter = adapter; @@ -289,4 +295,19 @@ public class PlannerConfiguration implements IDisabilityConfiguration { } } + public boolean isPrintEnabled() { + return printAction != null; + } + + public void setPrintAction(IPrintAction printAction) { + this.printAction = printAction; + } + + public void print() { + if (!isPrintEnabled()) { + throw new UnsupportedOperationException("print not supported"); + } + printAction.doPrint(); + } + } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningModel.java index c9e66e683..0e88cf19f 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningModel.java @@ -75,7 +75,9 @@ import org.zkforge.timeplot.geometry.ValueGeometry; import org.zkoss.ganttz.Planner; import org.zkoss.ganttz.adapters.IStructureNavigator; import org.zkoss.ganttz.adapters.PlannerConfiguration; +import org.zkoss.ganttz.adapters.PlannerConfiguration.IPrintAction; import org.zkoss.ganttz.extensions.ICommandOnTask; +import org.zkoss.ganttz.print.CutyPrint; import org.zkoss.ganttz.timetracker.TimeTracker; import org.zkoss.ganttz.timetracker.zoom.IZoomLevelChangedListener; import org.zkoss.ganttz.timetracker.zoom.ZoomLevel; @@ -181,6 +183,7 @@ public abstract class CompanyPlanningModel implements ICompanyPlanningModel { configuration.setDoubleClickCommand(doubleClickCommand); } addAdditionalCommands(additional, configuration); + addPrintSupport(configuration); disableSomeFeatures(configuration); planner.setConfiguration(configuration); @@ -430,6 +433,15 @@ public abstract class CompanyPlanningModel implements ICompanyPlanningModel { } } + private void addPrintSupport(PlannerConfiguration configuration) { + configuration.setPrintAction(new IPrintAction() { + @Override + public void doPrint() { + CutyPrint.print(); + } + }); + } + private Chart setupChart(Timeplot chartComponent, IChartFiller loadChartFiller, TimeTracker timeTracker) { Chart loadChart = new Chart(chartComponent, loadChartFiller, 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 7126d626a..3b044d710 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 @@ -87,8 +87,10 @@ import org.zkforge.timeplot.geometry.ValueGeometry; import org.zkoss.ganttz.Planner; import org.zkoss.ganttz.adapters.IStructureNavigator; import org.zkoss.ganttz.adapters.PlannerConfiguration; +import org.zkoss.ganttz.adapters.PlannerConfiguration.IPrintAction; import org.zkoss.ganttz.adapters.PlannerConfiguration.IReloadChartListener; import org.zkoss.ganttz.extensions.ICommand; +import org.zkoss.ganttz.print.CutyPrint; import org.zkoss.ganttz.timetracker.TimeTracker; import org.zkoss.ganttz.timetracker.zoom.DetailItem; import org.zkoss.ganttz.timetracker.zoom.IDetailItemModificator; @@ -201,6 +203,7 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { configuration .addCommandOnTask(buildTaskPropertiesCommand(taskPropertiesController)); configuration.setDoubleClickCommand(resourceAllocationCommand); + addPrintSupport(configuration, order); Tabbox chartComponent = new Tabbox(); chartComponent.setOrient("vertical"); chartComponent.setHeight("200px"); @@ -232,6 +235,16 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { setEventListenerConfigurationCheckboxes(earnedValueChart); } + private void addPrintSupport( + PlannerConfiguration configuration, Order order) { + configuration.setPrintAction(new IPrintAction() { + @Override + public void doPrint() { + CutyPrint.print(); + } + }); + } + private IDeleteMilestoneCommand buildDeleteMilestoneCommand() { IDeleteMilestoneCommand result = getDeleteMilestoneCommand(); result.setState(planningState);