package org.gcube.portlets.user.geoportaldataentry.client.ui; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import org.gcube.portlets.user.geoportaldataentry.client.ui.card.GeoNaFormCardModel; import org.gcube.portlets.user.geoportaldataentry.client.ui.card.MetadataFormCard; import org.gcube.portlets.user.geoportaldataentry.shared.GeoNaFormDataObject; import org.gcube.portlets.widgets.mpformbuilder.client.form.generic.CreateMetadataForm; import org.gcube.portlets.widgets.mpformbuilder.shared.GenericDatasetBean; import com.github.gwtbootstrap.client.ui.Tab; import com.github.gwtbootstrap.client.ui.TabPanel; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.uibinder.client.UiHandler; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.HTMLPanel; import com.google.gwt.user.client.ui.Widget; public class GeonaDataEntryMainForm extends Composite { private static GeonaDataEntryMainFormUiBinder uiBinder = GWT.create(GeonaDataEntryMainFormUiBinder.class); interface GeonaDataEntryMainFormUiBinder extends UiBinder { } private List listCards = new ArrayList(); @UiField HTMLPanel mainHTMLPanel; @UiField TabPanel mainTabPanel; private LinkedHashMap mapForms = new LinkedHashMap(); private List listTabs = new ArrayList(); public GeonaDataEntryMainForm() { initWidget(uiBinder.createAndBindUi(this)); } public void addForm(String tabHeading, GeoNaFormCardModel geonFormModel){ listCards.add(geonFormModel); createNewCard(tabHeading, geonFormModel); } private void createNewCard(String tabHeading, final GeoNaFormCardModel geonFormModel){ final Tab tab = new Tab(); tab.setHeading(tabHeading); //MetadataFormCard mfc = new MetadataFormCard(tab, createMetadataForm, repeatible); MetadataFormCard mfc = new MetadataFormCard(tab,geonFormModel); listTabs.add(tab); mainTabPanel.add(tab); if(listTabs.size()==1) { tab.setActive(true); mainTabPanel.selectTab(0); } mapForms.put(tabHeading, mfc); } public void selectTab(int index){ GWT.log("Selecting tab index: "+ index +" of "+listTabs.size()); if(listTabs.size() listGoneFormObjects = new ArrayList(); if(canSave) { for (String metadataType : mapForms.keySet()) { MetadataFormCard card = mapForms.get(metadataType); List listGDB = new ArrayList(card.getListForms().size()); for (CreateMetadataForm form : card.getListForms()) { listGDB.add(form.getFormDataBean()); } listGoneFormObjects.add(new GeoNaFormDataObject(listGDB, card.getGeonaFormModel().getFormCardTitle())); } } Window.alert("I cane save: "+listGoneFormObjects); } /** * Sets the ative after. * * @param index the index * @param bool the bool */ public void setAtiveAfter(int index, boolean bool){ // if(listTabs.size()