diff --git a/distro/changelog.xml b/distro/changelog.xml
index 422e9f0..e367d07 100644
--- a/distro/changelog.xml
+++ b/distro/changelog.xml
@@ -2,6 +2,7 @@
[Feature #6313] SPD portlet upgrade: porting to spd-client-library 4.0.0
+ [Task #7001] Create Gis Layer via job
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SearchController.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SearchController.java
index a5bc09d..1c2f09a 100644
--- a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SearchController.java
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/SearchController.java
@@ -22,6 +22,8 @@ import org.gcube.portlets.user.speciesdiscovery.client.event.ChangeFilterClassif
import org.gcube.portlets.user.speciesdiscovery.client.event.ChangeFilterClassificationOnResultEventHandler;
import org.gcube.portlets.user.speciesdiscovery.client.event.CompletedLoadDataSourceEvent;
import org.gcube.portlets.user.speciesdiscovery.client.event.CompletedLoadDataSourceEventHandler;
+import org.gcube.portlets.user.speciesdiscovery.client.event.CreateGisLayerJobEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.event.CreateGisLayerJobEventHandler;
import org.gcube.portlets.user.speciesdiscovery.client.event.CreateOccurrenceJobEvent;
import org.gcube.portlets.user.speciesdiscovery.client.event.CreateOccurrenceJobEventHandler;
import org.gcube.portlets.user.speciesdiscovery.client.event.CreateTaxonomyJobEvent;
@@ -77,6 +79,7 @@ import org.gcube.portlets.user.speciesdiscovery.shared.CommonName;
import org.gcube.portlets.user.speciesdiscovery.shared.Coordinate;
import org.gcube.portlets.user.speciesdiscovery.shared.DataSourceModel;
import org.gcube.portlets.user.speciesdiscovery.shared.DownloadState;
+import org.gcube.portlets.user.speciesdiscovery.shared.JobGisLayerModel;
import org.gcube.portlets.user.speciesdiscovery.shared.JobOccurrencesModel;
import org.gcube.portlets.user.speciesdiscovery.shared.JobTaxonomyModel;
import org.gcube.portlets.user.speciesdiscovery.shared.LightTaxonomyRow;
@@ -101,7 +104,6 @@ import com.extjs.gxt.ui.client.event.Listener;
import com.extjs.gxt.ui.client.event.MessageBoxEvent;
import com.extjs.gxt.ui.client.widget.Dialog;
import com.extjs.gxt.ui.client.widget.Info;
-import com.extjs.gxt.ui.client.widget.MessageBox;
import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.Scheduler;
import com.google.gwt.core.client.Scheduler.ScheduledCommand;
@@ -267,6 +269,62 @@ public class SearchController {
}
});
+ eventBus.addHandler(CreateGisLayerJobEvent.TYPE, new CreateGisLayerJobEventHandler() {
+
+ @Override
+ public void onCreateGisLayerJob(CreateGisLayerJobEvent createGisLayerJobEvent) {
+
+ // TODO Auto-generated method stub
+
+ SpeciesDiscovery.taxonomySearchService.createGisLayerJobFromSelectedOccurrenceKeys(createGisLayerJobEvent.getJobName(), createGisLayerJobEvent.getJobDescription(), new AsyncCallback() {
+
+ @Override
+ public void onFailure(Throwable caught) {
+
+ Info.display("Error generating the map", "An error occurred generating the map, retry");
+ Log.error("Error on loading", "An error occurred on edit listner, retry." +caught.getMessage());
+
+ }
+
+ @Override
+ public void onSuccess(JobGisLayerModel jobId) {
+
+ //Info.display("Gis Layer Occurrence Job", result.size() + " occurrence job "+msg+" submitted");
+// progress.close();
+// showMap(layerName);
+ }
+ });
+
+
+// SpeciesDiscovery.taxonomySearchService.createOccurrencesJob(listJobOccurrenceModel, createOccurrenceJobEvent.getFileFormat(), createOccurrenceJobEvent.getSaveEnum(), createOccurrenceJobEvent.isByDataSource(), createOccurrenceJobEvent.getExpectedOccurrences(), new AsyncCallback>() {
+//
+// @Override
+// public void onFailure(Throwable caught) {
+// Info.display("Error", "Sorry, An error occurred on create job. Please try again later");
+// Log.error("Error on loading", "An error occurred on create job, retry." +caught.getMessage());
+//
+// }
+//
+// @Override
+// public void onSuccess(List result) {
+//
+// if(result!=null){
+// int jobs = result.size();
+// if(jobs>0){
+// String msg = jobs==1? "was":"were";
+// Info.display("Species Occurrence Job", result.size() + " occurrence job "+msg+" submitted");
+// excecuteGetJobs(SearchResultType.OCCURRENCE_POINT, false);
+// searchBorderLayoutPanel.getSpeciesSouthPanel().setIconOccurrenceByCounter(result.size());
+// }
+// else{
+// Info.display("Species Occurrence Job","An error occurred on submit job, retry");
+// }
+//
+// }
+// }
+// });
+ }
+ });
eventBus.addHandler(SearchEvent.TYPE, new SearchEventHandler() {
@@ -306,19 +364,8 @@ public class SearchController {
}
if(!createOccurrenceJobEvent.isByDataSource()){ //ONE JOB FOR ALL DATASOURCE
- /*
- String jobName = createOccurrenceJobEvent.getSearchTerm() + " occurrences from";
-
- List dataSourceList = new ArrayList();
-
- for (String dataSource : createOccurrenceJobEvent.getListDataSourceFound()) {
- dataSourceList.add(new org.gcube.portlets.user.speciesdiscovery.shared.DataSource(dataSource,dataSource));
- jobName+=" "+dataSource;
- }
- */
String jobName = createOccurrenceJobEvent.getSearchTerm() + " occurrences";
-
List dataSourceList = new ArrayList();
for (String dataSource : createOccurrenceJobEvent.getListDataSourceFound()) {
@@ -330,17 +377,11 @@ public class SearchController {
}else{ //IS BY DATASOURCE - ONE JOB FOR EACH DATASOURCE
for (String dataSource : createOccurrenceJobEvent.getListDataSourceFound()) {
-
// System.out.println("########DATASOURCE FOUND: "+dataSource);
-
// String jobName = createOccurrenceJobEvent.getSearchTerm() + " occurrences from " +dataSource;
-
String jobName = createOccurrenceJobEvent.getSearchTerm() + " occurrences";
-
List dataSourceList = new ArrayList();
-
dataSourceList.add(new org.gcube.portlets.user.speciesdiscovery.shared.DataSource(dataSource,dataSource));
-
listJobOccurrenceModel.add(new JobOccurrencesModel("", jobName,createOccurrenceJobEvent.getSearchTerm(), dataSourceList, createOccurrenceJobEvent.getFileFormat(), createOccurrenceJobEvent.getSaveEnum(), createOccurrenceJobEvent.isByDataSource()));
}
}
@@ -576,14 +617,9 @@ public class SearchController {
@Override
public void onSuccess(OccurrencesStatus result) {
-
-
MessageDialog dialog;
-
if(event.getExpectedPoints()>result.getSize()){
-
dialog = new MessageDialog("Info", "Loading in progress", "On server are available only "+result.getSize()+" of "+event.getExpectedPoints()+" occurrence points. Do you want continue?");
-
dialog.getMessageBoxConfirm().addCallback(new Listener() {
public void handleEvent(MessageBoxEvent be) {
@@ -618,8 +654,9 @@ public class SearchController {
@Override
public void onShowOccurrencesMap(final ShowOccurrencesMapEvent event) {
-
- SpeciesDiscovery.taxonomySearchService.getCountOfOccurrencesBatch(new AsyncCallback() {
+ /*
+ * Moved INTO GisLayerJob
+ * SpeciesDiscovery.taxonomySearchService.getCountOfOccurrencesBatch(new AsyncCallback() {
@Override
public void onFailure(Throwable caught) {
@@ -629,13 +666,10 @@ public class SearchController {
@Override
public void onSuccess(OccurrencesStatus result) {
-
MessageDialog dialog;
-
if(event.getExpectedPoints()>result.getSize()){
dialog = new MessageDialog("Info", "Loading in progress", "On server are available only "+result.getSize()+" of "+event.getExpectedPoints()+" occurrences points. Do you want continue?");
-
dialog.getMessageBoxConfirm().addCallback(new Listener() {
public void handleEvent(MessageBoxEvent be) {
@@ -652,6 +686,7 @@ public class SearchController {
}
});
+ */
}
});
@@ -1346,30 +1381,30 @@ public class SearchController {
navigator.show();
}
- public void showOccurrencesMap()
- {
- final MessageBox progress = MessageBox.wait("Generating map", "Calculating occurrence points", "generating...");
+ //MOVED
+// public void showOccurrencesMap()
+// {
+// final MessageBox progress = MessageBox.wait("Generating map", "Calculating occurrence points", "generating...");
+//
+// SpeciesDiscovery.taxonomySearchService.generateMapFromSelectedOccurrencePoints(new AsyncCallback() {
+//
+// @Override
+// public void onFailure(Throwable caught) {
+// progress.close();
+// Info.display("Error generating the map", "An error occurred generating the map, retry");
+// Log.error("Error on loading", "An error occurred on edit listner, retry." +caught.getMessage());
+//
+// }
+//
+// @Override
+// public void onSuccess(String layerName) {
+// progress.close();
+// showMap(layerName);
+// }
+// });
+// }
- SpeciesDiscovery.taxonomySearchService.generateMapFromSelectedOccurrencePoints(new AsyncCallback() {
-
- @Override
- public void onFailure(Throwable caught) {
- progress.close();
- Info.display("Error generating the map", "An error occurred generating the map, retry");
- Log.error("Error on loading", "An error occurred on edit listner, retry." +caught.getMessage());
-
- }
-
- @Override
- public void onSuccess(String layerName) {
- progress.close();
- showMap(layerName);
- }
- });
- }
-
- public void showMap(final String layerName)
- {
+ public void showMap(final String layerName){
Log.trace("Obtaining public link for layer : "+layerName);
Info.display("Just moment...", "Generating link to layer");
@@ -1654,7 +1689,6 @@ public class SearchController {
public static void excecuteGetJobs(SearchResultType type, final boolean resetStructures){
-
System.out.println("New rpc get list SpeciesJobs......." + type);
if(type.equals(SearchResultType.TAXONOMY_ITEM)){
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CreateGisLayerJobEvent.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CreateGisLayerJobEvent.java
new file mode 100644
index 0000000..651a5f6
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CreateGisLayerJobEvent.java
@@ -0,0 +1,64 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.GwtEvent;
+
+
+/**
+ * The Class CreateGisLayerJobEvent.
+ *
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ * Feb 9, 2017
+ */
+public class CreateGisLayerJobEvent extends GwtEvent {
+
+ public static final GwtEvent.Type TYPE = new Type();
+ private String jobName;
+
+ /**
+ * @return the jobName
+ */
+ public String getJobName() {
+
+ return jobName;
+ }
+
+
+ /**
+ * @return the jobDescription
+ */
+ public String getJobDescription() {
+
+ return jobDescription;
+ }
+
+ private String jobDescription;
+
+ /**
+ * @param jobName
+ * @param string
+ */
+ public CreateGisLayerJobEvent(String jobName, String descr) {
+
+ this.jobName = jobName;
+ this.jobDescription = descr;
+ }
+
+ /* (non-Javadoc)
+ * @see com.google.gwt.event.shared.GwtEvent#getAssociatedType()
+ */
+ @Override
+ public Type getAssociatedType() {
+ return TYPE;
+ }
+
+ /* (non-Javadoc)
+ * @see com.google.gwt.event.shared.GwtEvent#dispatch(com.google.gwt.event.shared.EventHandler)
+ */
+ @Override
+ protected void dispatch(CreateGisLayerJobEventHandler handler) {
+ handler.onCreateGisLayerJob(this);
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CreateGisLayerJobEventHandler.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CreateGisLayerJobEventHandler.java
new file mode 100644
index 0000000..962f098
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/event/CreateGisLayerJobEventHandler.java
@@ -0,0 +1,25 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.client.event;
+
+import com.google.gwt.event.shared.EventHandler;
+
+
+/**
+ * The Interface CreateGisLayerJobEventHandler.
+ *
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ * Feb 9, 2017
+ */
+public interface CreateGisLayerJobEventHandler extends EventHandler {
+
+ /**
+ * On create gis layer job.
+ *
+ * @param createGisLayerJobEvent the create gis layer job event
+ */
+ public void onCreateGisLayerJob(
+ CreateGisLayerJobEvent createGisLayerJobEvent);
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/gridview/GisLayerJobGridManager.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/gridview/GisLayerJobGridManager.java
new file mode 100644
index 0000000..de90c7b
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/gridview/GisLayerJobGridManager.java
@@ -0,0 +1,82 @@
+package org.gcube.portlets.user.speciesdiscovery.client.gridview;
+
+import org.gcube.portlets.user.speciesdiscovery.client.SpeciesDiscovery;
+import org.gcube.portlets.user.speciesdiscovery.client.event.CreateGisLayerJobEvent;
+import org.gcube.portlets.user.speciesdiscovery.client.window.MessageDialog;
+import org.gcube.portlets.user.speciesdiscovery.shared.OccurrencesStatus;
+import org.gcube.portlets.user.speciesdiscovery.shared.util.NormalizeString;
+
+import com.allen_sauer.gwt.log.client.Log;
+import com.extjs.gxt.ui.client.event.Listener;
+import com.extjs.gxt.ui.client.event.MessageBoxEvent;
+import com.extjs.gxt.ui.client.widget.Dialog;
+import com.google.gwt.event.shared.EventBus;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+
+public class GisLayerJobGridManager {
+
+ private String searchTerm;
+ private EventBus eventBus;
+ private long expectedOccurrences;
+ private boolean isSearchByCommonName;
+ private static final String SCIENTIFIC_NAME = "(scientific name)";
+ private static final String COMMON_NAME = "(common name)";
+
+ public GisLayerJobGridManager(EventBus eventBus, String searchTerm, boolean isSearchByCommonName, long expectedOccurrences) {
+ this.eventBus = eventBus;
+ this.expectedOccurrences = expectedOccurrences;
+ this.searchTerm = searchTerm;
+ this.isSearchByCommonName = isSearchByCommonName;
+ }
+
+ public void saveOccurrence(){
+
+ SpeciesDiscovery.taxonomySearchService.getCountOfOccurrencesBatch(new AsyncCallback() {
+
+ @Override
+ public void onFailure(Throwable caught) {
+ Log.error("Error on loading", "An error occurred on count of occurrence point, retry." +caught.getMessage());
+
+ }
+
+ @Override
+ public void onSuccess(OccurrencesStatus result) {
+ MessageDialog dialog;
+ if(expectedOccurrences>result.getSize()){
+
+ dialog = new MessageDialog("Info", "Loading in progress", "On server are available only "+result.getSize()+" of "+expectedOccurrences+" occurrences points. Do you want continue?");
+ dialog.getMessageBoxConfirm().addCallback(new Listener() {
+
+ public void handleEvent(MessageBoxEvent be) {
+ //IF NOT CANCELLED
+ String clickedButton = be.getButtonClicked().getItemId();
+ if(clickedButton.equals(Dialog.YES))
+ createGisLayerJobEventCallback();
+ }
+ });
+ }
+
+ else
+ createGisLayerJobEventCallback();
+ }
+ });
+
+ }
+
+ private void createGisLayerJobEventCallback() {
+
+ String jobName = getSearchTermBySearchType(isSearchByCommonName, searchTerm);
+ eventBus.fireEvent(new CreateGisLayerJobEvent(jobName, "Gis Layer generated from SPD Portlet by gCube Framework"));
+ }
+
+ public static String getSearchTermBySearchType(boolean isSearchByCommonName, String searchTerm){
+
+ if(isSearchByCommonName)
+ return NormalizeString.lowerCaseUpFirstChar(searchTerm) + " " + COMMON_NAME;
+ else
+ return NormalizeString.lowerCaseUpFirstChar(searchTerm) + " " + SCIENTIFIC_NAME;
+ }
+
+
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/gridview/ResultRowResultsPanel.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/gridview/ResultRowResultsPanel.java
index ae8757b..7008305 100644
--- a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/gridview/ResultRowResultsPanel.java
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/gridview/ResultRowResultsPanel.java
@@ -53,21 +53,21 @@ public class ResultRowResultsPanel extends ContentPanel {
protected final static String TOGGLE_GROUP = "SPECIES_VIEW";
private static ResultRowResultsPanel instance;
-
+
protected SpeciesGrid classicGridView;
-
+
protected DescriptiveSpeciesGrid descriptiveGridView;
public final static AbstractImagePrototype deleteFilterImage = AbstractImagePrototype.create(Resources.INSTANCE.getDelete());
-
+
public final static AbstractImagePrototype imgCheckBoxFull = AbstractImagePrototype.create(Resources.INSTANCE.getCheckBoxFull());
-
+
public final static AbstractImagePrototype imgCheckBoxEmpty = AbstractImagePrototype.create(Resources.INSTANCE.getCheckBoxEmpty());
-
+
public final static AbstractImagePrototype imgCheckSelected = AbstractImagePrototype.create(Resources.INSTANCE.getCheckSelected());
-
+
public final static AbstractImagePrototype imgDetailsWindow = AbstractImagePrototype.create(Resources.INSTANCE.getDetailsWindow());
-
+
protected ContentPanel currentView;
protected ToggleButton classicGridViewButton;
@@ -75,9 +75,9 @@ public class ResultRowResultsPanel extends ContentPanel {
protected ToggleButton descriptiveGridViewButton;
protected Button actionButton;
-
+
protected Button btnSelectAllRow;
-
+
// protected Button btnDeselectAllRow;
protected EventBus eventBus;
@@ -89,11 +89,11 @@ public class ResultRowResultsPanel extends ContentPanel {
private LabelToolItem labelFilterValue;
private Button btnViewDetails;
-
+
private Button btnRemoveFilter;
-
- private ToolBar viewsToolBar = new ToolBar();
-
+
+ private ToolBar viewsToolBar = new ToolBar();
+
private final ToggleButton btnShowOnlySelectedButton;
private ListStore store;
@@ -101,7 +101,7 @@ public class ResultRowResultsPanel extends ContentPanel {
private Button btnDeSelectAllRow;
private SearchController searchController;
-
+
private Button btnShowInGisViewer;
private Button btnOccurrencesMenu;
@@ -109,7 +109,7 @@ public class ResultRowResultsPanel extends ContentPanel {
return instance;
}
-
+
public ResultRowResultsPanel(final EventBus eventBus, StreamPagingLoader loader, SearchController searchController) {
instance=this;
@@ -120,21 +120,21 @@ public class ResultRowResultsPanel extends ContentPanel {
bind(eventBus, loader);
- setFrame(false);
+ setFrame(false);
setCollapsible(false);
- setAnimCollapse(false);
+ setAnimCollapse(false);
setHeaderVisible(false);
setLayout(new AnchorLayout());
- setScrollMode(Scroll.AUTOX);
-
+ setScrollMode(Scroll.AUTOX);
- classicGridView = new SpeciesGrid(loader.getStore(), eventBus);
+
+ classicGridView = new SpeciesGrid(loader.getStore(), eventBus);
// classicGridView.setBodyBorder(false);
-
+
descriptiveGridView = new DescriptiveSpeciesGrid(loader.getStore());
// descriptiveGridView.setBodyBorder(false);
- viewsToolBar = new ToolBar();
+ viewsToolBar = new ToolBar();
classicGridViewButton = new ToggleButton("", AbstractImagePrototype.create(Resources.INSTANCE.getGridSpeciesIcon()));
@@ -159,27 +159,27 @@ public class ResultRowResultsPanel extends ContentPanel {
toggleView(descriptiveGridView);
}
});
-
-
+
+
descriptiveGridViewButton.setAllowDepress(false);
descriptiveGridViewButton.setToolTip(new ToolTipConfig("Expandable List view", "Shows species as a grid letting users to expand interested rows."));
viewsToolBar.add(descriptiveGridViewButton);
-
+
LabelToolItem labelView = new LabelToolItem("Switch view");
viewsToolBar.add(labelView);
actionButton = new Button("Actions");
-
+
viewsToolBar.add(new SeparatorToolItem());
-
- btnShowOnlySelectedButton = new ToggleButton(ONLY_SELECTED);
+
+ btnShowOnlySelectedButton = new ToggleButton(ONLY_SELECTED);
btnShowOnlySelectedButton.setIcon(imgCheckSelected);
btnShowOnlySelectedButton.setScale(ButtonScale.MEDIUM);
btnShowOnlySelectedButton.addSelectionListener(btnOnlySelectedListner);
btnShowOnlySelectedButton.setToolTip(new ToolTipConfig(SHOW_ONLY_SELECTED, SHOWS_ONLY_THE_SELECTED_RESULTS));
viewsToolBar.add(btnShowOnlySelectedButton);
-
+
btnViewDetails = new Button(ConstantsSpeciesDiscovery.VIEWDETAILS);
btnViewDetails.setScale(ButtonScale.MEDIUM);
btnViewDetails.setIcon(imgDetailsWindow);
@@ -188,14 +188,14 @@ public class ResultRowResultsPanel extends ContentPanel {
@Override
public void componentSelected(ButtonEvent ce) {
eventBus.fireEvent(new ViewDetailsOfSelectedEvent());
-
+
}
-
+
});
-
+
viewsToolBar.add(new SeparatorToolItem());
viewsToolBar.add(btnViewDetails);
-
+
btnSelectAllRow = new Button(ConstantsSpeciesDiscovery.SELECTALL);
btnSelectAllRow.setIcon(imgCheckBoxFull);
btnSelectAllRow.setScale(ButtonScale.MEDIUM);
@@ -203,7 +203,7 @@ public class ResultRowResultsPanel extends ContentPanel {
@Override
public void componentSelected(ButtonEvent ce) {
-
+
// if(btnToggleSelectAllRow.isPressed()){
// btnToggleSelectAllRow.setText(ConstantsSpeciesDiscovery.DESELECTALL);
// btnToggleSelectAllRow.setIcon(imgCheckBoxEmpty);
@@ -213,16 +213,16 @@ public class ResultRowResultsPanel extends ContentPanel {
// btnToggleSelectAllRow.setIcon(imgCheckBoxFull);
// eventBus.fireEvent(new UpdateAllRowSelectionEvent(false, SearchResultType.SPECIES_PRODUCT));
// }
-
+
eventBus.fireEvent(new UpdateAllRowSelectionEvent(true, SearchResultType.SPECIES_PRODUCT));
}
-
+
});
-
+
viewsToolBar.add(new SeparatorToolItem());
viewsToolBar.add(btnSelectAllRow);
-
-
+
+
btnDeSelectAllRow = new Button(ConstantsSpeciesDiscovery.DESELECTALL);
btnDeSelectAllRow.setIcon(imgCheckBoxEmpty);
btnDeSelectAllRow.setScale(ButtonScale.MEDIUM);
@@ -232,20 +232,20 @@ public class ResultRowResultsPanel extends ContentPanel {
public void componentSelected(ButtonEvent ce) {
eventBus.fireEvent(new UpdateAllRowSelectionEvent(false, SearchResultType.SPECIES_PRODUCT));
}
-
+
});
-
+
viewsToolBar.add(new SeparatorToolItem());
viewsToolBar.add(btnDeSelectAllRow);
-
+
viewsToolBar.add(new SeparatorToolItem());
addButtonsOccurrencesJob();
-
+
viewsToolBar.add(new FillToolItem());
-
+
labelFilter = new LabelToolItem(ConstantsSpeciesDiscovery.FILTER);
viewsToolBar.add(labelFilter);
-
+
labelFilterValue = new LabelToolItem(ConstantsSpeciesDiscovery.NONE);
viewsToolBar.add(labelFilterValue);
@@ -253,19 +253,19 @@ public class ResultRowResultsPanel extends ContentPanel {
btnRemoveFilter.setIcon(deleteFilterImage);
btnRemoveFilter.getElement().getStyle().setLeft(5, Unit.PX);
btnRemoveFilter.setVisible(false);
-
-
+
+
btnRemoveFilter.addSelectionListener(new SelectionListener() {
@Override
public void componentSelected(ButtonEvent ce) {
eventBus.fireEvent(new DisableFilterEvent());
-
+
}
});
-
+
btnRemoveFilter.setToolTip(ConstantsSpeciesDiscovery.REMOVEFILTERTOOLTIP);
-
+
viewsToolBar.add(btnRemoveFilter);
setTopComponent(viewsToolBar);
@@ -275,20 +275,20 @@ public class ResultRowResultsPanel extends ContentPanel {
pageToolBar.bind(loader);
setBottomComponent(pageToolBar);
-
+
add(classicGridView, new AnchorData("100% 100%"));
add(descriptiveGridView, new AnchorData("100% 100%"));
activeToolBarButtons(false); //DEFAULT DISABLE BUTTONS
btnSelectAllRow.setEnabled(false);
btnDeSelectAllRow.setEnabled(false);
-
- toggleView(classicGridView);
-
-
+ toggleView(classicGridView);
+
+
+
}
-
+
public void activeToolBarButtons(boolean bool){
btnShowOnlySelectedButton.setEnabled(bool);
btnViewDetails.setEnabled(bool);
@@ -296,25 +296,25 @@ public class ResultRowResultsPanel extends ContentPanel {
btnOccurrencesMenu.setEnabled(bool);
}
-
+
public void resetFilter (){
labelFilter.setLabel(ConstantsSpeciesDiscovery.FILTER);
labelFilterValue.setLabel(ConstantsSpeciesDiscovery.NONE);
btnRemoveFilter.setVisible(false);
classicGridView.setBodyStyleAsFiltered(false);
-
+
pageToolBar.reset(); //ADDED 03/08/2012
}
public void setFilterActive(boolean isActive, String label){
-
+
if(isActive){
labelFilterValue.setLabel(label);
btnRemoveFilter.setVisible(true);
classicGridView.setBodyStyleAsFiltered(true);
}
else
- resetFilter();
+ resetFilter();
}
protected void bind(EventBus eventBus, StreamPagingLoader loader)
@@ -339,16 +339,16 @@ public class ResultRowResultsPanel extends ContentPanel {
if (view.equals(descriptiveGridView)) {
descriptiveGridViewButton.toggle(true);
- descriptiveGridView.show();
+ descriptiveGridView.show();
actionButton.setEnabled(true);
} else {
- descriptiveGridViewButton.toggle(false);
+ descriptiveGridViewButton.toggle(false);
descriptiveGridView.hide();
}
currentView = view;
- instance.unmask();
-
+ instance.unmask();
+
}
@@ -361,19 +361,19 @@ public class ResultRowResultsPanel extends ContentPanel {
}
public void reload() {
-// if (currentView!=null)
+// if (currentView!=null)
// this.gridViewManager.reload();
}
public void activeBtnShowOnlySelected(boolean bool) {
-
+
this.btnShowOnlySelectedButton.removeSelectionListener(btnOnlySelectedListner);
this.btnShowOnlySelectedButton.toggle(bool);
this.btnShowOnlySelectedButton.addSelectionListener(btnOnlySelectedListner);
-
+
}
-
+
private SelectionListener< ButtonEvent> btnOnlySelectedListner = new SelectionListener() {
@Override
public void componentSelected(ButtonEvent ce) {
@@ -396,7 +396,7 @@ public class ResultRowResultsPanel extends ContentPanel {
classicGridView.selectAll();
else
classicGridView.deselectAll();
-
+
}
public void activeCheckAllRows(boolean active) {
@@ -406,45 +406,11 @@ public class ResultRowResultsPanel extends ContentPanel {
public void addButtonsOccurrencesJob(){
-// btnShowInGisViewer = new Button(ConstantsSpeciesDiscovery.SHOW_IN_GIS_VIEWER);
-// btnShowInGisViewer.setIcon(AbstractImagePrototype.create(Resources.INSTANCE.getGisProducts()));
-// btnShowInGisViewer.setToolTip(new ToolTipConfig(ConstantsSpeciesDiscovery.SHOW_IN_GIS_VIEWER, "Show occurences points from selected results in a Gis Viewer Map."));
-// btnShowInGisViewer.setScale(ButtonScale.SMALL);
-//// btnShowInGisViewer.setIconAlign(IconAlign.TOP);
-// btnShowInGisViewer.setArrowAlign(ButtonArrowAlign.BOTTOM);
-// btnShowInGisViewer.addSelectionListener(new SelectionListener() {
-//
-// @Override
-// public void componentSelected(ButtonEvent ce) {
-//
-// SpeciesDiscovery.taxonomySearchService.retrieveOccurencesFromSelection(new AsyncCallback() {
-//
-// @Override
-// public void onSuccess(Integer points) {
-// Log.trace("Expected points: "+points);
-//
-// int expectedPoints = points.intValue();
-//
-// if(expectedPoints>0)
-// eventBus.fireEvent(new ShowOccurrencesMapEvent(expectedPoints));
-// }
-//
-// @Override
-// public void onFailure(Throwable caught) {
-// Info.display("Error getting occurrences", "Error getting occurrences, retry");
-// Log.trace("Error getting occurrences", caught);
-// }
-// });
-//
-//
-// }
-// });
-
- btnOccurrencesMenu = new Button(ConstantsSpeciesDiscovery.SAVE_OCCURRENCES);
+ btnOccurrencesMenu = new Button(ConstantsSpeciesDiscovery.SAVE_OCCURRENCES);
Menu formatSubMenu = new Menu();
- btnOccurrencesMenu.setMenu(formatSubMenu);
- btnOccurrencesMenu.setScale(ButtonScale.MEDIUM);
-// btnOccurrencesMenu.setIconAlign(IconAlign.TOP);
+ btnOccurrencesMenu.setMenu(formatSubMenu);
+ btnOccurrencesMenu.setScale(ButtonScale.MEDIUM);
+// btnOccurrencesMenu.setIconAlign(IconAlign.TOP);
btnOccurrencesMenu.setIcon(AbstractImagePrototype.create(Resources.INSTANCE.getSaveProducts24()));
btnOccurrencesMenu.setToolTip(new ToolTipConfig(ConstantsSpeciesDiscovery.SAVE_OCCURRENCES, ConstantsSpeciesDiscovery.SAVE_OCCURENCES_POINTS_FROM_SELECTED_RESULTS));
@@ -456,88 +422,69 @@ public class ResultRowResultsPanel extends ContentPanel {
public void componentSelected(MenuEvent ce) {
OccurrenceJobGridManager occurrenceJobMng = new OccurrenceJobGridManager(eventBus,SaveFileFormat.CSV, OccurrencesSaveEnum.STANDARD,searchController.getLastSearchEvent().getSearchTerm(), false, isSearchByCommonName());
-
occurrenceJobMng.saveOccurrence();
}
});
-
-
+
+
formatSubMenu.add(csvFormatItem);
-
- Menu csvTypeMenu = new Menu();
-
+ Menu csvTypeMenu = new Menu();
MenuItem csvStandard = new MenuItem(ConstantsSpeciesDiscovery.PLAIN_CSV);
-
csvStandard.addSelectionListener(new SelectionListener() {
@Override
public void componentSelected(MenuEvent ce) {
-
OccurrenceJobGridManager occurrenceJobMng = new OccurrenceJobGridManager(eventBus,SaveFileFormat.CSV, OccurrencesSaveEnum.STANDARD,searchController.getLastSearchEvent().getSearchTerm(), false, isSearchByCommonName());
-
- occurrenceJobMng.saveOccurrence();
-
+ occurrenceJobMng.saveOccurrence();
}
});
-
-
+
+
MenuItem csvStandardByDataSource = new MenuItem(ConstantsSpeciesDiscovery.PLAIN_CSV_BY_DATA_SOURCE);
-
csvStandardByDataSource.addSelectionListener(new SelectionListener() {
@Override
public void componentSelected(MenuEvent ce) {
OccurrenceJobGridManager occurrenceJobMng = new OccurrenceJobGridManager(eventBus,SaveFileFormat.CSV, OccurrencesSaveEnum.STANDARD,searchController.getLastSearchEvent().getSearchTerm(), true, isSearchByCommonName());
-
occurrenceJobMng.saveOccurrence();
}
});
-
-
+
+
MenuItem csvOpenModeller = new MenuItem(ConstantsSpeciesDiscovery.OPEN_MODELLER);
-
csvOpenModeller.addSelectionListener(new SelectionListener() {
@Override
public void componentSelected(MenuEvent ce) {
OccurrenceJobGridManager occurrenceJobMng = new OccurrenceJobGridManager(eventBus,SaveFileFormat.CSV, OccurrencesSaveEnum.OPENMODELLER,searchController.getLastSearchEvent().getSearchTerm(), false, isSearchByCommonName());
-
occurrenceJobMng.saveOccurrence();
-
+
}
});
-
-
+
+
MenuItem csvOpenModellerByDataSource = new MenuItem(ConstantsSpeciesDiscovery.OPEN_MODELLER_BY_DATA_SOURCE);
-
csvOpenModellerByDataSource.addSelectionListener(new SelectionListener() {
@Override
public void componentSelected(MenuEvent ce) {
-
-
OccurrenceJobGridManager occurrenceJobMng = new OccurrenceJobGridManager(eventBus,SaveFileFormat.CSV, OccurrencesSaveEnum.OPENMODELLER,searchController.getLastSearchEvent().getSearchTerm(), true, isSearchByCommonName());
-
- occurrenceJobMng.saveOccurrence();
-
+ occurrenceJobMng.saveOccurrence();
+
}
});
-
- csvTypeMenu.add(csvStandard);
-
+
+ csvTypeMenu.add(csvStandard);
csvTypeMenu.add(csvStandardByDataSource);
-
- csvTypeMenu.add(csvOpenModeller);
-
+ csvTypeMenu.add(csvOpenModeller);
csvTypeMenu.add(csvOpenModellerByDataSource);
-
- csvFormatItem.setSubMenu(csvTypeMenu);
-
+ csvFormatItem.setSubMenu(csvTypeMenu);
+
MenuItem darwinCoreFormatItem = new MenuItem(ConstantsSpeciesDiscovery.DARWIN_CORE);
darwinCoreFormatItem.setToolTip(new ToolTipConfig(ConstantsSpeciesDiscovery.SAVES_IN_DARWIN_CORE_FILE_FORMAT));
darwinCoreFormatItem.addSelectionListener(new SelectionListener() {
@@ -546,24 +493,21 @@ public class ResultRowResultsPanel extends ContentPanel {
public void componentSelected(MenuEvent ce) {
OccurrenceJobGridManager occurrenceJobMng = new OccurrenceJobGridManager(eventBus,SaveFileFormat.DARWIN_CORE, null,searchController.getLastSearchEvent().getSearchTerm(), false, isSearchByCommonName());
-
occurrenceJobMng.saveOccurrence();
-
+
}
});
+
formatSubMenu.add(darwinCoreFormatItem);
-
viewsToolBar.add(btnOccurrencesMenu);
-// viewsToolBar.add(new SeparatorToolItem());
-// viewsToolBar.add(btnShowInGisViewer);
}
protected boolean isSearchByCommonName() {
-
+
if(searchController.getLastSearchEvent().getType().equals(SearchType.BY_COMMON_NAME))
return true;
-
+
return false;
}
}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/rpc/TaxonomySearchService.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/rpc/TaxonomySearchService.java
index dae2485..f490122 100644
--- a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/rpc/TaxonomySearchService.java
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/rpc/TaxonomySearchService.java
@@ -10,6 +10,7 @@ import org.gcube.portlets.user.speciesdiscovery.shared.CommonName;
import org.gcube.portlets.user.speciesdiscovery.shared.DataSource;
import org.gcube.portlets.user.speciesdiscovery.shared.DataSourceModel;
import org.gcube.portlets.user.speciesdiscovery.shared.DownloadState;
+import org.gcube.portlets.user.speciesdiscovery.shared.JobGisLayerModel;
import org.gcube.portlets.user.speciesdiscovery.shared.JobOccurrencesModel;
import org.gcube.portlets.user.speciesdiscovery.shared.JobTaxonomyModel;
import org.gcube.portlets.user.speciesdiscovery.shared.LightTaxonomyRow;
@@ -65,8 +66,8 @@ public interface TaxonomySearchService extends RemoteService {
public void stopRetrievingOccurrences() throws SearchServiceException;
- public String generateMapFromSelectedOccurrencePoints()
- throws SearchServiceException;
+ JobGisLayerModel createGisLayerJobFromSelectedOccurrenceKeys(
+ String layerTitle, String layerDescr) throws Exception;
// Added by Francesco M.
public void saveSelectedOccurrencePoints(String destinationFolderId,
@@ -138,23 +139,23 @@ public interface TaxonomySearchService extends RemoteService {
public JobTaxonomyModel resubmitTaxonomyJob(String jobIdentifier)
throws Exception;
-
+
public ClusterStructuresForResultRow loadStructuresForResultRowClustering() throws Exception;
public ClusterStructuresForTaxonomyRow loadStructuresForTaxonomyClustering()
throws Exception;
-
+
public boolean changeStatusOccurrenceJob(String jobIdentifier, DownloadState state) throws Exception;
-
+
public boolean changeStatusTaxonomyJob(String jobIdentifier, DownloadState state) throws Exception;
-
-
+
+
public List loadDataSourceForResultRow(boolean selected, boolean distinct) throws Exception;
public JobTaxonomyModel createTaxonomyJobByIds(String search,
List dataSources) throws Exception;
-
+
public JobTaxonomyModel createTaxonomyJobByChildren(String taxonomyServiceId,
String taxonomyName, String taxonomyRank, String dataSourceName)
throws Exception;
@@ -173,7 +174,7 @@ public interface TaxonomySearchService extends RemoteService {
String dataSourceName) throws Exception;
boolean isAvailableTaxonomyJobReportError(String jobIdentifier) throws Exception;
-
+
/**
* @param jobModel
* @param destinationFolderId
@@ -204,5 +205,5 @@ public interface TaxonomySearchService extends RemoteService {
ClusterCommonNameDataSourceForTaxonomyRow loadClusterCommonNameForTaxonomyRowByScientificName(
String scientificName);
-
+
}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/rpc/TaxonomySearchServiceAsync.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/rpc/TaxonomySearchServiceAsync.java
index 520020b..1cfcc4e 100644
--- a/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/rpc/TaxonomySearchServiceAsync.java
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/client/rpc/TaxonomySearchServiceAsync.java
@@ -10,6 +10,7 @@ import org.gcube.portlets.user.speciesdiscovery.shared.CommonName;
import org.gcube.portlets.user.speciesdiscovery.shared.DataSource;
import org.gcube.portlets.user.speciesdiscovery.shared.DataSourceModel;
import org.gcube.portlets.user.speciesdiscovery.shared.DownloadState;
+import org.gcube.portlets.user.speciesdiscovery.shared.JobGisLayerModel;
import org.gcube.portlets.user.speciesdiscovery.shared.JobOccurrencesModel;
import org.gcube.portlets.user.speciesdiscovery.shared.JobTaxonomyModel;
import org.gcube.portlets.user.speciesdiscovery.shared.LightTaxonomyRow;
@@ -38,37 +39,37 @@ import com.google.gwt.user.client.rpc.AsyncCallback;
public interface TaxonomySearchServiceAsync {
public void searchByScientificName(String searchTerm, SearchFilters searchFilters, AsyncCallback callback);
-
+
public void searchByCommonName(String searchTerm, SearchFilters searchFilters, AsyncCallback callback);
-
+
void getSearchStatus(boolean onlySelected, boolean isActiveFilterOnResult,
AsyncCallback callback);
// void getSearchStatus(boolean onlySelected, AsyncCallback callback);
-
+
public void stopSearch(AsyncCallback callback);
-
+
public void updateRowSelection(int rowId, boolean selection, AsyncCallback callback);
public void retrieveOccurencesFromSelection(AsyncCallback callback);
-
+
void getOccurrencesBatch(int start, int count, AsyncCallback callback);
public void stopRetrievingOccurrences(AsyncCallback callback);
- public void generateMapFromSelectedOccurrencePoints(AsyncCallback callback);
+ void createGisLayerJobFromSelectedOccurrenceKeys(
+ String layerTitle, String layerDescr,
+ AsyncCallback callback);
- //Added by Francesco M.
-
void saveSelectedOccurrencePoints(String destinationFolderId, String fileName, SaveFileFormat fileFormat, OccurrencesSaveEnum typeCSV, AsyncCallback callback);
void updateRowSelections(boolean selection,
ResultFilter activeFiltersObject, AsyncCallback callback);
-
+
void loadDataSourceList(AsyncCallback> callback);
void getFilterCounterById(GridField field, AsyncCallback> callback);
-
+
void getParentsList(Taxon taxon, AsyncCallback> callback);
void getFilterCounterForClassification(String rank, AsyncCallback> callback);
@@ -163,9 +164,9 @@ public interface TaxonomySearchServiceAsync {
void loadClusterCommonNameForResultRowByScientificName(
String scientificName,
AsyncCallback callback);
-
+
void loadClusterCommonNameForTaxonomyRowByScientificName(
String scientificName,
AsyncCallback callback);
-
+
}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/server/TaxonomySearchServiceImpl.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/server/TaxonomySearchServiceImpl.java
index bbfed76..75ffc45 100644
--- a/src/main/java/org/gcube/portlets/user/speciesdiscovery/server/TaxonomySearchServiceImpl.java
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/server/TaxonomySearchServiceImpl.java
@@ -37,10 +37,12 @@ import org.gcube.portlets.user.speciesdiscovery.client.model.ClassificationModel
import org.gcube.portlets.user.speciesdiscovery.client.rpc.TaxonomySearchService;
import org.gcube.portlets.user.speciesdiscovery.client.util.GridField;
import org.gcube.portlets.user.speciesdiscovery.server.asl.SessionUtil;
+import org.gcube.portlets.user.speciesdiscovery.server.job.GisLinkJobUtil;
import org.gcube.portlets.user.speciesdiscovery.server.job.OccurrenceJobUtil;
import org.gcube.portlets.user.speciesdiscovery.server.job.OccurrenceKeys;
import org.gcube.portlets.user.speciesdiscovery.server.job.TaxonomyJobUtil;
import org.gcube.portlets.user.speciesdiscovery.server.persistence.DaoSession;
+import org.gcube.portlets.user.speciesdiscovery.server.persistence.dao.GisLayerJobPersistence;
import org.gcube.portlets.user.speciesdiscovery.server.persistence.dao.OccurrenceJobPersistence;
import org.gcube.portlets.user.speciesdiscovery.server.persistence.dao.OccurrenceRowPersistence;
import org.gcube.portlets.user.speciesdiscovery.server.persistence.dao.ResultRowPersistence;
@@ -56,7 +58,6 @@ import org.gcube.portlets.user.speciesdiscovery.server.session.FilterableFetchin
import org.gcube.portlets.user.speciesdiscovery.server.session.SelectableFetchingBuffer;
import org.gcube.portlets.user.speciesdiscovery.server.stream.CSVGenerator;
import org.gcube.portlets.user.speciesdiscovery.server.stream.CloseableIterator;
-import org.gcube.portlets.user.speciesdiscovery.server.stream.IteratorPointInfo;
import org.gcube.portlets.user.speciesdiscovery.server.stream.OccurenceCSVConverter;
import org.gcube.portlets.user.speciesdiscovery.server.stream.OccurenceCSVConverterOpenModeller;
import org.gcube.portlets.user.speciesdiscovery.server.stream.aggregation.FieldAggregator;
@@ -71,6 +72,7 @@ import org.gcube.portlets.user.speciesdiscovery.shared.DatabaseServiceException;
import org.gcube.portlets.user.speciesdiscovery.shared.DownloadState;
import org.gcube.portlets.user.speciesdiscovery.shared.FetchingElement;
import org.gcube.portlets.user.speciesdiscovery.shared.ItemParameter;
+import org.gcube.portlets.user.speciesdiscovery.shared.JobGisLayerModel;
import org.gcube.portlets.user.speciesdiscovery.shared.JobOccurrencesModel;
import org.gcube.portlets.user.speciesdiscovery.shared.JobTaxonomyModel;
import org.gcube.portlets.user.speciesdiscovery.shared.LightTaxonomyRow;
@@ -847,11 +849,26 @@ public class TaxonomySearchServiceImpl extends RemoteServiceServlet implements T
* {@inheritDoc}
*/
@Override
- public String generateMapFromSelectedOccurrencePoints() throws SearchServiceException {
+ public JobGisLayerModel createGisLayerJobFromSelectedOccurrenceKeys(String layerTitle, String layerDescr) throws Exception {
+ try {
- logger.info("generate Map From Occurrence Points");
+ List occurrenceKeys = getSelectedOccurrenceKeys();
+ SpeciesService taxonomyService = getSpeciesService();
+ String author = getASLSession().getUsername();
+ String credits = "";
+ GisLayerJobPersistence gisLayerJob = DaoSession.getGisLayersJobDAO(getASLSession());
+ GisLinkJobUtil.createGisLayerJobByOccurrenceKeys(occurrenceKeys, taxonomyService, layerTitle, layerDescr, author, credits, gisLayerJob);
+ logger.trace("Generating Map form Occurrence Keys selected: "+occurrenceKeys.size());
+ String jobId = taxonomyService.generateMapFromOccurrenceKeys(occurrenceKeys,layerTitle,layerDescr,author,credits);
+ logger.info("generated gis layer jobID: "+jobId);
+ return new JobGisLayerModel(jobId, layerTitle, 0, Calendar.getInstance().getTimeInMillis(), 0, layerDescr, DownloadState.PENDING.toString());
+ } catch (Exception e) {
+ logger.error("An error occurred creating the map", e);
+ throw new Exception(e.getMessage());
+ }
- Iterator iteratorOccurrences = getIteratorSelectedOccurrenceIds();
+
+ /*Iterator iteratorOccurrences = getIteratorSelectedOccurrenceIds();
IteratorPointInfo streamKey = new IteratorPointInfo(iteratorOccurrences);
try {
@@ -862,7 +879,7 @@ public class TaxonomySearchServiceImpl extends RemoteServiceServlet implements T
} catch (Exception e) {
logger.error("An error occurred creating the map", e);
throw new SearchServiceException(e.getMessage());
- }
+ }*/
}
//USED FOR DEBUG
@@ -1670,7 +1687,7 @@ public class TaxonomySearchServiceImpl extends RemoteServiceServlet implements T
}
else{
logger.info("statusResponse of occurrence job is null..." + job.getId());
- logger.info("delete job ..." + job.getId());
+ logger.info("deleting job ..." + job.getId());
OccurrenceJobUtil.deleteOccurrenceJobById(job.getId(),occurrencesJobDao);
}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/server/asl/SessionUtil.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/server/asl/SessionUtil.java
index b0cd235..4dee867 100644
--- a/src/main/java/org/gcube/portlets/user/speciesdiscovery/server/asl/SessionUtil.java
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/server/asl/SessionUtil.java
@@ -12,6 +12,7 @@ import javax.servlet.http.HttpSession;
import org.apache.log4j.Logger;
import org.gcube.application.framework.core.session.ASLSession;
import org.gcube.application.framework.core.session.SessionManager;
+import org.gcube.portlets.user.speciesdiscovery.server.persistence.dao.GisLayerJobPersistence;
import org.gcube.portlets.user.speciesdiscovery.server.persistence.dao.OccurrenceJobPersistence;
import org.gcube.portlets.user.speciesdiscovery.server.persistence.dao.OccurrenceRowPersistence;
import org.gcube.portlets.user.speciesdiscovery.server.persistence.dao.ResultRowPersistence;
@@ -45,6 +46,7 @@ public class SessionUtil {
public static final String EJB_TAXONOMY = "EJB_TAXONOMY";
public static final String EJB_OCCURRENCES_JOB = "EJB_OCCURRENCES_JOB";
public static final String EJB_TAXONOMY_JOB = "EJB_TAXONOMY_JOB";
+ public static final String EJB_GIS_LAYER_JOB = "EJB_GIS_LAYER_JOB";
public static final String CURRENT_SPD_QUERY = "CURRENT_SPD_QUERY";
private static final String CLUSTER_COMMONNAME_FOR_RESULTROW = "CLUSTER_COMMONNAME_FOR_RESULTROW";
private static final String CLUSTER_COMMONNAME_FOR_TAXONOMYROW = "CLUSTER_COMMONNAME_FOR_TAXONOMYROW";
@@ -171,6 +173,22 @@ public class SessionUtil {
session.setAttribute(EJB_TAXONOMY_JOB, taxonomyJobPeristence);
}
+ /**
+ * @param session
+ * @param gisLayerJobDao
+ */
+ public static void setCurrentEJBGisLayerJob(ASLSession session, GisLayerJobPersistence gisLayerJobDao) {
+ session.setAttribute(EJB_GIS_LAYER_JOB, gisLayerJobDao);
+ }
+
+ /**
+ * @param session
+ * @return
+ */
+ public static GisLayerJobPersistence getCurrentGisLayersJob( ASLSession session) {
+ return (GisLayerJobPersistence) session.getAttribute(EJB_GIS_LAYER_JOB);
+ }
+
/**
* @param aslSession
* @param lastQuery
@@ -279,4 +297,8 @@ public class SessionUtil {
session.setAttribute(CACHE_HASH_MAP_TAXONOMYID_TAXONOMY, list);
}
+
+
+
+
}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/server/job/GisLinkJobUtil.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/server/job/GisLinkJobUtil.java
new file mode 100644
index 0000000..00dee69
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/server/job/GisLinkJobUtil.java
@@ -0,0 +1,57 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.speciesdiscovery.server.job;
+
+import java.util.Calendar;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.gcube.portlets.user.speciesdiscovery.server.persistence.dao.GisLayerJobPersistence;
+import org.gcube.portlets.user.speciesdiscovery.server.service.SpeciesService;
+import org.gcube.portlets.user.speciesdiscovery.shared.DownloadState;
+import org.gcube.portlets.user.speciesdiscovery.shared.GisLayerJob;
+import org.gcube.portlets.user.speciesdiscovery.shared.JobGisLayerModel;
+
+
+/**
+ * The Class GisLinkJobUtil.
+ *
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ * Feb 9, 2017
+ */
+public class GisLinkJobUtil {
+
+ protected static Logger logger = Logger.getLogger(GisLinkJobUtil.class);
+
+
+ /**
+ * Creates the gis layer job by occurrence keys.
+ *
+ * @param occurrenceKeys the occurrence keys
+ * @param taxonomyService the taxonomy service
+ * @param layerTitle the layer title
+ * @param layerDescr the layer descr
+ * @param author the author
+ * @param credits the credits
+ * @param gisLayerJob the gis layer job
+ * @return the job gis layer model
+ * @throws Exception the exception
+ */
+ public static JobGisLayerModel createGisLayerJobByOccurrenceKeys(List occurrenceKeys, SpeciesService taxonomyService, String layerTitle, String layerDescr, String author, String credits, GisLayerJobPersistence gisLayerJob) throws Exception {
+
+ try {
+ logger.trace("Generating Map form Occurrence Keys selected: "+occurrenceKeys.size());
+ String jobId = taxonomyService.generateMapFromOccurrenceKeys(occurrenceKeys,layerTitle,layerDescr,author,credits);
+ logger.info("generated gis layer jobID: "+jobId);
+ GisLayerJob gisLJ = new GisLayerJob(jobId, layerTitle, 0, Calendar.getInstance().getTimeInMillis(), 0, layerDescr, DownloadState.PENDING.toString());
+ gisLayerJob.insert(gisLJ);
+
+ return new JobGisLayerModel(jobId, layerTitle, 0, Calendar.getInstance().getTimeInMillis(), 0, layerDescr, DownloadState.PENDING.toString());
+ } catch (Exception e) {
+ logger.error("An error occurred creating the map", e);
+ throw new Exception(e.getMessage());
+ }
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/speciesdiscovery/server/job/OccurrenceJobUtil.java b/src/main/java/org/gcube/portlets/user/speciesdiscovery/server/job/OccurrenceJobUtil.java
index 82d4f73..41da4b3 100644
--- a/src/main/java/org/gcube/portlets/user/speciesdiscovery/server/job/OccurrenceJobUtil.java
+++ b/src/main/java/org/gcube/portlets/user/speciesdiscovery/server/job/OccurrenceJobUtil.java
@@ -128,7 +128,6 @@ public class OccurrenceJobUtil {
}
}
-
boolean changeStartTime = false;
//SET START TIME
@@ -140,7 +139,6 @@ public class OccurrenceJobUtil {
changeStartTime = true;
}
-
//UPDATE DAO
if(changeStatus || changeEndTime || changeStartTime){
job.setState(downloadState.toString());
@@ -168,7 +166,6 @@ public class OccurrenceJobUtil {
//SET ELAPSED TIME
jobOccurrenceModel.setElapsedTime(DateUtil.getDifference(submitTime, elapsedTime));
-
//OTHERS SET
jobOccurrenceModel.setFileFormat(converFileFormat(job.getFileFormat()));
jobOccurrenceModel.setCsvType(convertCsvType(job.getCsvType()));
@@ -277,9 +274,7 @@ public class OccurrenceJobUtil {
public static int changeStatusOccurrenceJobById(String jobIdentifier, DownloadState state, OccurrenceJobPersistence occurrencesJobDao){
logger.trace("Change status occurrence job id: " + jobIdentifier);
// System.out.println("Delete job id: " + jobIdentifier);
-
int result = 0;
-
try{
CriteriaBuilder queryBuilder = occurrencesJobDao.getCriteriaBuilder();
@@ -288,16 +283,13 @@ public class OccurrenceJobUtil {
cq.where(pr1);
Iterator iterator = occurrencesJobDao.executeCriteriaQuery(cq).iterator();
-
OccurrencesJob job;
-
if(iterator.hasNext())
job = iterator.next();
else
return 0;
job.setState(state.toString());
-
occurrencesJobDao.update(job);
}catch (Exception e) {
@@ -319,11 +311,8 @@ public class OccurrenceJobUtil {
Collection selectedRows = ((SelectableFetchingBuffer) searchSession.getBuffer()).getSelected();
logger.trace("found "+selectedRows.size()+" selected rows");
-
int count = 0;
-
List keys = new ArrayList(selectedRows.size());
-
for (ResultRow row:selectedRows) {
//ADD KEY ONLY IF IS NOT EQUAL NULL AND SIZE IS > 0
if(row.getOccurencesKey()!=null && row.getOccurencesKey().length()>0){
@@ -333,7 +322,6 @@ public class OccurrenceJobUtil {
}
logger.trace("found "+count+" occurrence points");
-
return keys;
}
@@ -350,41 +338,25 @@ public class OccurrenceJobUtil {
logger.trace("getListOfSelectedKeyByDataSource...");
OccurrenceKeys occurrenceKeys = new OccurrenceKeys();
-
List keys = new ArrayList();
-
Iterator resulRowIt = null;
-
int count = 0;
try{
-
// System.out.println("dasource name: "+dataSource);
logger.trace("datasource name: "+dataSource);
-
ResultRowPersistence resultRowDao = DaoSession.getResultRowDAO(session);
-
/*CriteriaBuilder cb = resultRowDao.getCriteriaBuilder();
-
CriteriaQuery