package it.agilis.mens.azzeroCO2.client.components.sitoWeb; import com.extjs.gxt.ui.client.Style; import com.extjs.gxt.ui.client.data.ModelData; import com.extjs.gxt.ui.client.store.ListStore; import com.extjs.gxt.ui.client.util.Margins; import com.extjs.gxt.ui.client.util.Padding; import com.extjs.gxt.ui.client.widget.ContentPanel; import com.extjs.gxt.ui.client.widget.LayoutContainer; import com.extjs.gxt.ui.client.widget.Text; import com.extjs.gxt.ui.client.widget.grid.*; import com.extjs.gxt.ui.client.widget.layout.HBoxLayoutData; import com.extjs.gxt.ui.client.widget.layout.VBoxLayout; import com.extjs.gxt.ui.client.widget.layout.VBoxLayoutData; import com.google.gwt.user.client.Element; import com.google.gwt.user.client.ui.Image; import it.agilis.mens.azzeroCO2.client.AzzeroCO2Resources; import it.agilis.mens.azzeroCO2.client.services.CalcoliHelper; import it.agilis.mens.azzeroCO2.shared.model.OrdineModel; import it.agilis.mens.azzeroCO2.shared.model.RiepilogoModel; import it.agilis.mens.azzeroCO2.shared.model.pagamento.Esito; import java.util.ArrayList; import java.util.List; /** * Created by IntelliJ IDEA. * User: giovannilt * Date: 6/19/11 * Time: 12:15 PM * To change this template use File | Settings | File Templates. */ public class SitoWebWest extends LayoutContainer { private Grid<RiepilogoModel> grid; private ListStore<RiepilogoModel> store = new ListStore<RiepilogoModel>(); private Text title = new Text("Sito Web CO2"); private final String oggettoDiDefault = "Compensa le tue emissioni"; private final String riepilogoString = "Hai terminato il calcolo! <br>" + "Se vuoi modifica i dati inseriti<br>" + " cliccando sulla voce relativa."; private final String progettoDiCompensazione = "Scegli un progetto di <br>" + "compensazione.<br>" + "Controlla il preventivo e <br>" + "accedi al sistema di <br>" + "pagamento."; private final String Conferma = "Il Percorso รจ finito!"; private final String oggettoIniziale = "Compensa le emissioni <br>relative al tuo sito web"; public SitoWebWest() { RiepilogoModel model = new RiepilogoModel(); model.setOggetto(oggettoDiDefault); store.add(model); } @Override protected void onRender(Element target, int index) { super.onRender(target, index); VBoxLayout layout = new VBoxLayout(); layout.setPadding(new Padding(5,0,0,0)); layout.setVBoxLayoutAlign(VBoxLayout.VBoxLayoutAlign.CENTER); setLayout(layout); HBoxLayoutData flex = new HBoxLayoutData(new Margins(0, 0, 0, 0)); flex.setFlex(1); add(title, new VBoxLayoutData(new Margins(5, 5, 0, 5))); ContentPanel panel = new ContentPanel(); panel.setHeaderVisible(false); panel.setBodyStyle("background-Color: #d9dadb;"); panel.setBorders(false); panel.add(createGrid(), new VBoxLayoutData(new Margins(0, 5, 2, 0))); title.setStyleAttribute("background-Color", "#d9dadb"); title.setStyleAttribute("color", "black"); title.setStyleAttribute("font-family", "arial"); title.setStyleAttribute("text-align", "center"); title.setStyleAttribute("vertical-align", "middle"); title.setWidth(215); title.setHeight(70); title.setStyleAttribute("font-size", "14px"); //panel.setStyleAttribute("backgroundColor", "#E9E9E9"); panel.setStyleAttribute("background-Color", "#d9dadb"); panel.setHeight(300); panel.setStyleAttribute("border-top","none"); // panel.setStyleAttribute("border-top-color","#d9dadb !important"); panel.setShadow(true); add(panel, flex); } private Grid<RiepilogoModel> createGrid() { List<ColumnConfig> configs = new ArrayList<ColumnConfig>(); ColumnConfig column = new ColumnConfig("img", "img", 24); column.setAlignment(Style.HorizontalAlignment.LEFT); column.setRenderer(new GridCellRenderer() { @Override public Object render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore listStore, Grid grid) { config.style += "background-color: #d9dadb;"; List<RiepilogoModel> r = listStore.getModels(); if (r.size() == 1 && r.get(0).getOggetto().equalsIgnoreCase(oggettoDiDefault)|| r.get(0).getOggetto().equalsIgnoreCase(oggettoIniziale)) { return null; } return new Image(AzzeroCO2Resources.INSTANCE.checkIcon());//new ToolButton("x-tool-pin"); } }); configs.add(column); column = new ColumnConfig("oggetto", "oggetto", 186); column.setAlignment(Style.HorizontalAlignment.LEFT); column.setRenderer(new GridCellRenderer() { @Override public Object render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore listStore, Grid grid) { Text text = new Text((String) model.get(property)); text.setStyleAttribute("background-Color", "#d9dadb"); text.setStyleAttribute("color", "black"); text.setStyleAttribute("font-family", "arial"); config.style += "background-color: #d9dadb;"; return text; } }); configs.add(column); ColumnModel cm = new ColumnModel(configs); grid = new Grid<RiepilogoModel>(store, cm); grid.setAutoHeight(true); grid.setHeight(400); grid.setWidth(210); // grid.setStripeRows(true); grid.setHideHeaders(true); grid.setStyleAttribute("background-Color", "#E9E9E9"); grid.disableTextSelection(true); grid.setTrackMouseOver(false); grid.setBorders(false); return grid; } public void setInStore(OrdineModel riepilogo, Esito esito) { store.removeAll(); List<RiepilogoModel> model = CalcoliHelper.getListOfRiepilogoModelLazy(riepilogo); if (model == null || model.size() == 0) { RiepilogoModel m = new RiepilogoModel(); m.setOggetto(oggettoIniziale); store.add(m); } else { store.add(model); } setTitle(riepilogo); } public void setTitle(OrdineModel riepilogo) { String title = riepilogo.getNome() != null ? riepilogo.getNome() : "Compensa la CO2"; if (title == null || "".equalsIgnoreCase(title)) { this.title.setText("Compensa la CO2"); } else { this.title.setText(title); } } public void clean() { setInStore(null, Esito.IN_PAGAMENTO); this.title.setTitle("....."); } public void isInRiepilogo(OrdineModel riepilogo) { setTitle(riepilogo); store.removeAll(); RiepilogoModel m = new RiepilogoModel(); m.setOggetto(riepilogoString); store.add(m); } public void isScegliProgettoCompensazione(OrdineModel riepilogo) { setTitle(riepilogo); store.removeAll(); RiepilogoModel m = new RiepilogoModel(); m.setOggetto(progettoDiCompensazione); store.add(m); } public void isInConferma(OrdineModel riepilogo) { setTitle(riepilogo); store.removeAll(); RiepilogoModel m = new RiepilogoModel(); m.setOggetto(Conferma); store.add(m); } }