package it.agilis.mens.azzeroCO2.client.components.pubblicazione; import com.extjs.gxt.ui.client.Style; import com.extjs.gxt.ui.client.mvc.Dispatcher; import com.extjs.gxt.ui.client.widget.*; import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData; import com.extjs.gxt.ui.client.widget.layout.CardLayout; 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.forms.publicazioni.FormBigliettiDaVisita; import it.agilis.mens.azzeroCO2.client.mvc.events.PubblicazioniEvents; 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.evento.TipoDiCartaModel; import it.agilis.mens.azzeroCO2.shared.model.pagamento.Esito; import it.agilis.mens.azzeroCO2.shared.model.registrazione.UserInfoModel; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * Created by IntelliJ IDEA. * User: serenadimaida * Date: 07/12/11 * Time: 18:41 * To change this template use File | Settings | File Templates. */ public class Pubblicazione extends LayoutContainer { private final TabPanel pubblicazioneoTab = new TabPanel(); private final FormPubblicazioniRilegate formPubblicazioniRilegate = new FormPubblicazioniRilegate(); private final FormManifestiPieghevoliFogli formManifestipieghevoliFogli = new FormManifestiPieghevoliFogli(); private final FormBigliettiDaVisita formBigliettiDaVisita = new FormBigliettiDaVisita(); 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 OrdineModel ordineModel = new OrdineModel(); @Override protected void onRender(Element target, int index) { super.onRender(target, index); setLayout(new RowLayout(Style.Orientation.HORIZONTAL)); TabItem calcolo = new TabItem("calcolo"); createCalcoloTabs(); calcolo.add(createCalcoloTabs(), new BorderLayoutData(Style.LayoutRegion.CENTER)); calcolo.setEnabled(true); pubblicazioneoTab.add(calcolo); TabItem riepilogo = new TabItem("riepilogo"); riepilogo.setStyleAttribute("background-color", "#555557"); riepilogo.add(formRiepilogo, new BorderLayoutData(Style.LayoutRegion.CENTER)); riepilogo.setEnabled(false); pubblicazioneoTab.add(riepilogo); TabItem acquisto = new TabItem("acquisto"); acquisto.setStyleAttribute("background-color", "#555557"); acquisto.add(formAcquisto, new BorderLayoutData(Style.LayoutRegion.CENTER)); acquisto.setEnabled(false); pubblicazioneoTab.add(acquisto); TabItem conferma = new TabItem("conferma"); conferma.setStyleAttribute("background-color", "#555557"); conferma.add(formConferma, new BorderLayoutData(Style.LayoutRegion.CENTER)); conferma.setEnabled(false); pubblicazioneoTab.add(conferma); add(pubblicazioneoTab, new RowData(1, 1)); posizioniText.add(Arrays.asList(".", "Manifesti pieghevoli e fogli"));// Pubblicazioni rilegate posizioniText.add(Arrays.asList("Pubblicazioni rilegate", "Biglietti da visita e cartelline")); posizioniText.add(Arrays.asList("Manifesti pieghevoli e fogli", "Riepilogo")); // Manifesti pieghevoli e Fogli posizioniText.add(Arrays.asList("Biglietti da visita e cartelline", "Acquisto")); // RIEPILOGO posizioniText.add(Arrays.asList("Riepilogo", "Vai al pagamento")); // ACQUISTO posizioniText.add(Arrays.asList("", "torna alla home")); // CONFERMA } public ContentPanel createCalcoloTabs() { ContentPanel calcoloCardPanel = new ContentPanel(); calcoloCardPanel.setHeight(580); //DIM final CardLayout layout = new CardLayout(); calcoloCardPanel.setLayout(layout); calcoloCardPanel.setHeaderVisible(false); formPubblicazioniRilegate.setTitle("Pubblicazioni Rilegate"); calcoloCardPanel.add(formPubblicazioniRilegate, new BorderLayoutData(Style.LayoutRegion.CENTER)); formManifestipieghevoliFogli.setTitle("Manifesti Pieghevoli e Fogli"); calcoloCardPanel.add(formManifestipieghevoliFogli, new BorderLayoutData(Style.LayoutRegion.CENTER)); formBigliettiDaVisita.setTitle("Biglietti da visita e cartelline"); calcoloCardPanel.add(formBigliettiDaVisita, new BorderLayoutData(Style.LayoutRegion.CENTER)); return calcoloCardPanel; } public String previusTab() { for (int i = pubblicazioneoTab.getItems().size() - 1; i >= 0; i--) { TabItem item = pubblicazioneoTab.getItems().get(i); if (pubblicazioneoTab.getSelectedItem().getText().equalsIgnoreCase(item.getText())) { if (item.getText().equalsIgnoreCase("Calcolo")) { ContentPanel calcolo = (ContentPanel) item.getItem(0); CardLayout layout = (CardLayout) calcolo.getLayout(); for (int j = calcolo.getItems().size() - 1; j >= 0; j--) { Component subItem = calcolo.getItems().get(j); if (layout.getActiveItem().getTitle().equalsIgnoreCase(subItem.getTitle())) { if (j > 0) { layout.setActiveItem(calcolo.getItem(j - 1)); posizioniLabel--; // OrdineModel riepilogo = riepilogo(); Dispatcher.forwardEvent(PubblicazioniEvents.NextText, posizioniText.get(posizioniLabel).get(1)); Dispatcher.forwardEvent(PubblicazioniEvents.PreviousText, posizioniText.get(posizioniLabel).get(0)); return layout.getActiveItem().getTitle(); } } } } if (i > 0) { item.setEnabled(false); pubblicazioneoTab.getItems().get(i - 1).setEnabled(true); pubblicazioneoTab.setSelection(pubblicazioneoTab.getItems().get(i - 1)); posizioniLabel--; // OrdineModel riepilogo = riepilogo(); Dispatcher.forwardEvent(PubblicazioniEvents.NextText, posizioniText.get(posizioniLabel).get(1)); Dispatcher.forwardEvent(PubblicazioniEvents.PreviousText, posizioniText.get(posizioniLabel).get(0)); return pubblicazioneoTab.getSelectedItem().getTitle(); } } } return ""; } public String nextTab() { int i = 0; for (TabItem item : pubblicazioneoTab.getItems()) { i++; if (pubblicazioneoTab.getSelectedItem().getText().equalsIgnoreCase(item.getText())) { if (item.getText().equalsIgnoreCase("Calcolo")) { ContentPanel calcolo = (ContentPanel) item.getItem(0); CardLayout layout = (CardLayout) calcolo.getLayout(); int j = 0; for (Component subItem : calcolo.getItems()) { j++; if (layout.getActiveItem().getTitle().equalsIgnoreCase(subItem.getTitle())) { if (j < calcolo.getItems().size()) { layout.setActiveItem(calcolo.getItem(j)); posizioniLabel++; Dispatcher.forwardEvent(PubblicazioniEvents.NextText, posizioniText.get(posizioniLabel).get(1)); Dispatcher.forwardEvent(PubblicazioniEvents.PreviousText, posizioniText.get(posizioniLabel).get(0)); return layout.getActiveItem().getTitle(); } } } } if (i < pubblicazioneoTab.getItems().size()) { if (pubblicazioneoTab.getItems().get(i).getText().equalsIgnoreCase("Conferma")) { Dispatcher.forwardEvent(PubblicazioniEvents.Conferma); return pubblicazioneoTab.getItems().get(i).getText(); } if (pubblicazioneoTab.getItems().get(i).getText().equalsIgnoreCase("Acquisto")) { Dispatcher.forwardEvent(PubblicazioniEvents.Acquisto); } if (pubblicazioneoTab.getItems().get(i).getText().equalsIgnoreCase("Vai al pagamento")) { if (userInfoModel.getProfilo() == Profile.Guest.ordinal()) { return pubblicazioneoTab.getItems().get(i).getText(); } } if (pubblicazioneoTab.getItems().get(i).getText().equalsIgnoreCase("Riepilogo")) { Dispatcher.forwardEvent(PubblicazioniEvents.Riepilogo); } item.setEnabled(false); pubblicazioneoTab.getItems().get(i).setEnabled(true); pubblicazioneoTab.setSelection(pubblicazioneoTab.getItems().get(i)); if (!pubblicazioneoTab.getItems().get(i).getText().equalsIgnoreCase("Calcolo")) { posizioniLabel++; } if (posizioniLabel == 0) { posizioniLabel++; } Dispatcher.forwardEvent(PubblicazioniEvents.NextText, posizioniText.get(posizioniLabel).get(1)); Dispatcher.forwardEvent(PubblicazioniEvents.PreviousText, posizioniText.get(posizioniLabel).get(0)); return pubblicazioneoTab.getItems().get(i).getText(); } } } return ""; } public void clearPanel() { formPubblicazioniRilegate.clear(true); formManifestipieghevoliFogli.clear(true); formBigliettiDaVisita.clear(); formRiepilogo.clear(); formAcquisto.clear(); } public OrdineModel riepilogo() { ordineModel.setNome("Pubblicazioni"); ordineModel.setEventiType(Eventi.UNA_PUBBLICAZIONE.name()); ordineModel.setPubblicazioniRilegateModel(formPubblicazioniRilegate.getPubblicazioniRilegateModel()); ordineModel.setManifestiPieghevoliFogliModel(formManifestipieghevoliFogli.getManifestiPieghevoliFogliModel()); ordineModel.setBigliettiDaVisitaModel(formBigliettiDaVisita.getBigliettiDaVisitaModel()); ordineModel.setProgettoDiCompensazioneModel(formAcquisto.getProgettoDiCompensazioneModel()); ordineModel.setCouponModel(formAcquisto.getCouponModel()); return ordineModel; } public void restore(OrdineModel ordineModel) { this.ordineModel = ordineModel; formPubblicazioniRilegate.setPubblicazioniRilegateModel(ordineModel.getPubblicazioniRilegateModel()); formManifestipieghevoliFogli.setManifestiPieghevoliFogliModel(ordineModel.getManifestiPieghevoliFogliModel()); formAcquisto.setProgettoDiCompensazione(ordineModel.getProgettoDiCompensazioneModel()); formBigliettiDaVisita.setBigliettiDaVisitaModel(ordineModel.getBigliettiDaVisitaModel()); } public void setTipoDiCarta(List<TipoDiCartaModel> tipoDiCartaModels) { formPubblicazioniRilegate.setTipoDiCartaModel(tipoDiCartaModels); formManifestipieghevoliFogli.setTipoDiCartaModel(tipoDiCartaModels); formBigliettiDaVisita.setTipoDiCartaModel(tipoDiCartaModels); } public void setPubblicazioneRiepilogoInStore(List<RiepilogoModel> eventoRiepilogoModels) { OrdineModel riepilogo = riepilogo(); Esito esito = Esito.IN_PAGAMENTO; if (riepilogo.getPagamentoModel() != null && riepilogo.getPagamentoModel().getEsito() != null) { esito = Esito.valueOf(riepilogo.getPagamentoModel().getEsito()); } formRiepilogo.setRiepilogoInStore(eventoRiepilogoModels, esito); formAcquisto.setRiepilogo(eventoRiepilogoModels, riepilogo); } public void setProgettiDiCompensazione(List<ProgettoDiCompensazioneModel> progettiDiCompensazioneList) { formAcquisto.setInStore(progettiDiCompensazioneList); } public void setUserInfoModel(UserInfoModel userInfoModel) { this.userInfoModel = userInfoModel; } public void showRiepilogo() { if (posizioniLabel != 1) { while (posizioniLabel != 0) { previusTab(); } } while (posizioniLabel != 7) { nextTab(); } Dispatcher.forwardEvent(PubblicazioniEvents.Riepilogo); } public void showStep(RiepilogoModel tabToShow) { if (posizioniLabel == 0) { if (tabToShow.getOggetto().toLowerCase().startsWith("pubblicazioni rilegate")) { return; } } while (posizioniLabel > 0) { String s = previusTab(); if (s != null && !"".equalsIgnoreCase(s) && tabToShow.getOggetto().toLowerCase().startsWith(s.toLowerCase())) { return; } } String s = ""; while (posizioniText.size() - 4 >= posizioniLabel) { s = nextTab(); if (s.equalsIgnoreCase("Vai al pagamento")) { return; } if (s != null && !"".equalsIgnoreCase(s) && tabToShow.getOggetto().toLowerCase().startsWith(s.toLowerCase())) { return; } } } public void showConferma() { pubblicazioneoTab.getSelectedItem().disable(); posizioniLabel++; pubblicazioneoTab.getItems().get(pubblicazioneoTab.getItems().size() - 1).setEnabled(true); pubblicazioneoTab.setSelection(pubblicazioneoTab.getItems().get(pubblicazioneoTab.getItems().size() - 1)); Dispatcher.forwardEvent(PubblicazioniEvents.NextText, posizioniText.get(posizioniLabel).get(1)); Dispatcher.forwardEvent(PubblicazioniEvents.PreviousText, posizioniText.get(posizioniLabel).get(0)); } public void goToBegin() { while (posizioniLabel > 1) { previusTab(); } previusTab(); } public void setCouponModel(CouponModel coupon) { formAcquisto.setCouponModel(coupon); } }