115 lines
4.1 KiB
Java
115 lines
4.1 KiB
Java
package org.gcube.portlets.user.geoportaldataentry.client;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Arrays;
|
|
import java.util.List;
|
|
import java.util.TreeMap;
|
|
|
|
import org.gcube.portlets.user.geoportaldataentry.client.ui.GeonaDataEntryMainForm;
|
|
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 TreeMap<Integer, MetaDataProfileBean> mapOrderedGeoNaProfiles = new TreeMap<Integer, MetaDataProfileBean>();
|
|
|
|
private List<MetaDataProfileBean> orderedListMetadataProfilesForGeona = null;
|
|
|
|
/**
|
|
* This is the entry point method.
|
|
*/
|
|
public void onModuleLoad() {
|
|
|
|
String scope = "/gcube/devsec/devVRE";
|
|
String secondaryType = "GeoNaMetadata";
|
|
|
|
final GeonaDataEntryMainForm geoNaMainForm = new GeonaDataEntryMainForm();
|
|
|
|
MetadataProfileFormBuilderServiceAsync.Util.getInstance().getProfilesInTheScope(scope, secondaryType, new AsyncCallback<List<MetaDataProfileBean>>() {
|
|
|
|
@Override
|
|
public void onSuccess(List<MetaDataProfileBean> result) {
|
|
orderedListMetadataProfilesForGeona = setGeoNaFormOrder(result);
|
|
|
|
for (MetaDataProfileBean metaDataProfileBean : orderedListMetadataProfilesForGeona) {
|
|
CreateMetadataForm baseForm = new CreateMetadataForm(Arrays.asList(metaDataProfileBean));
|
|
boolean repeatibleForm = false;
|
|
String theMetaType = metaDataProfileBean.getType().toLowerCase();
|
|
if(theMetaType.contains("immagin") || theMetaType.contains("fine scavo")) {
|
|
repeatibleForm = true;
|
|
}
|
|
geoNaMainForm.addForm(baseForm, metaDataProfileBean.getType(),repeatibleForm);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onFailure(Throwable caught) {
|
|
}
|
|
});
|
|
//
|
|
RootPanel.get(DIV_PORTLET_ID).add(geoNaMainForm);
|
|
|
|
}
|
|
|
|
private List<MetaDataProfileBean> setGeoNaFormOrder(List<MetaDataProfileBean> listMetadataProfilesForGeona) {
|
|
|
|
mapOrderedGeoNaProfiles.clear();
|
|
|
|
for (MetaDataProfileBean metaDataProfileBean : listMetadataProfilesForGeona) {
|
|
|
|
String theMetaType = metaDataProfileBean.getType().toLowerCase();
|
|
|
|
if(theMetaType.contains("relazione di scavo")) {
|
|
mapOrderedGeoNaProfiles.put(1, metaDataProfileBean);
|
|
}else if(theMetaType.contains("immagin")) {
|
|
mapOrderedGeoNaProfiles.put(2, metaDataProfileBean);
|
|
}else if(theMetaType.contains("posizionamento")) {
|
|
mapOrderedGeoNaProfiles.put(3, metaDataProfileBean);
|
|
}else if(theMetaType.contains("fine scavo")) {
|
|
mapOrderedGeoNaProfiles.put(4, metaDataProfileBean);
|
|
}
|
|
}
|
|
|
|
GWT.log("Map size: "+mapOrderedGeoNaProfiles.size());
|
|
|
|
List<MetaDataProfileBean> orderedList = new ArrayList<MetaDataProfileBean>(mapOrderedGeoNaProfiles.size());
|
|
orderedList.addAll(mapOrderedGeoNaProfiles.values());
|
|
|
|
GWT.log("List ordered size: "+orderedList.size());
|
|
for (MetaDataProfileBean metaDataProfileBean : orderedList) {
|
|
GWT.log("Title: "+metaDataProfileBean.getTitle() + ", type: "+metaDataProfileBean.getType());
|
|
}
|
|
|
|
return orderedList;
|
|
|
|
}
|
|
|
|
}
|