139 lines
5.7 KiB
Java
139 lines
5.7 KiB
Java
package org.gcube.portlets.user.geoportaldataentry.client;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Arrays;
|
|
import java.util.Collection;
|
|
import java.util.LinkedHashMap;
|
|
import java.util.List;
|
|
import java.util.TreeMap;
|
|
|
|
import org.gcube.portlets.user.geoportaldataentry.client.ui.GeonaDataEntryMainForm;
|
|
import org.gcube.portlets.user.geoportaldataentry.client.ui.GeonaMainPanel;
|
|
import org.gcube.portlets.user.geoportaldataentry.client.ui.card.GeoNaFormCardModel;
|
|
import org.gcube.portlets.widgets.mpformbuilder.client.MetadataProfileFormBuilderServiceAsync;
|
|
import org.gcube.portlets.widgets.mpformbuilder.client.form.generic.CreateMetadataForm;
|
|
import org.gcube.portlets.widgets.mpformbuilder.shared.metadata.MetaDataProfileBean;
|
|
|
|
import com.google.gwt.core.client.EntryPoint;
|
|
import com.google.gwt.core.client.GWT;
|
|
import com.google.gwt.event.shared.HandlerManager;
|
|
import com.google.gwt.user.client.rpc.AsyncCallback;
|
|
import com.google.gwt.user.client.ui.RootPanel;
|
|
|
|
/**
|
|
* Entry point classes define <code>onModuleLoad()</code>.
|
|
*/
|
|
public class GeoPortalDataEntryApp implements EntryPoint {
|
|
/**
|
|
* The message displayed to the user when the server cannot be reached or
|
|
* returns an error.
|
|
*/
|
|
private static final String SERVER_ERROR = "An error occurred while "
|
|
+ "attempting to contact the server. Please check your network " + "connection and try again.";
|
|
|
|
private static final String DIV_PORTLET_ID = "geoportal-data-entry";
|
|
|
|
/**
|
|
* Create a remote service proxy to talk to the server-side Greeting service.
|
|
*/
|
|
private final GreetingServiceAsync greetingService = GWT.create(GreetingService.class);
|
|
|
|
private final Messages messages = GWT.create(Messages.class);
|
|
|
|
private final HandlerManager eventBus = new HandlerManager(null);
|
|
|
|
private LinkedHashMap<String, GeoNaFormCardModel> mapForms = new LinkedHashMap<String, GeoNaFormCardModel>();
|
|
|
|
//private List<MetaDataProfileBean> orderedListMetadataProfilesForGeona = null;
|
|
|
|
/**
|
|
* This is the entry point method.
|
|
*/
|
|
public void onModuleLoad() {
|
|
|
|
String scope = "/gcube/devsec/devVRE";
|
|
String secondaryType = "GeoNaMetadata";
|
|
|
|
final GeonaMainPanel mainPanel = new GeonaMainPanel();
|
|
mainPanel.setLoaderVisible("Loading...", true);
|
|
|
|
final GeonaDataEntryMainForm geoNaMainForm = new GeonaDataEntryMainForm();
|
|
|
|
MetadataProfileFormBuilderServiceAsync.Util.getInstance().getProfilesInTheScope(scope, secondaryType, new AsyncCallback<List<MetaDataProfileBean>>() {
|
|
|
|
@Override
|
|
public void onSuccess(List<MetaDataProfileBean> result) {
|
|
Collection<GeoNaFormCardModel> orderedCards = setGeoNaFormsOrder(result);
|
|
|
|
//ordered values
|
|
for (GeoNaFormCardModel geonaForm : orderedCards) {
|
|
CreateMetadataForm baseForm = new CreateMetadataForm(Arrays.asList(geonaForm.getMetadataProfileBean()));
|
|
geonaForm.setMetadataForm(baseForm);
|
|
String key = geonaForm.getMetadataProfileBean().getType();
|
|
if(geonaForm.getFormCardTitle()!=null) {
|
|
key = geonaForm.getFormCardTitle().getTitle();
|
|
}
|
|
geoNaMainForm.addForm(key, geonaForm);
|
|
mapForms.put(key, geonaForm);
|
|
}
|
|
mainPanel.setLoaderVisible("", false);
|
|
}
|
|
|
|
@Override
|
|
public void onFailure(Throwable caught) {
|
|
}
|
|
});
|
|
|
|
|
|
mainPanel.addFormPanel(geoNaMainForm);
|
|
//
|
|
RootPanel.get(DIV_PORTLET_ID).add(mainPanel);
|
|
|
|
}
|
|
|
|
private Collection<GeoNaFormCardModel> setGeoNaFormsOrder(List<MetaDataProfileBean> listMetadataProfilesForGeona) {
|
|
|
|
TreeMap<Integer, GeoNaFormCardModel> treemapOrderedGeoNaProfiles = new TreeMap<Integer, GeoNaFormCardModel>();
|
|
|
|
List<GeoNaFormCardModel> listUnknownType = new ArrayList<GeoNaFormCardModel>();
|
|
|
|
for (MetaDataProfileBean metaDataProfileBean : listMetadataProfilesForGeona) {
|
|
|
|
String theMetaType = metaDataProfileBean.getType().toLowerCase();
|
|
GeoNaFormCardModel geonaForm = new GeoNaFormCardModel(metaDataProfileBean, null, null);
|
|
|
|
if(theMetaType.contains(ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO.getKey().toLowerCase())) {
|
|
geonaForm.setFormCardTitle(ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO);
|
|
treemapOrderedGeoNaProfiles.put(ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO.getOrder(), geonaForm);
|
|
}else if(theMetaType.contains(ConcessioniFormCardTitle.RELAZIONI_DI_SCAVO.getKey().toLowerCase())) {
|
|
geonaForm.setFormCardTitle(ConcessioniFormCardTitle.RELAZIONI_DI_SCAVO);
|
|
treemapOrderedGeoNaProfiles.put(ConcessioniFormCardTitle.RELAZIONI_DI_SCAVO.getOrder(), geonaForm);
|
|
}else if(theMetaType.contains(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE.getKey().toLowerCase())) {
|
|
geonaForm.setFormCardTitle(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE);
|
|
treemapOrderedGeoNaProfiles.put(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE.getOrder(), geonaForm);
|
|
}else if(theMetaType.contains(ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE.getKey().toLowerCase())) {
|
|
geonaForm.setFormCardTitle(ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE);
|
|
treemapOrderedGeoNaProfiles.put(ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE.getOrder(), geonaForm);
|
|
}else if(theMetaType.contains(ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO.getKey().toLowerCase())) {
|
|
geonaForm.setFormCardTitle(ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO);
|
|
treemapOrderedGeoNaProfiles.put(ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO.getOrder(), geonaForm);
|
|
}else {
|
|
//adding to unknown list
|
|
listUnknownType.add(geonaForm);
|
|
}
|
|
}
|
|
|
|
//adding unknown types
|
|
for (GeoNaFormCardModel geoNaFormCardModel : listUnknownType) {
|
|
Integer highestKey = treemapOrderedGeoNaProfiles.lastKey();
|
|
highestKey++;
|
|
treemapOrderedGeoNaProfiles.put(highestKey, geoNaFormCardModel);
|
|
}
|
|
|
|
GWT.log("Map size: "+treemapOrderedGeoNaProfiles.size());
|
|
return treemapOrderedGeoNaProfiles.values();
|
|
|
|
}
|
|
|
|
}
|