Parametrize BankHolidaysMarker with the calendar instead of using Registry
Some new transactions have to be opened in order to allow the calendar to be used safely. FEA: ItEr67S04BugFixing
This commit is contained in:
parent
b941b8484f
commit
758596909a
4 changed files with 109 additions and 51 deletions
|
|
@ -25,8 +25,6 @@ import static org.navalplanner.web.I18nHelper._;
|
|||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
|
|
@ -34,6 +32,10 @@ import java.util.Set;
|
|||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.navalplanner.business.calendars.entities.BaseCalendar;
|
||||
import org.navalplanner.business.common.IAdHocTransactionService;
|
||||
import org.navalplanner.business.common.IOnTransaction;
|
||||
import org.navalplanner.business.common.daos.IConfigurationDAO;
|
||||
import org.navalplanner.business.orders.entities.Order;
|
||||
import org.navalplanner.business.planner.entities.GenericResourceAllocation;
|
||||
import org.navalplanner.business.planner.entities.ResourceAllocation;
|
||||
|
|
@ -83,6 +85,12 @@ public class LimitingResourcesController extends GenericForwardComposer {
|
|||
@Autowired
|
||||
private ILimitingResourceQueueModel limitingResourceQueueModel;
|
||||
|
||||
@Autowired
|
||||
private IConfigurationDAO configurationDAO;
|
||||
|
||||
@Autowired
|
||||
private IAdHocTransactionService transactionService;
|
||||
|
||||
private List<IToolbarCommand> commands = new ArrayList<IToolbarCommand>();
|
||||
|
||||
private org.zkoss.zk.ui.Component parent;
|
||||
|
|
@ -117,27 +125,39 @@ public class LimitingResourcesController extends GenericForwardComposer {
|
|||
}
|
||||
|
||||
private void reload() {
|
||||
// FIXME: Temporary fix, it seems the page was already rendered, so
|
||||
// clear it all as it's going to be rendered again
|
||||
parent.getChildren().clear();
|
||||
transactionService.runOnReadOnlyTransaction(new IOnTransaction<Void>() {
|
||||
|
||||
limitingResourceQueueModel.initGlobalView();
|
||||
@Override
|
||||
public Void execute() {
|
||||
reloadInTransaction();
|
||||
return null;
|
||||
}
|
||||
|
||||
// Initialize interval
|
||||
timeTracker = buildTimeTracker();
|
||||
limitingResourcesPanel = buildLimitingResourcesPanel();
|
||||
private void reloadInTransaction() {
|
||||
// FIXME: Temporary fix, it seems the page was already rendered,
|
||||
// so
|
||||
// clear it all as it's going to be rendered again
|
||||
parent.getChildren().clear();
|
||||
|
||||
this.parent.appendChild(limitingResourcesPanel);
|
||||
limitingResourcesPanel.afterCompose();
|
||||
limitingResourceQueueModel.initGlobalView();
|
||||
|
||||
cbSelectAll = (Checkbox) limitingResourcesPanel
|
||||
.getFellowIfAny("cbSelectAll");
|
||||
// Initialize interval
|
||||
timeTracker = buildTimeTracker();
|
||||
limitingResourcesPanel = buildLimitingResourcesPanel();
|
||||
|
||||
initGridUnassignedLimitingResourceQueueElements();
|
||||
initManualAllocationWindow();
|
||||
initEditTaskWindow();
|
||||
parent.appendChild(limitingResourcesPanel);
|
||||
limitingResourcesPanel.afterCompose();
|
||||
|
||||
addCommands(limitingResourcesPanel);
|
||||
cbSelectAll = (Checkbox) limitingResourcesPanel
|
||||
.getFellowIfAny("cbSelectAll");
|
||||
|
||||
initGridUnassignedLimitingResourceQueueElements();
|
||||
initManualAllocationWindow();
|
||||
initEditTaskWindow();
|
||||
|
||||
addCommands(limitingResourcesPanel);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void initGridUnassignedLimitingResourceQueueElements() {
|
||||
|
|
@ -184,7 +204,11 @@ public class LimitingResourcesController extends GenericForwardComposer {
|
|||
return timeTracker = new TimeTracker(limitingResourceQueueModel
|
||||
.getViewInterval(), ZoomLevel.DETAIL_THREE,
|
||||
SeveralModificators.create(),
|
||||
SeveralModificators.create(new BankHolidaysMarker()), parent);
|
||||
SeveralModificators.create(new BankHolidaysMarker(getDefaultCalendar())),parent);
|
||||
}
|
||||
|
||||
private BaseCalendar getDefaultCalendar() {
|
||||
return configurationDAO.getConfiguration().getDefaultCalendar();
|
||||
}
|
||||
|
||||
private LimitingResourcesPanel buildLimitingResourcesPanel() {
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ import java.util.SortedMap;
|
|||
import java.util.TreeMap;
|
||||
|
||||
import org.joda.time.LocalDate;
|
||||
import org.navalplanner.business.calendars.entities.BaseCalendar;
|
||||
import org.navalplanner.business.common.IAdHocTransactionService;
|
||||
import org.navalplanner.business.common.IOnTransaction;
|
||||
import org.navalplanner.business.common.daos.IConfigurationDAO;
|
||||
|
|
@ -287,7 +288,8 @@ public abstract class CompanyPlanningModel implements ICompanyPlanningModel {
|
|||
OrderPlanningModel.configureInitialZoomLevelFor(planner,
|
||||
defaultZoomLevel);
|
||||
|
||||
configuration.setSecondLevelModificators(new BankHolidaysMarker());
|
||||
configuration.setSecondLevelModificators(new BankHolidaysMarker(
|
||||
getDefaultCalendar()));
|
||||
planner.setConfiguration(configuration);
|
||||
|
||||
if(expandPlanningViewChart) {
|
||||
|
|
@ -315,6 +317,10 @@ public abstract class CompanyPlanningModel implements ICompanyPlanningModel {
|
|||
}
|
||||
}
|
||||
|
||||
private BaseCalendar getDefaultCalendar() {
|
||||
return configurationDAO.getConfiguration().getDefaultCalendar();
|
||||
}
|
||||
|
||||
private void setupChartAndItsContent(Planner planner,
|
||||
Tabbox chartComponent) {
|
||||
Timeplot chartLoadTimeplot = createEmptyTimeplot();
|
||||
|
|
|
|||
|
|
@ -19,9 +19,9 @@
|
|||
*/
|
||||
package org.navalplanner.web.planner.order;
|
||||
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.navalplanner.business.calendars.entities.BaseCalendar;
|
||||
import org.navalplanner.business.calendars.entities.ICalendar;
|
||||
import org.navalplanner.business.common.Registry;
|
||||
import org.navalplanner.business.workingday.IntraDayDate.PartialDay;
|
||||
import org.zkoss.ganttz.timetracker.zoom.DetailItem;
|
||||
import org.zkoss.ganttz.timetracker.zoom.IDetailItemModificator;
|
||||
|
|
@ -35,9 +35,9 @@ public final class BankHolidaysMarker implements
|
|||
|
||||
private final ICalendar calendar;
|
||||
|
||||
public BankHolidaysMarker() {
|
||||
this.calendar = Registry.getConfigurationDAO().getConfiguration()
|
||||
.getDefaultCalendar();
|
||||
public BankHolidaysMarker(ICalendar calendar) {
|
||||
Validate.notNull(calendar);
|
||||
this.calendar = calendar;
|
||||
}
|
||||
|
||||
public BankHolidaysMarker(BaseCalendar calendar) {
|
||||
|
|
|
|||
|
|
@ -37,6 +37,10 @@ import java.util.TreeMap;
|
|||
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.navalplanner.business.calendars.entities.BaseCalendar;
|
||||
import org.navalplanner.business.common.IAdHocTransactionService;
|
||||
import org.navalplanner.business.common.IOnTransaction;
|
||||
import org.navalplanner.business.common.daos.IConfigurationDAO;
|
||||
import org.navalplanner.business.orders.entities.Order;
|
||||
import org.navalplanner.business.planner.entities.DayAssignment;
|
||||
import org.navalplanner.business.planner.entities.TaskElement;
|
||||
|
|
@ -101,6 +105,12 @@ public class ResourceLoadController implements Composer {
|
|||
@Autowired
|
||||
private IResourceLoadModel resourceLoadModel;
|
||||
|
||||
@Autowired
|
||||
private IConfigurationDAO configurationDAO;
|
||||
|
||||
@Autowired
|
||||
private IAdHocTransactionService transactionService;
|
||||
|
||||
private List<IToolbarCommand> commands = new ArrayList<IToolbarCommand>();
|
||||
|
||||
private Order filterBy;
|
||||
|
|
@ -149,39 +159,51 @@ public class ResourceLoadController implements Composer {
|
|||
resourcesLoadPanel = null;
|
||||
firstLoad = true;
|
||||
resourceLoadModel.setPageFilterPosition(0);
|
||||
reload(true); //show filter by resources by default
|
||||
reload(true); // show filter by resources by default
|
||||
}
|
||||
|
||||
private void reload(boolean filterByResources) {
|
||||
this.filterHasChanged = (filterByResources != currentFilterByResources);
|
||||
this.currentFilterByResources = filterByResources;
|
||||
private void reload(final boolean filterByResources) {
|
||||
transactionService.runOnReadOnlyTransaction(new IOnTransaction<Void>() {
|
||||
|
||||
if (filterBy == null) {
|
||||
if (resourcesLoadPanel == null) {
|
||||
resetAdditionalFilters();
|
||||
@Override
|
||||
public Void execute() {
|
||||
reloadInTransaction(filterByResources);
|
||||
return null;
|
||||
}
|
||||
resourceLoadModel.initGlobalView(filterByResources);
|
||||
} else {
|
||||
if (resourcesLoadPanel == null) {
|
||||
deleteAdditionalFilters();
|
||||
|
||||
private void reloadInTransaction(boolean filterByResources) {
|
||||
filterHasChanged = (filterByResources != currentFilterByResources);
|
||||
currentFilterByResources = filterByResources;
|
||||
|
||||
if (filterBy == null) {
|
||||
if (resourcesLoadPanel == null) {
|
||||
resetAdditionalFilters();
|
||||
}
|
||||
resourceLoadModel.initGlobalView(filterByResources);
|
||||
} else {
|
||||
if (resourcesLoadPanel == null) {
|
||||
deleteAdditionalFilters();
|
||||
}
|
||||
resourceLoadModel.initGlobalView(filterBy, filterByResources);
|
||||
}
|
||||
timeTracker = buildTimeTracker();
|
||||
buildResourcesLoadPanel();
|
||||
|
||||
parent.getChildren().clear();
|
||||
parent.appendChild(resourcesLoadPanel);
|
||||
|
||||
resourcesLoadPanel.afterCompose();
|
||||
addSchedulingScreenListeners();
|
||||
addCommands(resourcesLoadPanel);
|
||||
if(firstLoad || filterHasChanged) {
|
||||
setupNameFilter();
|
||||
}
|
||||
firstLoad = false;
|
||||
}
|
||||
resourceLoadModel.initGlobalView(filterBy, filterByResources);
|
||||
}
|
||||
timeTracker = buildTimeTracker();
|
||||
buildResourcesLoadPanel();
|
||||
|
||||
this.parent.getChildren().clear();
|
||||
this.parent.appendChild(resourcesLoadPanel);
|
||||
|
||||
resourcesLoadPanel.afterCompose();
|
||||
addSchedulingScreenListeners();
|
||||
addCommands(resourcesLoadPanel);
|
||||
if(firstLoad || filterHasChanged) {
|
||||
setupNameFilter();
|
||||
}
|
||||
firstLoad = false;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
private void addListeners() {
|
||||
/* Listener to filter */
|
||||
filterChangedListener = new IFilterChangedListener() {
|
||||
|
|
@ -239,8 +261,14 @@ public class ResourceLoadController implements Composer {
|
|||
zoomLevel = (timeTracker == null) ? resourceLoadModel
|
||||
.calculateInitialZoomLevel() : timeTracker.getDetailLevel();
|
||||
return new TimeTracker(resourceLoadModel.getViewInterval(), zoomLevel,
|
||||
SeveralModificators.create(), SeveralModificators
|
||||
.create(new BankHolidaysMarker()), parent);
|
||||
SeveralModificators.create(),
|
||||
SeveralModificators.create(createBankHolidaysMarker()), parent);
|
||||
}
|
||||
|
||||
private BankHolidaysMarker createBankHolidaysMarker() {
|
||||
BaseCalendar defaultCalendar = configurationDAO.getConfiguration()
|
||||
.getDefaultCalendar();
|
||||
return new BankHolidaysMarker(defaultCalendar);
|
||||
}
|
||||
|
||||
private void buildResourcesLoadPanel() {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue