package it.agilis.mens.azzeroCO2.client.components.conoscoCO2; import com.extjs.gxt.ui.client.Style; 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.FormAcquisto; import it.agilis.mens.azzeroCO2.client.forms.FormConferma; import it.agilis.mens.azzeroCO2.client.forms.FormConoscoCO2; import it.agilis.mens.azzeroCO2.client.forms.FormRiepilogo; import it.agilis.mens.azzeroCO2.client.mvc.events.ConoscoCO2Events; 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 ConoscoCO2 extends LayoutContainer { private OrdineModel ordineModel = new OrdineModel(); private final TabPanel conoscoCO2Tab = new TabPanel(); private final FormConoscoCO2 conoscoCO2Form = new FormConoscoCO2(); 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; @Override protected void onRender(Element target, int index) { super.onRender(target, index); setLayout(new RowLayout(Style.Orientation.HORIZONTAL)); TabItem conoscoCO2 = new TabItem("conosco la CO2"); conoscoCO2.setLayout(new BorderLayout()); conoscoCO2.add(conoscoCO2Form, new BorderLayoutData(Style.LayoutRegion.CENTER)); conoscoCO2Tab.add(conoscoCO2); TabItem riepilogo = new TabItem("riepilogo"); riepilogo.setStyleAttribute("background-color", "#555557"); riepilogo.add(formRiepilogo, new BorderLayoutData(Style.LayoutRegion.CENTER)); riepilogo.setEnabled(false); conoscoCO2Tab.add(riepilogo); TabItem acquisto = new TabItem("acquisto"); acquisto.setStyleAttribute("background-color", "#555557"); acquisto.add(formAcquisto, new BorderLayoutData(Style.LayoutRegion.CENTER)); acquisto.setEnabled(false); conoscoCO2Tab.add(acquisto); TabItem conferma = new TabItem("conferma"); conferma.setStyleAttribute("background-color", "#555557"); conferma.add(formConferma, new BorderLayoutData(Style.LayoutRegion.CENTER)); conferma.setEnabled(false); conoscoCO2Tab.add(conferma); add(conoscoCO2Tab, new RowData(1, 1)); posizioniText.add(Arrays.asList(".", "Riepilogo")); // DETTAGLIO posizioniText.add(Arrays.asList("Conosco la CO2", "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 = conoscoCO2Tab.getItems().size() - 1; i >= 0; i--) { TabItem item = conoscoCO2Tab.getItems().get(i); if (conoscoCO2Tab.getSelectedItem().getText().equalsIgnoreCase(item.getText())) { if (i > 0) { item.setEnabled(false); conoscoCO2Tab.getItems().get(i - 1).setEnabled(true); conoscoCO2Tab.setSelection(conoscoCO2Tab.getItems().get(i - 1)); posizioniLabel--; // OrdineModel riepilogo = riepilogo(); Dispatcher.forwardEvent(ConoscoCO2Events.NextText, posizioniText.get(posizioniLabel).get(1)); Dispatcher.forwardEvent(ConoscoCO2Events.PreviousText, posizioniText.get(posizioniLabel).get(0)); return conoscoCO2Tab.getSelectedItem().getTitle(); } } } return ""; } public String nextTab() { int i = 0; for (TabItem item : conoscoCO2Tab.getItems()) { i++; if (conoscoCO2Tab.getSelectedItem().getText().equalsIgnoreCase(item.getText())) { if (i < conoscoCO2Tab.getItems().size()) { if (conoscoCO2Tab.getItems().get(i).getText().equalsIgnoreCase("Conferma")) { Dispatcher.forwardEvent(ConoscoCO2Events.Conferma); return conoscoCO2Tab.getItems().get(i).getText(); } if (conoscoCO2Tab.getItems().get(i).getText().equalsIgnoreCase("Acquisto")) { Dispatcher.forwardEvent(ConoscoCO2Events.Acquisto); } if (conoscoCO2Tab.getItems().get(i).getText().equalsIgnoreCase("Vai al pagamento")) { if (userInfoModel.getProfilo() == Profile.Guest.ordinal()) { return conoscoCO2Tab.getItems().get(i).getText(); } } if (conoscoCO2Tab.getItems().get(i).getText().equalsIgnoreCase("Riepilogo")) { Dispatcher.forwardEvent(ConoscoCO2Events.Riepilogo); } item.setEnabled(false); conoscoCO2Tab.getItems().get(i).setEnabled(true); conoscoCO2Tab.setSelection(conoscoCO2Tab.getItems().get(i)); posizioniLabel++; Dispatcher.forwardEvent(ConoscoCO2Events.NextText, posizioniText.get(posizioniLabel).get(1)); Dispatcher.forwardEvent(ConoscoCO2Events.PreviousText, posizioniText.get(posizioniLabel).get(0)); return conoscoCO2Tab.getItems().get(i).getText(); } } } return ""; } public void clearPanel() { conoscoCO2Form.clear(); conoscoCO2Form.setHeight(443); conoscoCO2Form.setWidth(691); formRiepilogo.clear(); formAcquisto.clear(); if (posizioniLabel == 1) { return; } } public OrdineModel riepilogo() { ordineModel.setNome("ConoscoCO2"); ordineModel.setEventiType(Eventi.CONOSCI_CO2.name()); ordineModel.setConoscoCO2Model(conoscoCO2Form.getConoscoCO2Model()); 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) { conoscoCO2Tab.getSelectedItem().disable(); posizioniLabel++; conoscoCO2Tab.getItems().get(conoscoCO2Tab.getItems().size() - 1).setEnabled(true); conoscoCO2Tab.setSelection(conoscoCO2Tab.getItems().get(conoscoCO2Tab.getItems().size() - 1)); Dispatcher.forwardEvent(ConoscoCO2Events.NextText, posizioniText.get(posizioniLabel - 1).get(1)); Dispatcher.forwardEvent(ConoscoCO2Events.PreviousText, posizioniText.get(posizioniLabel - 1).get(0)); } public void setConoscoCO2RiepilogoInStore(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 showRiepilogo() { //To change body of created methods use File | Settings | File Templates. } public void goToBegin() { while (posizioniLabel > 1) { previusTab(); } previusTab(); } public void setCouponModel(CouponModel coupon) { formAcquisto.setCouponModel(coupon); } }