ItEr58S20RFMellorasAvances: Adds some improvements in the advances screen.

it updates the advances of the order when it is changes the selected tab.
this permit to validate correctly the error that occurs when it is
introduced advances with same type.
This commit is contained in:
Susana Montes Pedreira 2010-05-27 19:07:52 +02:00 committed by Javier Moran Rua
parent 8e249ac5e2
commit 95cb196bd7
2 changed files with 79 additions and 9 deletions

View file

@ -274,6 +274,10 @@ public class OrderCRUDController extends GenericForwardComposer {
}
public void setupOrderElementTreeController() throws Exception {
if (!confirmLastTab())
return;
setCurrentTab();
if (orderElementTreeController == null) {
OrderElementController orderElementController = new OrderElementController();
orderElementController.doAfterCompose(self
@ -290,6 +294,23 @@ public class OrderCRUDController extends GenericForwardComposer {
}
}
/*
* Operations to do before to change the selected tab
*/
private boolean confirmLastTab() {
if (getCurrentTab() != null) {
// Confirm advances tab.
if (getCurrentTab().getId().equals("tabAdvances")) {
if (!manageOrderElementAdvancesController.save()) {
resetSelectedTab();
selectTab("tabAdvances");
return false;
}
}
}
return true;
}
private void redraw(Component comp) {
Util.createBindingsFor(comp);
Util.reloadBindings(comp);
@ -303,6 +324,10 @@ public class OrderCRUDController extends GenericForwardComposer {
private AssignedHoursToOrderElementController assignedHoursController;
public void setupAssignedHoursToOrderElementController() throws Exception {
if (!confirmLastTab())
return;
setCurrentTab();
if (assignedHoursController == null) {
Component orderElementHours = editWindow
.getFellowIfAny("orderElementHours");
@ -317,6 +342,10 @@ public class OrderCRUDController extends GenericForwardComposer {
private ManageOrderElementAdvancesController manageOrderElementAdvancesController;
public void setupManageOrderElementAdvancesController() throws Exception {
if (!confirmLastTab())
return;
setCurrentTab();
Component orderElementAdvances = editWindow
.getFellowIfAny("orderElementAdvances");
if (manageOrderElementAdvancesController == null) {
@ -335,6 +364,10 @@ public class OrderCRUDController extends GenericForwardComposer {
public void setupAssignedLabelsToOrderElementController()
throws Exception {
if (!confirmLastTab())
return;
setCurrentTab();
if (assignedLabelsController == null) {
LabelsAssignmentToOrderElementComponent labelsAssignment = (LabelsAssignmentToOrderElementComponent) editWindow
.getFellow("orderElementLabels");
@ -349,6 +382,10 @@ public class OrderCRUDController extends GenericForwardComposer {
public void setupAssignedCriterionRequirementsToOrderElementController()
throws Exception {
if (!confirmLastTab())
return;
setCurrentTab();
if (assignedCriterionRequirementController == null) {
Component orderElementCriterionRequirements = editWindow
.getFellowIfAny("orderElementCriterionRequirements");
@ -367,6 +404,10 @@ public class OrderCRUDController extends GenericForwardComposer {
public void setupAssignedMaterialsToOrderElementController()
throws Exception {
if (!confirmLastTab())
return;
setCurrentTab();
if (assignedMaterialsController == null) {
OrderElementMaterialAssignmentsComponent assignmentsComponent = (OrderElementMaterialAssignmentsComponent) editWindow
.getFellowIfAny("orderElementMaterials");
@ -381,6 +422,10 @@ public class OrderCRUDController extends GenericForwardComposer {
private AssignedTaskQualityFormsToOrderElementController assignedTaskQualityFormController;
public void setupAssignedTaskQualityFormsToOrderElementController() throws Exception {
if (!confirmLastTab())
return;
setCurrentTab();
Component orderElementTaskQualityForms = editWindow
.getFellowIfAny("orderElementTaskQualityForms");
if (assignedTaskQualityFormController == null) {
@ -397,6 +442,10 @@ public class OrderCRUDController extends GenericForwardComposer {
private OrderAuthorizationController orderAuthorizationController;
public void setupOrderAuthorizationController() {
if (!confirmLastTab())
return;
setCurrentTab();
Component orderElementAuthorizations = editWindow
.getFellowIfAny("orderElementAuthorizations");
if (orderAuthorizationController == null) {
@ -445,9 +494,10 @@ public class OrderCRUDController extends GenericForwardComposer {
}
public void saveAndContinue() {
setCurrentTab();
Order order = (Order) orderModel.getOrder();
final boolean isNewObject = order.isNewObject();
setCurrentTab();
Tab previousTab = getCurrentTab();
final boolean couldSave = save();
if (couldSave) {
if(orderModel.userCanRead(order, SecurityUtils.getSessionUserLoginName())) {
@ -463,13 +513,15 @@ public class OrderCRUDController extends GenericForwardComposer {
showWindow(editWindow);
// come back to the current tab after initialize all tabs.
selectTab(getCurrentTab().getId());
Events.sendEvent(new SelectEvent(Events.ON_SELECT,
getCurrentTab(), null));
resetSelectedTab();
selectTab(previousTab.getId());
Events.sendEvent(new SelectEvent(Events.ON_SELECT, previousTab,
null));
if (isNewObject) {
this.planningControllerEntryPoints.goToOrderDetails(order);
}
}
else {
try {
@ -495,26 +547,31 @@ public class OrderCRUDController extends GenericForwardComposer {
if (manageOrderElementAdvancesController != null) {
selectTab("tabAdvances");
if (!manageOrderElementAdvancesController.save()) {
setCurrentTab();
return false;
}
}
if (assignedCriterionRequirementController != null) {
selectTab("tabRequirements");
if (!assignedCriterionRequirementController.close()) {
setCurrentTab();
return false;
}
}
if (assignedTaskQualityFormController != null) {
selectTab("tabTaskQualityForm");
if (!assignedTaskQualityFormController.confirm()) {
return false;
setCurrentTab();
return false;
}
}
createPercentageAdvances();
// come back to the current tab after validate other tabs.
selectTab(getCurrentTab().getId());
// come back to the default tab.
if (getCurrentTab() != null) {
selectTab(getCurrentTab().getId());
}
try {
orderModel.save();
@ -530,6 +587,7 @@ public class OrderCRUDController extends GenericForwardComposer {
} catch (ValidationException e) {
messagesForUser.showInvalidValues(e, new LabelCreatorForInvalidValues());
}
setCurrentTab();
return false;
}
@ -569,6 +627,10 @@ public class OrderCRUDController extends GenericForwardComposer {
selectTab("tabGeneralData");
}
private void resetSelectedTab() {
selectedTab = null;
}
private void setCurrentTab() {
Tabbox tabboxOrder = (Tabbox) editWindow.getFellowIfAny("tabboxOrder");
if (tabboxOrder != null) {
@ -601,7 +663,9 @@ public class OrderCRUDController extends GenericForwardComposer {
}
public void reloadHoursGroupOrder() {
assignedCriterionRequirementController.reload();
if (getCurrentTab().getId().equals("tabRequirements")) {
assignedCriterionRequirementController.reload();
}
}
private void showWindow(Window window) {
@ -731,6 +795,12 @@ public class OrderCRUDController extends GenericForwardComposer {
loadCustomerComponent();
}
public void setupOrderDetails() {
confirmLastTab();
setCurrentTab();
reloadDefaultTab();
}
public void reloadDefaultTab() {
Tabpanel tabPanel = (Tabpanel) editWindow
.getFellow("tabPanelGeneralData");

View file

@ -37,7 +37,7 @@
<tabbox id="tabboxOrder">
<tabs>
<tab id="tabGeneralData" label="${i18n:_('General data')}" selected="true"
onSelect = "controller.reloadDefaultTab();"/>
onSelect = "controller.setupOrderDetails();"/>
<tab id="tabOrderElements" label="${i18n:_('Order elements')}"
onSelect = "controller.setupOrderElementTreeController();"/>
<tab id="tabAssignedHours" label="${i18n:_('Assigned hours')}"