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);