FEA: ItEr02S03MigracionZK5
Avoid uses of Mode#goToOrderMode that cause unnecessary repaintings Now the mode is changed after hiding the previous tab, so the previous tab is not repainted and the new tab is showed with the correct mode. FEA: ItEr63S03BugFixing
This commit is contained in:
parent
9a99ef5b0f
commit
b4ea86c80f
4 changed files with 49 additions and 21 deletions
|
|
@ -54,8 +54,23 @@ public class TabsRegistry {
|
|||
tabs.add(tab);
|
||||
}
|
||||
|
||||
public interface IBeforeShowAction {
|
||||
public void doAction();
|
||||
}
|
||||
|
||||
private static final IBeforeShowAction DO_NOTHING = new IBeforeShowAction() {
|
||||
@Override
|
||||
public void doAction() {
|
||||
}
|
||||
};
|
||||
|
||||
public void show(ITab tab) {
|
||||
show(tab, DO_NOTHING);
|
||||
}
|
||||
|
||||
public void show(ITab tab, IBeforeShowAction beforeShowAction) {
|
||||
hideAllExcept(tab);
|
||||
beforeShowAction.doAction();
|
||||
tab.show();
|
||||
parent.invalidate();
|
||||
activateMenuIfRegistered(tab);
|
||||
|
|
|
|||
|
|
@ -24,6 +24,9 @@ import java.util.List;
|
|||
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.navalplanner.business.orders.entities.Order;
|
||||
import org.zkoss.ganttz.TabsRegistry;
|
||||
import org.zkoss.ganttz.TabsRegistry.IBeforeShowAction;
|
||||
import org.zkoss.ganttz.extensions.ITab;
|
||||
|
||||
/**
|
||||
* @author Óscar González Fernández <ogonzalez@igalia.com>
|
||||
|
|
@ -64,6 +67,15 @@ public class Mode {
|
|||
return current.getOrder();
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Changes the mode to {@link ModeType#ORDER}. This causes to show the tab
|
||||
* for the order mode of the given order.
|
||||
* </p>
|
||||
* Beware that calling this method and then later showing another tab causes
|
||||
* an unnecessary repaint. So if you need to change the tab and the mode,
|
||||
* use {@link TabsRegistry#show(ITab, IBeforeShowAction)} instead.
|
||||
*/
|
||||
public void goToOrderMode(Order order) {
|
||||
changeTo(current.createOrderMode(order));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ import org.springframework.context.annotation.Scope;
|
|||
import org.springframework.stereotype.Component;
|
||||
import org.zkoss.ganttz.TabSwitcher;
|
||||
import org.zkoss.ganttz.TabsRegistry;
|
||||
import org.zkoss.ganttz.TabsRegistry.IBeforeShowAction;
|
||||
import org.zkoss.ganttz.adapters.State;
|
||||
import org.zkoss.ganttz.adapters.TabsConfiguration;
|
||||
import org.zkoss.ganttz.adapters.TabsConfiguration.ChangeableTab;
|
||||
|
|
@ -190,8 +191,8 @@ public class MultipleTabsPlannerController implements Composer,
|
|||
|
||||
@Override
|
||||
public void goToScheduleOf(Order order) {
|
||||
mode.goToOrderMode(order);
|
||||
getTabsRegistry().show(planningTab);
|
||||
getTabsRegistry()
|
||||
.show(planningTab, changeModeTo(order));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -203,8 +204,8 @@ public class MultipleTabsPlannerController implements Composer,
|
|||
public void goToTaskResourceAllocation(Order order,
|
||||
TaskElement task) {
|
||||
orderPlanningController.setShowedTask(task);
|
||||
mode.goToOrderMode(order);
|
||||
getTabsRegistry().show(planningTab);
|
||||
getTabsRegistry()
|
||||
.show(planningTab, changeModeTo(order));
|
||||
}
|
||||
|
||||
}, breadcrumbs);
|
||||
|
|
@ -218,14 +219,13 @@ public class MultipleTabsPlannerController implements Composer,
|
|||
|
||||
@Override
|
||||
public void goToScheduleOf(Order order) {
|
||||
mode.goToOrderMode(order);
|
||||
getTabsRegistry().show(planningTab);
|
||||
getTabsRegistry()
|
||||
.show(planningTab, changeModeTo(order));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void goToOrderDetails(Order order) {
|
||||
mode.goToOrderMode(order);
|
||||
getTabsRegistry().show(ordersTab);
|
||||
getTabsRegistry().show(ordersTab, changeModeTo(order));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -389,14 +389,12 @@ public class MultipleTabsPlannerController implements Composer,
|
|||
|
||||
@Override
|
||||
public void goToOrder(Order order) {
|
||||
mode.goToOrderMode(order);
|
||||
getTabsRegistry().show(planningTab);
|
||||
getTabsRegistry().show(planningTab, changeModeTo(order));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void goToOrderElementDetails(OrderElement orderElement, Order order) {
|
||||
getTabsRegistry().show(ordersTab);
|
||||
mode.goToOrderMode(order);
|
||||
getTabsRegistry().show(ordersTab, changeModeTo(order));
|
||||
orderCRUDController.highLight(orderElement);
|
||||
}
|
||||
|
||||
|
|
@ -407,20 +405,17 @@ public class MultipleTabsPlannerController implements Composer,
|
|||
|
||||
@Override
|
||||
public void goToOrderDetails(Order order) {
|
||||
mode.goToOrderMode(order);
|
||||
getTabsRegistry().show(ordersTab);
|
||||
getTabsRegistry().show(ordersTab, changeModeTo(order));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void goToResourcesLoad(Order order) {
|
||||
mode.goToOrderMode(order);
|
||||
getTabsRegistry().show(resourceLoadTab);
|
||||
getTabsRegistry().show(resourceLoadTab, changeModeTo(order));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void goToAdvancedAllocation(Order order) {
|
||||
mode.goToOrderMode(order);
|
||||
getTabsRegistry().show(advancedAllocationTab);
|
||||
getTabsRegistry().show(advancedAllocationTab, changeModeTo(order));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -428,4 +423,13 @@ public class MultipleTabsPlannerController implements Composer,
|
|||
getTabsRegistry().show(ordersTab);
|
||||
orderCRUDController.showCreateFormFromTemplate(template);
|
||||
}
|
||||
|
||||
private IBeforeShowAction changeModeTo(final Order order) {
|
||||
return new IBeforeShowAction() {
|
||||
@Override
|
||||
public void doAction() {
|
||||
mode.goToOrderMode(order);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -171,7 +171,6 @@ public class PlanningTabCreator {
|
|||
OrderElement orderElement = task.getOrderElement();
|
||||
if (orderElement instanceof Order) {
|
||||
Order order = (Order) orderElement;
|
||||
mode.goToOrderMode(order);
|
||||
tabsController.goToOrderDetails(order);
|
||||
}
|
||||
}
|
||||
|
|
@ -203,7 +202,6 @@ public class PlanningTabCreator {
|
|||
OrderElement orderElement = task.getOrderElement();
|
||||
if (orderElement instanceof Order) {
|
||||
Order order = (Order) orderElement;
|
||||
mode.goToOrderMode(order);
|
||||
tabsController.goToResourcesLoad(order);
|
||||
}
|
||||
}
|
||||
|
|
@ -235,7 +233,6 @@ public class PlanningTabCreator {
|
|||
OrderElement orderElement = task.getOrderElement();
|
||||
if (orderElement instanceof Order) {
|
||||
Order order = (Order) orderElement;
|
||||
mode.goToOrderMode(order);
|
||||
tabsController.goToAdvancedAllocation(order);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue