package it.agilis.mens.azzeroCO2.client.components.sitoWeb;
import com.extjs.gxt.ui.client.Style;
import com.extjs.gxt.ui.client.mvc.AppEvent;
import com.extjs.gxt.ui.client.mvc.Dispatcher;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.TabItem;
import com.extjs.gxt.ui.client.widget.TabPanel;
import com.extjs.gxt.ui.client.widget.layout.BorderLayout;
import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData;
import com.extjs.gxt.ui.client.widget.layout.RowData;
import com.extjs.gxt.ui.client.widget.layout.RowLayout;
import com.google.gwt.user.client.Element;
import it.agilis.mens.azzeroCO2.client.forms.*;
import it.agilis.mens.azzeroCO2.client.mvc.events.SitoWebEvents;
import it.agilis.mens.azzeroCO2.shared.Eventi;
import it.agilis.mens.azzeroCO2.shared.Profile;
import it.agilis.mens.azzeroCO2.shared.model.OrdineModel;
import it.agilis.mens.azzeroCO2.shared.model.RiepilogoModel;
import it.agilis.mens.azzeroCO2.shared.model.amministrazione.CouponModel;
import it.agilis.mens.azzeroCO2.shared.model.amministrazione.ProgettoDiCompensazioneModel;
import it.agilis.mens.azzeroCO2.shared.model.pagamento.Esito;
import it.agilis.mens.azzeroCO2.shared.model.registrazione.UserInfoModel;
import it.agilis.mens.azzeroCO2.shared.vto.OrdineVTO;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* Created by IntelliJ IDEA.
* User: serenadimaida
* Date: 03/07/11
* Time: 00.50
* To change this template use File | Settings | File Templates.
*/
public class SitoWeb extends LayoutContainer {
private OrdineModel ordineModel = new OrdineModel();
private final TabPanel sitoWebTab = new TabPanel();
private FormSitoWebSolo sitoWebForm = new FormSitoWebSolo();
private final FormRiepilogo formRiepilogo = new FormRiepilogo();
private final FormAcquisto formAcquisto = new FormAcquisto();
private final FormConferma formConferma = new FormConferma();
private static int posizioniLabel = 0;
private List<List<String>> posizioniText = new ArrayList<List<String>>();
private UserInfoModel userInfoModel;
private AppEvent event;
@Override
protected void onRender(Element target, int index) {
super.onRender(target, index);
setLayout(new RowLayout(Style.Orientation.HORIZONTAL));
TabItem sito = new TabItem("sito web");
sito.setLayout(new BorderLayout());
sito.add(sitoWebForm, new BorderLayoutData(Style.LayoutRegion.CENTER));
sitoWebTab.add(sito);
TabItem riepilogo = new TabItem("riepilogo");
riepilogo.setStyleAttribute("background-color", "#555557");
riepilogo.add(formRiepilogo, new BorderLayoutData(Style.LayoutRegion.CENTER));
riepilogo.setEnabled(false);
sitoWebTab.add(riepilogo);
TabItem acquisto = new TabItem("acquisto");
acquisto.setStyleAttribute("background-color", "#555557");
acquisto.add(formAcquisto, new BorderLayoutData(Style.LayoutRegion.CENTER));
acquisto.setEnabled(false);
sitoWebTab.add(acquisto);
TabItem conferma = new TabItem("conferma");
conferma.setStyleAttribute("background-color", "#555557");
conferma.add(formConferma, new BorderLayoutData(Style.LayoutRegion.CENTER));
conferma.setEnabled(false);
sitoWebTab.add(conferma);
add(sitoWebTab, new RowData(1, 1));
posizioniText.add(Arrays.asList(".", "Riepilogo")); // DETTAGLIO
posizioniText.add(Arrays.asList("Sito web", "Acquisto")); // RIEPILOGO
posizioniText.add(Arrays.asList("Riepilogo", "Vai al pagamento")); // ACQUISTO
posizioniText.add(Arrays.asList("", "torna alla home")); // CONFERMA
}
public String previusTab() {
for (int i = sitoWebTab.getItems().size() - 1; i >= 0; i--) {
TabItem item = sitoWebTab.getItems().get(i);
if (sitoWebTab.getSelectedItem().getText().equalsIgnoreCase(item.getText())) {
if (i > 0) {
item.setEnabled(false);
sitoWebTab.getItems().get(i - 1).setEnabled(true);
sitoWebTab.setSelection(sitoWebTab.getItems().get(i - 1));
posizioniLabel--;
// OrdineModel riepilogo = riepilogo();
Dispatcher.forwardEvent(SitoWebEvents.NextText, posizioniText.get(posizioniLabel).get(1));
Dispatcher.forwardEvent(SitoWebEvents.PreviousText, posizioniText.get(posizioniLabel).get(0));
return sitoWebTab.getSelectedItem().getTitle();
}
}
}
return "";
}
public String nextTab() {
int i = 0;
for (TabItem item : sitoWebTab.getItems()) {
i++;
if (sitoWebTab.getSelectedItem().getText().equalsIgnoreCase(item.getText())) {
if (i < sitoWebTab.getItems().size()) {
if (sitoWebTab.getItems().get(i).getText().equalsIgnoreCase("Conferma")) {
Dispatcher.forwardEvent(SitoWebEvents.Conferma);
return sitoWebTab.getItems().get(i).getText();
}
if (sitoWebTab.getItems().get(i).getText().equalsIgnoreCase("Acquisto")) {
Dispatcher.forwardEvent(SitoWebEvents.Acquisto);
}
if (sitoWebTab.getItems().get(i).getText().equalsIgnoreCase("Vai al pagamento")) {
if (userInfoModel.getProfilo() == Profile.Guest.ordinal()) {
return sitoWebTab.getItems().get(i).getText();
}
}
if (sitoWebTab.getItems().get(i).getText().equalsIgnoreCase("Riepilogo")) {
Dispatcher.forwardEvent(SitoWebEvents.Riepilogo);
}
item.setEnabled(false);
sitoWebTab.getItems().get(i).setEnabled(true);
sitoWebTab.setSelection(sitoWebTab.getItems().get(i));
posizioniLabel++;
Dispatcher.forwardEvent(SitoWebEvents.NextText, posizioniText.get(posizioniLabel).get(1));
Dispatcher.forwardEvent(SitoWebEvents.PreviousText, posizioniText.get(posizioniLabel).get(0));
return sitoWebTab.getItems().get(i).getText();
}
}
}
return "";
}
public void clearPanel() {
sitoWebForm.clear();
formRiepilogo.clear();
formAcquisto.clear();
if (posizioniLabel == 1) {
return;
}
}
public OrdineModel riepilogo() {
ordineModel.setNome("Sito Web");
ordineModel.setEventiType(Eventi.WEB.name());
ordineModel.setSitoWebModel(sitoWebForm.getSitoWebModel());
ordineModel.setProgettoDiCompensazioneModel(formAcquisto.getProgettoDiCompensazioneModel());
ordineModel.setCouponModel(formAcquisto.getCouponModel());
return ordineModel;
}
public void restore(OrdineModel ordineModel) {
formAcquisto.setProgettoDiCompensazione(ordineModel.getProgettoDiCompensazioneModel());
this.ordineModel = ordineModel;
}
public void setProgettiDiCompensazione(List<ProgettoDiCompensazioneModel> progettiDiCompensazioneList) {
formAcquisto.setInStore(progettiDiCompensazioneList);
}
public void setUserInfoModel(UserInfoModel userInfoModel) {
this.userInfoModel = userInfoModel;
}
public void showConferma(OrdineVTO result) {
sitoWebTab.getSelectedItem().disable();
posizioniLabel++;
sitoWebTab.getItems().get(sitoWebTab.getItems().size() - 1).setEnabled(true);
sitoWebTab.setSelection(sitoWebTab.getItems().get(sitoWebTab.getItems().size() - 1));
Dispatcher.forwardEvent(SitoWebEvents.NextText, posizioniText.get(posizioniLabel).get(1));
Dispatcher.forwardEvent(SitoWebEvents.PreviousText, posizioniText.get(posizioniLabel).get(0));
}
public void setSitoWebRiepilogoInStore(List<RiepilogoModel> riepilogoModels) {
OrdineModel riepilogo = riepilogo();
Esito esito = Esito.IN_PAGAMENTO;
if (riepilogo.getPagamentoModel() != null &&
riepilogo.getPagamentoModel().getEsito() != null) {
esito = Esito.valueOf(riepilogo.getPagamentoModel().getEsito());
}
formRiepilogo.setRiepilogoInStore(riepilogoModels, esito);
formAcquisto.setRiepilogo(riepilogoModels, riepilogo);
}
public void goToBegin() {
while (posizioniLabel > 1) {
previusTab();
}
if (posizioniLabel > 0) {
previusTab();
}
}
public void showRiepilogo() {
//To change body of created methods use File | Settings | File Templates.
}
public void setCouponModel(CouponModel coupon) {
formAcquisto.setCouponModel(coupon);
}
}