[Bug #1203] Added event on client side to send the data of the zoom change and listener on the server to store them.

These data are used on the listeners of the zoom event to be able to draw the
changes correctly.

FEA: ItEr75S08MigrationZK5
This commit is contained in:
Jacobo Aragunde Pérez 2011-10-06 18:44:01 +02:00
parent b9f2c198cf
commit fa77906d04
2 changed files with 45 additions and 0 deletions

View file

@ -45,9 +45,13 @@ import org.zkoss.ganttz.timetracker.zoom.ZoomLevel;
import org.zkoss.ganttz.util.ComponentsFinder;
import org.zkoss.ganttz.util.Interval;
import org.zkoss.ganttz.util.MutableTreeModel;
import org.zkoss.zk.au.AuRequest;
import org.zkoss.zk.au.AuService;
import org.zkoss.zk.au.out.AuInvoke;
import org.zkoss.zk.mesg.MZk;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.HtmlMacroComponent;
import org.zkoss.zk.ui.UiException;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
@ -151,6 +155,40 @@ public class LimitingResourcesPanel extends HtmlMacroComponent {
treeModel);
leftPane = new LimitingResourcesLeftPane(treeModel);
setAuService(new AuService(){
public boolean service(AuRequest request, boolean everError){
String command = request.getCommand();
int zoomindex;
int scrollLeft;
if (command.equals("onZoomLevelChange")){
zoomindex= (Integer) retrieveData(request, "zoomindex");
scrollLeft = (Integer) retrieveData(request, "scrollLeft");
setZoomLevel((ZoomLevel)((Listbox)getFellow("listZoomLevels"))
.getModel().getElementAt(zoomindex),
scrollLeft);
return true;
}
return false;
}
private Object retrieveData(AuRequest request, String key){
Object value = request.getData().get(key);
if ( value == null)
throw new UiException(MZk.ILLEGAL_REQUEST_WRONG_DATA,
new Object[] { key, this });
return value;
}
});
}
public void setZoomLevel(ZoomLevel zoomLevel, int scrollLeft) {
savePreviousData();
getTimeTrackerComponent().updateDayScroll();
getTimeTrackerComponent().setZoomLevel(zoomLevel, scrollLeft);
}
public void appendQueueElementToQueue(LimitingResourceQueueElement element) {

View file

@ -17,11 +17,18 @@ limitingresources.LimitingResourcesPanel = zk.$extends(zk.Macro,{
this._initializeProperties();
this.domListen_(this._rightpanellayout,'onScroll', '_listenToScroll');
this.domListen_(jq('.resourcesloadlayout .toolbar-box select')[0], 'onChange', '_zoomLevelChanged');
},
unbind_ : function(){
this.domUnlisten_(this._rightpanellayout,'onScroll', '_listenToScroll');
this.domUnlisten_(jq('.resourcesloadlayout .toolbar-box select')[0], 'onChange', '_zoomLevelChanged');
this.$supers('unbind_', arguments);
},
_zoomLevelChanged : function(event){
var zoomindex = event.domTarget.selectedIndex;
var scrollLeft = parseFloat(jq('.timetrackergap').css('left').replace(/px/, ""));
zAu.send(new zk.Event(this, 'onZoomLevelChange', {zoomindex : zoomindex, scrollLeft : scrollLeft}));
},
_initializeProperties : function(){
this._rightpanellayout = jq('.rightpanellayout div:first');
this._timetrackergap = jq('.timetrackergap');