ItEr58S17AsignacionConsolidacion: Moved advance consolidation tab to a new window.

This commit is contained in:
Manuel Rego Casasnovas 2010-05-19 19:01:05 +02:00 committed by Javier Moran Rua
parent 9cda12a115
commit 1ea0bc41f1
10 changed files with 102 additions and 130 deletions

View file

@ -75,7 +75,7 @@ public class ResourceAllocationCommand implements IResourceAllocationCommand {
@Override
public void initialize(
EditTaskController editTaskController,
EditTaskController editTaskController,
PlanningState planningState) {
this.editTaskController = editTaskController;
this.planningState = planningState;

View file

@ -26,7 +26,6 @@ import org.navalplanner.business.planner.entities.Task;
import org.navalplanner.business.planner.entities.TaskElement;
import org.navalplanner.web.planner.order.IEditTaskUtilities;
import org.navalplanner.web.planner.order.PlanningState;
import org.navalplanner.web.planner.taskedition.EditTaskController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.context.annotation.Scope;
@ -42,7 +41,7 @@ import org.zkoss.ganttz.extensions.IContextWithPlannerTask;
public class AdvanceConsolidationCommand implements
IAdvanceConsolidationCommand {
private EditTaskController editTaskController;
private AdvanceConsolidationController advanceConsolidationController;
private PlanningState planningState;
@Autowired
@ -57,7 +56,7 @@ public class AdvanceConsolidationCommand implements
editTaskUtilities.reattach(task);
if (isApplicableTo(task)) {
this.editTaskController.showEditFormAdvanceConsolidation(context,
this.advanceConsolidationController.showWindow(context,
(Task) task, planningState);
}
}
@ -68,9 +67,10 @@ public class AdvanceConsolidationCommand implements
}
@Override
public void initialize(EditTaskController editTaskController,
public void initialize(
AdvanceConsolidationController advanceConsolidationController,
PlanningState planningState) {
this.editTaskController = editTaskController;
this.advanceConsolidationController = advanceConsolidationController;
this.planningState = planningState;
}

View file

@ -27,16 +27,16 @@ import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.navalplanner.business.planner.entities.TaskElement;
import org.navalplanner.web.common.IMessagesForUser;
import org.navalplanner.web.common.Util;
import org.navalplanner.web.planner.order.PlanningState;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.context.annotation.Scope;
import org.zkoss.ganttz.extensions.IContextWithPlannerTask;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.SuspendNotAllowedException;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.Grid;
import org.zkoss.zul.Window;
/**
* Controller for {@link Advance} consolidation view.
@ -53,35 +53,41 @@ public class AdvanceConsolidationController extends GenericForwardComposer {
private Grid advancesGrid;
private Window window;
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
window = (Window) comp;
}
public void init(IContextWithPlannerTask<TaskElement> context,
public void showWindow(IContextWithPlannerTask<TaskElement> context,
org.navalplanner.business.planner.entities.Task task,
PlanningState planningState, IMessagesForUser messagesForUser) {
PlanningState planningState) {
advanceConsolidationModel.initAdvancesFor(task, context, planningState);
reloadAdvanceGrid();
}
// Triggered when closable button is clicked
public void onClose(Event event) {
cancel();
event.stopPropagation();
try {
Util.reloadBindings(window);
window.doModal();
} catch (SuspendNotAllowedException e) {
throw new RuntimeException(e);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
public void cancel() {
clear();
advanceConsolidationModel.cancel();
}
private void clear() {
close();
}
public void accept() {
advanceConsolidationModel.accept();
clear();
close();
}
private void close() {
window.setVisible(false);
}
public String getInfoAdvance() {

View file

@ -22,7 +22,6 @@ package org.navalplanner.web.planner.consolidations;
import org.navalplanner.business.planner.entities.TaskElement;
import org.navalplanner.web.planner.order.PlanningState;
import org.navalplanner.web.planner.taskedition.EditTaskController;
import org.zkoss.ganttz.extensions.ICommandOnTask;
/**
@ -32,6 +31,8 @@ import org.zkoss.ganttz.extensions.ICommandOnTask;
public interface IAdvanceConsolidationCommand extends
ICommandOnTask<TaskElement> {
void initialize(EditTaskController editTaskController, PlanningState state);
void initialize(
AdvanceConsolidationController advanceConsolidationController,
PlanningState state);
}

View file

@ -26,6 +26,7 @@ import org.navalplanner.business.orders.entities.Order;
import org.navalplanner.business.planner.entities.TaskElement;
import org.navalplanner.web.common.ViewSwitcher;
import org.navalplanner.web.planner.calendar.CalendarAllocationController;
import org.navalplanner.web.planner.consolidations.AdvanceConsolidationController;
import org.navalplanner.web.planner.taskedition.EditTaskController;
import org.zkoss.ganttz.Planner;
import org.zkoss.ganttz.extensions.ICommand;
@ -38,6 +39,7 @@ public interface IOrderPlanningModel {
void setConfigurationToPlanner(Planner planner, Order order,
ViewSwitcher viewSwitcher,
EditTaskController editTaskController,
AdvanceConsolidationController advanceConsolidationController,
CalendarAllocationController calendarAllocationController,
List<ICommand<TaskElement>> additional);

View file

@ -40,6 +40,7 @@ import org.navalplanner.web.orders.OrderCRUDController;
import org.navalplanner.web.orders.OrderElementPredicate;
import org.navalplanner.web.planner.allocation.ResourceAllocationController;
import org.navalplanner.web.planner.calendar.CalendarAllocationController;
import org.navalplanner.web.planner.consolidations.AdvanceConsolidationController;
import org.navalplanner.web.planner.taskedition.EditTaskController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.BeanDefinition;
@ -89,6 +90,9 @@ public class OrderPlanningController implements Composer {
@Autowired
private EditTaskController editTaskController;
@Autowired
private AdvanceConsolidationController advanceConsolidationController;
@Autowired
private OrderCRUDController orderCRUDController;
@ -178,8 +182,8 @@ public class OrderPlanningController implements Composer {
private void updateConfiguration() {
if (order != null) {
model.setConfigurationToPlanner(planner, order, viewSwitcher,
editTaskController, calendarAllocationController,
additional);
editTaskController, advanceConsolidationController,
calendarAllocationController, additional);
planner.updateSelectedZoomLevel();
showResorceAllocationIfIsNeeded();
}
@ -323,4 +327,8 @@ public class OrderPlanningController implements Composer {
}
}
public AdvanceConsolidationController getAdvanceConsolidationController() {
return advanceConsolidationController;
}
}

View file

@ -86,6 +86,7 @@ import org.navalplanner.web.planner.chart.ChartFiller;
import org.navalplanner.web.planner.chart.EarnedValueChartFiller;
import org.navalplanner.web.planner.chart.IChartFiller;
import org.navalplanner.web.planner.chart.EarnedValueChartFiller.EarnedValueType;
import org.navalplanner.web.planner.consolidations.AdvanceConsolidationController;
import org.navalplanner.web.planner.consolidations.IAdvanceConsolidationCommand;
import org.navalplanner.web.planner.milestone.IAddMilestoneCommand;
import org.navalplanner.web.planner.milestone.IDeleteMilestoneCommand;
@ -272,6 +273,7 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel {
public void setConfigurationToPlanner(Planner planner, Order order,
ViewSwitcher switcher,
EditTaskController editTaskController,
AdvanceConsolidationController advanceConsolidationController,
CalendarAllocationController calendarAllocationController,
List<ICommand<TaskElement>> additional) {
orderReloaded = reload(order);
@ -301,7 +303,7 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel {
configuration
.addCommandOnTask(buildTaskPropertiesCommand(editTaskController));
configuration
.addCommandOnTask(buildAdvanceConsolidationCommand(editTaskController));
.addCommandOnTask(buildAdvanceConsolidationCommand(advanceConsolidationController));
configuration
.addCommandOnTask(buildSubcontractCommand(editTaskController));
@ -767,9 +769,9 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel {
}
private IAdvanceConsolidationCommand buildAdvanceConsolidationCommand(
EditTaskController editTaskController) {
AdvanceConsolidationController advanceConsolidationController) {
IAdvanceConsolidationCommand advanceConsolidationCommand = getAdvanceConsolidationCommand();
advanceConsolidationCommand.initialize(editTaskController,
advanceConsolidationCommand.initialize(advanceConsolidationController,
planningState);
return advanceConsolidationCommand;
}

View file

@ -40,7 +40,6 @@ import org.navalplanner.web.planner.allocation.ResourceAllocationController;
import org.navalplanner.web.planner.allocation.AdvancedAllocationController.IAdvanceAllocationResultReceiver;
import org.navalplanner.web.planner.allocation.AdvancedAllocationController.Restriction;
import org.navalplanner.web.planner.allocation.AdvancedAllocationController.Restriction.IRestrictionSource;
import org.navalplanner.web.planner.consolidations.AdvanceConsolidationController;
import org.navalplanner.web.planner.order.PlanningState;
import org.navalplanner.web.planner.order.SubcontractController;
import org.navalplanner.web.planner.taskedition.TaskPropertiesController.ResourceAllocationTypeEnum;
@ -74,9 +73,6 @@ public class EditTaskController extends GenericForwardComposer {
@Autowired
private LimitingResourceAllocationController limitingResourceAllocationController;
@Autowired
private AdvanceConsolidationController advanceConsolidationController;
@Autowired
private SubcontractController subcontractController;
@ -87,12 +83,10 @@ public class EditTaskController extends GenericForwardComposer {
private Tab resourceAllocationTab;
private Tab limitingResourceAllocationTab;
private Tab subcontractTab;
private Tab advanceConsolidationTab;
private Tabpanel taskPropertiesTabpanel;
private Tabpanel resourceAllocationTabpanel;
private Tabpanel limitingResourceAllocationTabpanel;
private Tabpanel advanceConsolidationTabpanel;
private Tabpanel subcontractTabpanel;
private Component messagesContainer;
@ -111,8 +105,6 @@ public class EditTaskController extends GenericForwardComposer {
window = (Window) comp;
taskPropertiesController.doAfterCompose(taskPropertiesTabpanel);
resourceAllocationController.doAfterCompose(resourceAllocationTabpanel);
advanceConsolidationController
.doAfterCompose(advanceConsolidationTabpanel);
subcontractController.doAfterCompose(subcontractTabpanel);
limitingResourceAllocationController.doAfterCompose(limitingResourceAllocationTabpanel);
messagesForUser = new MessagesForUser(messagesContainer);
@ -130,10 +122,6 @@ public class EditTaskController extends GenericForwardComposer {
return limitingResourceAllocationController;
}
public AdvanceConsolidationController getAdvanceConsolidationController() {
return advanceConsolidationController;
}
public SubcontractController getSubcontractController() {
return subcontractController;
}
@ -146,11 +134,6 @@ public class EditTaskController extends GenericForwardComposer {
taskPropertiesController.init(this, context, taskElement);
if (isTask(taskElement)) {
advanceConsolidationController.init(context, (Task) taskElement,
planningState, messagesForUser);
}
try {
window.setTitle(_("Edit task: {0}", taskElement.getName()));
window.setMode("modal");
@ -237,17 +220,6 @@ public class EditTaskController extends GenericForwardComposer {
showEditForm(context, taskElement, planningState);
}
public void showEditFormAdvanceConsolidation(
IContextWithPlannerTask<TaskElement> context,
TaskElement taskElement, PlanningState planningState) {
if (isNotSubcontractedAndIsTask(taskElement)) {
editTaskTabbox.setSelectedPanelApi(advanceConsolidationTabpanel);
} else {
editTaskTabbox.setSelectedPanelApi(taskPropertiesTabpanel);
}
showEditForm(context, taskElement, planningState);
}
public void accept() {
try {
if (taskPropertiesController.stateHasChanged()) {
@ -258,12 +230,6 @@ public class EditTaskController extends GenericForwardComposer {
editTaskTabbox.setSelectedPanelApi(taskPropertiesTabpanel);
taskPropertiesController.accept();
if (isTask(taskElement)) {
editTaskTabbox
.setSelectedPanelApi(advanceConsolidationTabpanel);
advanceConsolidationController.accept();
}
ResourceAllocationTypeEnum currentState = taskPropertiesController.getCurrentState();
if (ResourceAllocationTypeEnum.NON_LIMITING_RESOURCES.equals(currentState)) {
editTaskTabbox.setSelectedPanelApi(resourceAllocationTabpanel);
@ -316,7 +282,6 @@ public class EditTaskController extends GenericForwardComposer {
taskPropertiesController.cancel();
subcontractController.cancel();
resourceAllocationController.cancel();
advanceConsolidationController.cancel();
taskElement = null;
context = null;

View file

@ -1,60 +0,0 @@
<!--
This file is part of NavalPlan
Copyright (C) 2009 Fundación para o Fomento da Calidade Industrial e
Desenvolvemento Tecnolóxico de Galicia
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<?taglib uri="/WEB-INF/tld/i18n.tld" prefix="i18n" ?>
<tabpanel id="${arg.id}">
<panel title="${i18n:_('Advance Consolidation')}" border="normal"
style="overflow:auto" visible="@{advanceController.isVisibleMessages}">
<panelchildren>
<label value="@{advanceController.infoMessages}" />
</panelchildren>
</panel>
<panel title="${i18n:_('Advance Consolidation')}" border="normal"
style="overflow:auto" visible="@{advanceController.isVisibleAdvances}">
<panelchildren>
<vbox>
<label value="@{advanceController.infoAdvance}"/>
<grid id="advancesGrid"
model="@{advanceController.advances}"
mold="paging"
pageSize="10"
fixedLayout="true" >
<columns>
<column label="${i18n:_('Value')}" width="150px" align="center"/>
<column label="${i18n:_('Date')}" width="150px" align="center"/>
<column label="${i18n:_('Consolidated')}" width="150px" align="center"/>
</columns>
<rows>
<row self="@{each='advanceConsolidationDTO'}" value="@{advanceConsolidationDTO}">
<label value="@{advanceConsolidationDTO.value}" />
<label value="@{advanceConsolidationDTO.date,converter='org.navalplanner.web.common.typeconverters.DateConverter'}" />
<checkbox checked="@{advanceConsolidationDTO.consolidated}"
onCheck="advanceController.reloadAdvanceGrid();"
disabled="@{advanceConsolidationDTO.canNotBeConsolidated}"/>
</row>
</rows>
</grid>
</vbox>
</panelchildren>
</panel>
</tabpanel>

View file

@ -33,10 +33,6 @@
macroURI="/planner/_tabPanelLimitingResourceAllocation.zul"
inline="true" ?>
<?component name="tabPanelAdvanceConsolidation"
macroURI="/planner/_tabPanelAdvanceConsolidations.zul"
inline="true" ?>
<?component name="tabPanelSubcontract"
macroURI="/planner/_tabPanelSubcontract.zul"
inline="true" ?>
@ -51,8 +47,8 @@
allocationController = editController.resourceAllocationController;
limitingAllocationController = editController.limitingResourceAllocationController;
allocationController.switcher = switcher;
advanceController = editController.advanceConsolidationController;
subController = editController.subcontractController;
advanceController = planningController.advanceConsolidationController;
]]>
</zscript>
<div>
@ -71,14 +67,12 @@
<tab id="taskPropertiesTab" label="${i18n:_('Task properties')}" />
<tab id="resourceAllocationTab" label="${i18n:_('Non limiting resource allocation')}" />
<tab id="limitingResourceAllocationTab" label="${i18n:_('Limiting resource allocation')}" />
<tab id="advanceConsolidationTab" label="${i18n:_('Advance consolidation')}" />
<tab id="subcontractTab" label="${i18n:_('Subcontract')}" />
</tabs>
<tabpanels>
<tabPanelTaskProperties id="taskPropertiesTabpanel" />
<tabPanelNonLimitingResourceAllocation id="resourceAllocationTabpanel" />
<tabPanelLimitingResourceAllocation id="limitingResourceAllocationTabpanel" />
<tabPanelAdvanceConsolidation id="advanceConsolidationTabpanel"/>
<tabPanelSubcontract id="subcontractTabpanel" />
</tabpanels>
</tabbox>
@ -90,6 +84,60 @@
</hbox>
</window>
<window id="advanceWindow"
apply="${advanceController}"
title="${i18n:_('Advance consolidation')}" width="600px"
closable="true" visible="false">
<vbox>
<panel title="${i18n:_('Advance Consolidation')}" border="normal"
style="overflow:auto" visible="@{advanceController.isVisibleMessages}">
<panelchildren>
<label value="@{advanceController.infoMessages}" />
</panelchildren>
</panel>
<panel title="${i18n:_('Advance Consolidation')}" border="normal"
style="overflow:auto" visible="@{advanceController.isVisibleAdvances}">
<panelchildren>
<vbox>
<label value="@{advanceController.infoAdvance}"/>
<grid id="advancesGrid"
model="@{advanceController.advances}"
mold="paging"
pageSize="10"
fixedLayout="true" >
<columns>
<column label="${i18n:_('Value')}" width="150px" align="center"/>
<column label="${i18n:_('Date')}" width="150px" align="center"/>
<column label="${i18n:_('Consolidated')}" width="150px" align="center"/>
</columns>
<rows>
<row self="@{each='advanceConsolidationDTO'}" value="@{advanceConsolidationDTO}">
<label value="@{advanceConsolidationDTO.value}" />
<label value="@{advanceConsolidationDTO.date,converter='org.navalplanner.web.common.typeconverters.DateConverter'}" />
<checkbox checked="@{advanceConsolidationDTO.consolidated}"
onCheck="advanceController.reloadAdvanceGrid();"
disabled="@{advanceConsolidationDTO.canNotBeConsolidated}"/>
</row>
</rows>
</grid>
</vbox>
</panelchildren>
</panel>
<hbox>
<button label="${i18n:_('Accept')}"
onClick="advanceController.accept();" />
<button label="${i18n:_('Cancel')}"
onClick="advanceController.cancel();" />
</hbox>
</vbox>
</window>
<window id="calendarAllocationWindow"
apply="${calendarController}"
title="${i18n:_('Calendar allocation')}" width="600px"