ItEr41S16ImplantacionAplicacionItEr40S21: Changed zoom buttons for combo to change zoom level easily.
This commit is contained in:
parent
4d8c55d875
commit
8c8e531d5f
5 changed files with 59 additions and 9 deletions
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -152,6 +152,11 @@ public class TimeTracker {
|
|||
invalidatingChangeHappened();
|
||||
}
|
||||
|
||||
public void setZoomLevel(ZoomLevel zoomLevel) {
|
||||
detailLevel = zoomLevel;
|
||||
invalidatingChangeHappened();
|
||||
}
|
||||
|
||||
private void invalidatingChangeHappened() {
|
||||
clearDetailLevelDependantData();
|
||||
fireZoomChanged();
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue