ItEr41S16ImplantacionAplicacionItEr40S21: Changed zoom buttons for combo to change zoom level easily.

This commit is contained in:
Manuel Rego Casasnovas 2009-12-28 11:08:33 +01:00 committed by Javier Moran Rua
parent 4d8c55d875
commit 8c8e531d5f
5 changed files with 59 additions and 9 deletions

View file

@ -26,6 +26,7 @@ import org.zkoss.ganttz.adapters.IDisabilityConfiguration;
import org.zkoss.ganttz.data.GanttDiagramGraph;
import org.zkoss.ganttz.timetracker.TimeTracker;
import org.zkoss.ganttz.timetracker.TimeTrackerComponent;
import org.zkoss.ganttz.timetracker.zoom.ZoomLevel;
import org.zkoss.zk.au.out.AuInvoke;
import org.zkoss.zk.ui.ext.AfterCompose;
import org.zkoss.zul.impl.XulElement;
@ -103,4 +104,9 @@ public class GanttPanel extends XulElement implements AfterCompose {
public TimeTracker getTimeTracker() {
return timeTrackerComponent.getTimeTracker();
}
public void setZoomLevel(ZoomLevel zoomLevel) {
getTimeTracker().setZoomLevel(zoomLevel);
}
}

View file

@ -41,6 +41,7 @@ import org.zkoss.ganttz.print.Print;
import org.zkoss.ganttz.timetracker.TimeTracker;
import org.zkoss.ganttz.timetracker.TimeTrackerComponent;
import org.zkoss.ganttz.timetracker.TimeTrackerComponentWithoutColumns;
import org.zkoss.ganttz.timetracker.zoom.ZoomLevel;
import org.zkoss.ganttz.util.ComponentsFinder;
import org.zkoss.ganttz.util.LongOperationFeedback;
import org.zkoss.ganttz.util.OnZKDesktopRegistry;
@ -50,7 +51,9 @@ import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.HtmlMacroComponent;
import org.zkoss.zk.ui.util.Clients;
import org.zkoss.zul.ListModel;
import org.zkoss.zul.Separator;
import org.zkoss.zul.SimpleListModel;
import org.zkoss.zul.api.Button;
public class Planner extends HtmlMacroComponent {
@ -137,6 +140,28 @@ public class Planner extends HtmlMacroComponent {
}
}
public ListModel getZoomLevels() {
return new SimpleListModel(ZoomLevel.values());
}
public void setZoomLevel(final ZoomLevel zoomLevel) {
if (ganttPanel == null) {
return;
}
LongOperationFeedback.execute(ganttPanel, new ILongOperation() {
@Override
public String getName() {
return _("changing zoom");
}
@Override
public void doAction() throws Exception {
ganttPanel.setZoomLevel(zoomLevel);
}
});
}
public void zoomIncrease() {
if (ganttPanel == null) {
return;

View file

@ -152,6 +152,11 @@ public class TimeTracker {
invalidatingChangeHappened();
}
public void setZoomLevel(ZoomLevel zoomLevel) {
detailLevel = zoomLevel;
invalidatingChangeHappened();
}
private void invalidatingChangeHappened() {
clearDetailLevelDependantData();
fireZoomChanged();

View file

@ -20,12 +20,14 @@
package org.zkoss.ganttz.timetracker.zoom;
import static org.zkoss.ganttz.i18n.I18nHelper._;
/**
* @author Francisco Javier Moran Rúa
*/
public enum ZoomLevel {
DETAIL_ONE {
DETAIL_ONE(_("Year")) {
@Override
public TimeTrackerState getTimeTrackerState(
IDetailItemModificator firstLevel,
@ -33,7 +35,7 @@ public enum ZoomLevel {
return new DetailOneTimeTrackerState(firstLevel, secondLevel);
}
},
DETAIL_TWO {
DETAIL_TWO(_("Quarter")) {
@Override
public TimeTrackerState getTimeTrackerState(
IDetailItemModificator firstLevel,
@ -41,7 +43,7 @@ public enum ZoomLevel {
return new DetailTwoTimeTrackerState(firstLevel, secondLevel);
}
},
DETAIL_THREE {
DETAIL_THREE(_("Month")) {
@Override
public TimeTrackerState getTimeTrackerState(
IDetailItemModificator firstLevel,
@ -49,7 +51,7 @@ public enum ZoomLevel {
return new DetailThreeTimeTrackerState(firstLevel, secondLevel);
}
},
DETAIL_FOUR {
DETAIL_FOUR(_("Week")) {
@Override
public TimeTrackerState getTimeTrackerState(
IDetailItemModificator firstLevel,
@ -57,7 +59,7 @@ public enum ZoomLevel {
return new DetailFourTimeTrackerState(firstLevel, secondLevel);
}
},
DETAIL_FIVE {
DETAIL_FIVE(_("Day")) {
@Override
public TimeTrackerState getTimeTrackerState(
IDetailItemModificator firstLevel,
@ -66,6 +68,12 @@ public enum ZoomLevel {
}
};
private String name;
private ZoomLevel(String name) {
this.name = name;
}
/**
* @return if there is no next, returns <code>this</code>. Otherwise returns
* the next one.
@ -93,4 +101,9 @@ public enum ZoomLevel {
IDetailItemModificator firstLevel,
IDetailItemModificator secondLevel);
@Override
public String toString() {
return name;
}
}

View file

@ -8,10 +8,11 @@ planner = self;
<north height="30px" border="0">
<hbox align="center" id="toolbar" sclass="toolbar-box">
<separator/>
<button onClick="planner.zoomIncrease();" class="planner-icon"
image="/common/img/zoom_in.png" tooltiptext="${i18n:_('Zoom increase')}" />
<button onClick="planner.zoomDecrease();" class="planner-icon"
image="/common/img/zoom_out.png" tooltiptext="${i18n:_('Zoom decrease')}" />
<label>${i18n:_('Zoom level')}:</label>
<listbox mold="select" rows="1"
model="${planner.zoomLevels}"
onSelect="planner.setZoomLevel(self.selectedItem.value);" >
</listbox>
<separator/>
<label>${i18n:_('Filter')}:</label>
<combobox>