[Bug #349] Button to create an order from a template has been removed.

It adds the button to create a an order from a template
of type order template.

FEA: ItEr60S04ValidacionEProbasFuncionaisItEr59S04
This commit is contained in:
Susana Montes Pedreira 2010-08-24 12:53:53 +02:00
parent 7476455dd2
commit 3a4c58b133
9 changed files with 80 additions and 7 deletions

View file

@ -39,6 +39,8 @@ class CommandContextualized<T> {
private final IContext<T> context;
private Button button;
private CommandContextualized(ICommand<T> command, IContext<T> context) {
this.command = command;
this.context = context;
@ -49,6 +51,9 @@ class CommandContextualized<T> {
}
Button toButton() {
if (button != null) {
return button;
}
Button result = new Button();
if (StringUtils.isEmpty(command.getImage())) {
result.setLabel(command.getName());
@ -63,7 +68,11 @@ class CommandContextualized<T> {
doAction();
}
});
button = result;
return result;
}
public ICommand<T> getCommand() {
return command;
}
}

View file

@ -691,4 +691,12 @@ public class Planner extends HtmlMacroComponent {
return isFlattenTree;
}
public Button findCommandComponent(String name) {
for (CommandContextualized<?> c : contextualizedGlobalCommands) {
if (c.getCommand().getName().equals(name)) {
return c.toButton();
}
}
return null;
}
}

View file

@ -29,6 +29,8 @@ planner = self;
<hbox align="center" id="toolbar">
<separator/>
<!-- Commands -->
<templateFinderPopup id="templateFinderPopup" acceptButtonLabel="${i18n:_('Create Order')}" caption="${i18n:_('Choosing Template')}" />
<button onClick="planner.invalidate()"
image="/common/img/ico_refresh.png"
tooltiptext="${i18n:_('Refresh')}" visible="false" />

View file

@ -165,14 +165,18 @@ public class OrderCRUDController extends GenericForwardComposer {
@Override
public void found(OrderTemplate template) {
showOrderElementFilter();
showCreateButtons(false);
orderModel.prepareCreationFrom(template);
showEditWindow(_("Create order from Template"));
showCreateFormFromTemplate(template);
}
});
}
public void showCreateFormFromTemplate(OrderTemplate template) {
showOrderElementFilter();
showCreateButtons(false);
orderModel.prepareCreationFrom(template);
showEditWindow(_("Create order from Template"));
}
@Resource
private IOrderTemplatesControllerEntryPoints orderTemplates;

View file

@ -121,7 +121,6 @@ public class CompanyPlanningController implements Composer{
checkIncludeOrderElements = (Checkbox) filterComponent
.getFellow("checkIncludeOrderElements");
filterComponent.setVisible(true);
}
public void setConfigurationForPlanner() {

View file

@ -60,10 +60,13 @@ import org.navalplanner.business.resources.daos.IResourceDAO;
import org.navalplanner.business.resources.entities.Resource;
import org.navalplanner.business.scenarios.IScenarioManager;
import org.navalplanner.business.scenarios.entities.Scenario;
import org.navalplanner.business.templates.entities.OrderTemplate;
import org.navalplanner.business.users.daos.IUserDAO;
import org.navalplanner.business.users.entities.User;
import org.navalplanner.business.workreports.daos.IWorkReportLineDAO;
import org.navalplanner.business.workreports.entities.WorkReportLine;
import org.navalplanner.web.orders.assigntemplates.TemplateFinderPopup;
import org.navalplanner.web.orders.assigntemplates.TemplateFinderPopup.IOnResult;
import org.navalplanner.web.planner.ITaskElementAdapter;
import org.navalplanner.web.planner.chart.Chart;
import org.navalplanner.web.planner.chart.ChartFiller;
@ -102,6 +105,7 @@ import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
import org.zkoss.zk.ui.util.Clients;
import org.zkoss.zul.Button;
import org.zkoss.zul.Checkbox;
import org.zkoss.zul.Datebox;
import org.zkoss.zul.Div;
@ -216,7 +220,7 @@ public abstract class CompanyPlanningModel implements ICompanyPlanningModel {
@Override
@Transactional(readOnly = true)
public void setConfigurationToPlanner(Planner planner,
public void setConfigurationToPlanner(final Planner planner,
Collection<ICommandOnTask<TaskElement>> additional,
ICommandOnTask<TaskElement> doubleClickCommand,
IPredicate predicate) {
@ -255,6 +259,39 @@ public abstract class CompanyPlanningModel implements ICompanyPlanningModel {
};
configuration.addGlobalCommand(createNewOrderCommand);
ICommand<TaskElement> createNewOrderFromTemplateCommand = new ICommand<TaskElement>() {
@Override
public String getName() {
return _("Create new order from template");
}
@Override
public String getImage() {
return "/common/img/ico_copy.png";
}
@Override
public void doAction(IContext<TaskElement> context) {
TemplateFinderPopup templateFinderPopup = (TemplateFinderPopup) planner.getFellowIfAny("templateFinderPopup");
Button createOrderFromTemplateButton = planner.findCommandComponent(getName());
if(templateFinderPopup != null){
templateFinderPopup.openForOrderCreation(
createOrderFromTemplateButton, "after_start",
new IOnResult<OrderTemplate>() {
@Override
public void found(OrderTemplate template) {
goToCreateOtherOrderFromTemplate(template);
}
});
}
}
};
configuration.addGlobalCommand(createNewOrderFromTemplateCommand);
addAdditionalCommands(additional, configuration);
addPrintSupport(configuration);
disableSomeFeatures(configuration);
@ -280,6 +317,7 @@ public abstract class CompanyPlanningModel implements ICompanyPlanningModel {
setEventListenerConfigurationCheckboxes(earnedValueChart);
}
private Timeplot createEmptyTimeplot() {
Timeplot timeplot = new Timeplot();
timeplot.appendChild(new Plotinfo());
@ -1002,4 +1040,7 @@ public abstract class CompanyPlanningModel implements ICompanyPlanningModel {
}
}
public void goToCreateOtherOrderFromTemplate(OrderTemplate template) {
tabs.goToCreateotherOrderFromTemplate(template);
}
}

View file

@ -26,6 +26,7 @@ import java.util.List;
import org.navalplanner.business.orders.entities.Order;
import org.navalplanner.business.planner.entities.TaskElement;
import org.navalplanner.business.templates.entities.OrderTemplate;
import org.navalplanner.web.planner.tabs.MultipleTabsPlannerController;
import org.zkoss.ganttz.IPredicate;
import org.zkoss.ganttz.Planner;
@ -38,7 +39,7 @@ import org.zkoss.ganttz.extensions.ICommandOnTask;
*/
public interface ICompanyPlanningModel {
void setConfigurationToPlanner(Planner planner,
void setConfigurationToPlanner(final Planner planner,
Collection<ICommandOnTask<TaskElement>> additional);
public void setConfigurationToPlanner(Planner planner,
@ -57,4 +58,5 @@ public interface ICompanyPlanningModel {
Date getFilterFinishDate();
void goToCreateOtherOrderFromTemplate(OrderTemplate template);
}

View file

@ -21,6 +21,7 @@ package org.navalplanner.web.planner.tabs;
import org.navalplanner.business.orders.entities.Order;
import org.navalplanner.business.orders.entities.OrderElement;
import org.navalplanner.business.templates.entities.OrderTemplate;
import org.navalplanner.web.common.entrypoints.EntryPoint;
import org.navalplanner.web.common.entrypoints.EntryPoints;
@ -57,4 +58,5 @@ public interface IGlobalViewEntryPoints {
void goToAdvancedAllocation(Order order);
void goToCreateotherOrderFromTemplate(OrderTemplate template);
}

View file

@ -32,6 +32,7 @@ import org.navalplanner.business.planner.daos.ITaskElementDAO;
import org.navalplanner.business.planner.entities.TaskElement;
import org.navalplanner.business.resources.daos.IResourceDAO;
import org.navalplanner.business.scenarios.IScenarioManager;
import org.navalplanner.business.templates.entities.OrderTemplate;
import org.navalplanner.web.common.entrypoints.URLHandler;
import org.navalplanner.web.common.entrypoints.URLHandlerRegistry;
import org.navalplanner.web.limitingresources.LimitingResourcesController;
@ -424,4 +425,9 @@ public class MultipleTabsPlannerController implements Composer,
getTabsRegistry().show(advancedAllocationTab);
}
@Override
public void goToCreateotherOrderFromTemplate(OrderTemplate template) {
getTabsRegistry().show(ordersTab);
orderCRUDController.showCreateFormFromTemplate(template);
}
}