ItEr58S08RFAspectosGraficosRecursoLimitantesItEr57S08: Removed Year and Quarter detail levels from limiting resources zoom combo

This commit is contained in:
Lorenzo Tilve 2010-05-21 09:54:40 +02:00 committed by Javier Moran Rua
parent 6cc4e3d369
commit b82757f161
5 changed files with 61 additions and 15 deletions

View file

@ -119,4 +119,6 @@ public interface ILimitingResourceQueueModel {
void removeUnassignedLimitingResourceQueueElement(
LimitingResourceQueueElement element);
void setTimeTrackerState(ZoomLevel zoomLevel);
}

View file

@ -34,6 +34,7 @@ import java.util.SortedSet;
import org.hibernate.Hibernate;
import org.hibernate.proxy.HibernateProxy;
import org.joda.time.LocalDate;
import org.joda.time.Period;
import org.navalplanner.business.calendars.entities.BaseCalendar;
import org.navalplanner.business.calendars.entities.CalendarAvailability;
import org.navalplanner.business.calendars.entities.CalendarData;
@ -113,6 +114,8 @@ public class LimitingResourceQueueModel implements ILimitingResourceQueueModel {
private Set<LimitingResourceQueueElement> toBeSaved = new HashSet<LimitingResourceQueueElement>();
private ZoomLevel zoomLevel = ZoomLevel.DETAIL_THREE;
@Override
@Transactional(readOnly = true)
public void initGlobalView(boolean filterByResources) {
@ -129,7 +132,28 @@ public class LimitingResourceQueueModel implements ILimitingResourceQueueModel {
loadUnassignedLimitingResourceQueueElements();
loadLimitingResourceQueues();
final Date startingDate = getEarliestDate();
viewInterval = new Interval(startingDate, plusFiveYears(startingDate));
Date endDate = (new LocalDate(startingDate)).plus(intervalIncrease())
.toDateTimeAtCurrentTime().toDate();
viewInterval = new Interval(startingDate, endDate);
}
private Period intervalIncrease() {
switch (zoomLevel) {
case DETAIL_ONE:
return Period.years(5);
case DETAIL_TWO:
return Period.years(5);
case DETAIL_THREE:
return Period.years(2);
case DETAIL_FOUR:
return Period.months(6);
case DETAIL_FIVE:
return Period.weeks(6);
case DETAIL_SIX:
return Period.weeks(6);
}
return Period.years(1);
}
private Date getEarliestDate() {
@ -171,11 +195,6 @@ public class LimitingResourceQueueModel implements ILimitingResourceQueueModel {
return (elements.isEmpty()) ? null : elements.iterator().next();
}
private Date plusFiveYears(Date date) {
return (new LocalDate(date)).plusYears(5).toDateTimeAtCurrentTime()
.toDate();
}
/**
* Loads unassigned {@link LimitingResourceQueueElement} from DB
*
@ -681,4 +700,9 @@ public class LimitingResourceQueueModel implements ILimitingResourceQueueModel {
}
}
@Override
public void setTimeTrackerState(ZoomLevel timeTrackerState) {
this.zoomLevel = timeTrackerState;
}
}

View file

@ -50,6 +50,7 @@ import org.springframework.stereotype.Component;
import org.zkoss.ganttz.resourceload.IFilterChangedListener;
import org.zkoss.ganttz.timetracker.TimeTracker;
import org.zkoss.ganttz.timetracker.zoom.SeveralModificators;
import org.zkoss.ganttz.timetracker.zoom.ZoomLevel;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
@ -113,13 +114,19 @@ public class LimitingResourcesController implements Composer {
private void reload(boolean filterByResources) {
try {
if (filterBy == null) {
limitingResourceQueueModel.initGlobalView(filterByResources);
} else {
limitingResourceQueueModel.initGlobalView(filterBy,
filterByResources);
}
// Initialize interval
timeTracker = buildTimeTracker();
limitingResourceQueueModel.setTimeTrackerState(timeTracker
.getDetailLevel());
limitingResourcesPanel = buildLimitingResourcesPanel();
addListeners();
@ -162,8 +169,8 @@ public class LimitingResourcesController implements Composer {
private TimeTracker buildTimeTracker() {
return timeTracker = new TimeTracker(limitingResourceQueueModel
.getViewInterval(), limitingResourceQueueModel
.calculateInitialZoomLevel(), SeveralModificators.create(),
.getViewInterval(), ZoomLevel.DETAIL_THREE, SeveralModificators
.create(),
SeveralModificators.create(new BankHolidaysMarker()), parent);
}

View file

@ -31,6 +31,7 @@ import org.navalplanner.business.planner.entities.LimitingResourceQueueElement;
import org.navalplanner.business.resources.daos.IResourceDAO;
import org.navalplanner.business.resources.entities.LimitingResourceQueue;
import org.springframework.beans.factory.annotation.Autowired;
import org.zkoss.ganttz.resourceload.IFilterChangedListener;
import org.zkoss.ganttz.timetracker.TimeTracker;
import org.zkoss.ganttz.timetracker.TimeTrackerComponent;
import org.zkoss.ganttz.timetracker.zoom.IZoomLevelChangedListener;
@ -38,6 +39,7 @@ import org.zkoss.ganttz.timetracker.zoom.ZoomLevel;
import org.zkoss.ganttz.util.ComponentsFinder;
import org.zkoss.ganttz.util.MutableTreeModel;
import org.zkoss.ganttz.util.OnZKDesktopRegistry;
import org.zkoss.ganttz.util.WeakReferencedListeners;
import org.zkoss.ganttz.util.script.IScriptsRegister;
import org.zkoss.zk.au.out.AuInvoke;
import org.zkoss.zk.ui.Component;
@ -75,6 +77,9 @@ public class LimitingResourcesPanel extends HtmlMacroComponent {
private Listbox listZoomLevels;
private WeakReferencedListeners<IFilterChangedListener> zoomListeners = WeakReferencedListeners
.create();
@Autowired
IResourceDAO resourcesDAO;
@ -115,7 +120,6 @@ public class LimitingResourcesPanel extends HtmlMacroComponent {
treeModel = createModelForTree();
timeTrackerComponent = timeTrackerForResourcesLoadPanel(timeTracker);
queueListComponent = new QueueListComponent(timeTracker, treeModel);
leftPane = new LimitingResourcesLeftPane(treeModel,
@ -157,8 +161,15 @@ public class LimitingResourcesPanel extends HtmlMacroComponent {
return filterbyResources;
}
public void addFilterListener(IFilterChangedListener listener) {
zoomListeners.addListener(listener);
}
public ListModel getZoomLevels() {
return new SimpleListModel(ZoomLevel.values());
ZoomLevel[] selectableZoomlevels = { ZoomLevel.DETAIL_THREE,
ZoomLevel.DETAIL_FOUR, ZoomLevel.DETAIL_FIVE,
ZoomLevel.DETAIL_SIX };
return new SimpleListModel(selectableZoomlevels);
}
public void setZoomLevel(final ZoomLevel zoomLevel) {
@ -255,7 +266,7 @@ public class LimitingResourcesPanel extends HtmlMacroComponent {
IZoomLevelChangedListener zoomChangedListener = new IZoomLevelChangedListener() {
@Override
public void zoomLevelChanged(ZoomLevel detailLevel) {
dependencyList.detach();
dependencyList.getChildren().clear();
getFellow("insertionPointRightPanel").appendChild(
dependencyList);
dependencyList = generateDependencyComponentsList();
@ -271,7 +282,9 @@ public class LimitingResourcesPanel extends HtmlMacroComponent {
timeTrackerHeader.afterCompose();
timeTrackerComponent.afterCompose();
listZoomLevels = (Listbox) getFellow("listZoomLevels");
listZoomLevels.setSelectedIndex(timeTracker.getDetailLevel().ordinal());
// First two levels are excluded
listZoomLevels
.setSelectedIndex(timeTracker.getDetailLevel().ordinal() - 2);
}
private LimitingDependencyList generateDependencyComponentsList() {

View file

@ -22,7 +22,7 @@
<zk xmlns:n="http://www.zkoss.org/2005/zk/native">
<zscript><![CDATA[
resourcesLoadPanel = self;
limitingResourcesPanel = self;
]]>
</zscript>
@ -43,8 +43,8 @@ resourcesLoadPanel = self;
<!-- Zoom -->
<label>${i18n:_('Zoom')}:</label>
<listbox id="listZoomLevels" mold="select" rows="1"
model="${resourcesLoadPanel.zoomLevels}"
onSelect="resourcesLoadPanel.setZoomLevel(self.selectedItem.value);" >
model="${limitingResourcesPanel.zoomLevels}"
onSelect="limitingResourcesPanel.setZoomLevel(self.selectedItem.value);" >
</listbox>
<separator/>