/*
SASAbusHTML5 - HTML5 App for SASA bus
Copyright (C) 2013 TIS Innovation Park - Bolzano/Bozen - Italy
Copyright (C) 2013-2014 Davide Montesin <d@vide.bz> - Bolzano/Bozen - Italy
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package it.bz.tis.sasabus.html5.shared.ui.map;
import it.bz.tis.sasabus.backend.shared.FreeSlots;
import it.bz.tis.sasabus.backend.shared.ParkingInfo;
import it.bz.tis.sasabus.backend.shared.SASAbusDBDataReady;
import it.bz.tis.sasabus.html5.client.SASAbusDBClientImpl;
import it.bz.tis.sasabus.html5.shared.SASAbusI18N;
import it.bz.tis.sasabus.html5.shared.data.Parking;
import it.bz.tis.sasabus.html5.shared.ui.ItDeNamePanel;
import bz.davide.dmweb.client.google.visualization.Gauge;
import bz.davide.dmweb.shared.view.ButtonView;
import bz.davide.dmweb.shared.view.DMClickEvent;
import bz.davide.dmweb.shared.view.DMClickHandler;
import bz.davide.dmweb.shared.view.DivView;
import bz.davide.dmweb.shared.view.SpanView;
public class ParkingPopup extends DivView
{
Parking parking;
DivView freeParkingsData;
public ParkingPopup(Parking parking, final SASAbusI18N i18n)
{
super("parking-popup");
this.parking = parking;
this.appendChild(new ItDeNamePanel(parking.getName_it(), parking.getName_de(), null, i18n));
this.appendChild(new SpanView(i18n.getLocalizedText("MapParkingPopup_msg") + ":"));
this.appendChild(this.freeParkingsData = new DivView("free-data"));
}
void init(SASAbusI18N i18n)
{
ButtonView refresh = new ButtonView(i18n.getLocalizedText("MapParkingPopup_refresh"));
this.appendChild(refresh);
DMClickHandler refreshHandler = new DMClickHandler()
{
@Override
public void onClick(DMClickEvent event)
{
ParkingPopup.this.freeParkingsData.clear();
ParkingPopup.this.freeParkingsData.appendChild(new SpanView("reading..."));
SASAbusDBClientImpl.singleton.loadParkingInfo(ParkingPopup.this.parking.getId(),
new SASAbusDBDataReady<ParkingInfo>()
{
@Override
public void ready(ParkingInfo data)
{
ParkingPopup.this.parkinginfo(data);
}
});
}
};
refresh.addClickHandler(refreshHandler);
refreshHandler.onClick(null);
}
void parkinginfo(final ParkingInfo parkingInfo)
{
SASAbusDBClientImpl.singleton.loadParkingFreeSlots(this.parking.getId(), new SASAbusDBDataReady<FreeSlots>()
{
@Override
public void ready(FreeSlots data)
{
ParkingPopup.this.show(data.getSlots(), parkingInfo.getSlots());
}
});
}
void show(int free, int tot)
{
this.freeParkingsData.clear();
Gauge gauge = new Gauge(this.freeParkingsData.getElement(), "Parking", 0, tot - free, tot);
}
}