Tested the file uploading integration
This commit is contained in:
parent
375abecc66
commit
dee4709750
|
@ -1,37 +1,46 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-module deploy-name="metadata-profile-form-builder-widget-0.1.0-SNAPSHOT">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<property name="context-root" value="metadata-profile-form-builder-widget"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<property name="java-output-path" value="/metadata-profile-form-builder-widget/target/classes"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</wb-module>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</project-modules>
|
||||
|
|
|
@ -32,7 +32,7 @@ public class MetadataProfileFormBuilder implements EntryPoint {
|
|||
|
||||
|
||||
String scope = "/gcube/devsec/devVRE";
|
||||
String secondaryType= "DataCatalogueMetadata";
|
||||
String secondaryType= "GeoNaMetadata";
|
||||
HandlerManager eventBus = new HandlerManager(null);
|
||||
CreateMetadataForm baseForm = new CreateMetadataForm(scope, secondaryType,eventBus);
|
||||
RootPanel.get(DIV_PORTLET_ID).add(baseForm);
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
xmlns:b="urn:import:com.github.gwtbootstrap.client.ui">
|
||||
<ui:style>
|
||||
.margin-left-max-occurrs {
|
||||
padding-left: 50px;
|
||||
padding-left: 1px;
|
||||
}
|
||||
</ui:style>
|
||||
<g:HTMLPanel>
|
||||
|
|
|
@ -36,9 +36,13 @@ import com.github.gwtbootstrap.client.ui.Popover;
|
|||
import com.github.gwtbootstrap.client.ui.TabPanel;
|
||||
import com.github.gwtbootstrap.client.ui.constants.AlertType;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.core.client.Scheduler;
|
||||
import com.google.gwt.core.client.Scheduler.ScheduledCommand;
|
||||
import com.google.gwt.dom.client.Document;
|
||||
import com.google.gwt.event.dom.client.ChangeEvent;
|
||||
import com.google.gwt.event.dom.client.ChangeHandler;
|
||||
import com.google.gwt.event.dom.client.ClickEvent;
|
||||
import com.google.gwt.event.dom.client.DomEvent;
|
||||
import com.google.gwt.event.shared.HandlerManager;
|
||||
import com.google.gwt.uibinder.client.UiBinder;
|
||||
import com.google.gwt.uibinder.client.UiField;
|
||||
|
@ -75,6 +79,7 @@ public class CreateMetadataForm extends Composite{
|
|||
|
||||
@UiField HTMLPanel createDatasetMainPanel;
|
||||
@UiField ControlGroup customFields;
|
||||
@UiField ControlGroup customFieldsGroup;
|
||||
@UiField Button addCustomFieldButton;
|
||||
@UiField Button createButton;
|
||||
// @UiField Button resetButton;
|
||||
|
@ -174,6 +179,7 @@ public class CreateMetadataForm extends Composite{
|
|||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Instantiates a new creates the dataset form.
|
||||
|
@ -263,16 +269,19 @@ public class CreateMetadataForm extends Composite{
|
|||
for(MetaDataProfileBean metadataBean: profiles){
|
||||
metadataTypeListbox.addItem(metadataBean.getType());
|
||||
}
|
||||
|
||||
// add handler on select
|
||||
metadataTypeListbox.addChangeHandler(new ChangeHandler() {
|
||||
|
||||
@Override
|
||||
public void onChange(ChangeEvent event) {
|
||||
GWT.log("Profile type selection changed...");
|
||||
|
||||
String selectedItemText = metadataTypeListbox.getSelectedItemText();
|
||||
metadataFieldsPanel.clear();
|
||||
if(selectedItemText.equals(NONE_PROFILE)){
|
||||
metadataFieldsPanel.setVisible(false);
|
||||
selectedProfile.setText("Selected Profile is " + NONE_PROFILE);
|
||||
//receivedBean.setChosenType(null);
|
||||
}else{
|
||||
//receivedBean.setChosenType(selectedItemText);
|
||||
|
@ -284,7 +293,7 @@ public class CreateMetadataForm extends Composite{
|
|||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}else{
|
||||
// just hide this listbox
|
||||
metadataTypesControlGroup.setVisible(false);
|
||||
|
@ -292,6 +301,18 @@ public class CreateMetadataForm extends Composite{
|
|||
listOfMetadataFields.clear();
|
||||
//receivedBean.setChosenType(null);
|
||||
}
|
||||
|
||||
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
|
||||
|
||||
@Override
|
||||
public void execute() {
|
||||
if(profiles.size()==1) {
|
||||
metadataTypeListbox.setSelectedValue(profiles.get(0).getType());
|
||||
DomEvent.fireNativeEvent(Document.get().createChangeEvent(), metadataTypeListbox);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -624,27 +645,26 @@ public class CreateMetadataForm extends Composite{
|
|||
*/
|
||||
private void alertOnCreate(String text, AlertType type, boolean hideAfterAWhile){
|
||||
|
||||
Window.alert("Called alertOnCreate");
|
||||
//Window.alert("Called alertOnCreate");
|
||||
onCreateAlertBlock.setText(text);
|
||||
onCreateAlertBlock.setType(type);
|
||||
onCreateAlertBlock.setVisible(true);
|
||||
createButton.setEnabled(true);
|
||||
//goBackButtonSecondStep.setEnabled(true);
|
||||
|
||||
// onCreateAlertBlock.setText(text);
|
||||
// onCreateAlertBlock.setType(type);
|
||||
// onCreateAlertBlock.setVisible(true);
|
||||
// createButton.setEnabled(true);
|
||||
// goBackButtonSecondStep.setEnabled(true);
|
||||
//
|
||||
// if(hideAfterAWhile){
|
||||
// // hide after some seconds
|
||||
// Timer t = new Timer() {
|
||||
//
|
||||
// @Override
|
||||
// public void run() {
|
||||
//
|
||||
// onCreateAlertBlock.setVisible(false);
|
||||
//
|
||||
// }
|
||||
// };
|
||||
// t.schedule(10000);
|
||||
// }
|
||||
if(hideAfterAWhile){
|
||||
// hide after some seconds
|
||||
Timer t = new Timer() {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
onCreateAlertBlock.setVisible(false);
|
||||
|
||||
}
|
||||
};
|
||||
t.schedule(10000);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -720,6 +740,12 @@ public class CreateMetadataForm extends Composite{
|
|||
infoBlock.setVisible(visible);
|
||||
|
||||
}
|
||||
|
||||
public void showCustomFieldsEntries(boolean show) {
|
||||
this.customFields.setVisible(show);
|
||||
this.customFieldsGroup.setVisible(show);
|
||||
}
|
||||
|
||||
|
||||
// /**
|
||||
// * On selected license change.
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
xmlns:g="urn:import:com.google.gwt.user.client.ui"
|
||||
xmlns:b="urn:import:com.github.gwtbootstrap.client.ui"
|
||||
xmlns:m="urn:import:org.gcube.portlets.widgets.mpformbuilder.client.ui.tags"
|
||||
xmlns:f="urn:import:org.gcube.portlets.widgets.mpformbuilder.client.ui.upload"
|
||||
xmlns:u="urn:import:org.gcube.portlets.widgets.mpformbuilder.client.ui.utils">
|
||||
<ui:style>
|
||||
.form-main-style {
|
||||
|
@ -96,8 +95,6 @@
|
|||
<!-- TAGS Panel -->
|
||||
<!-- <m:TagsPanel ui:field="tagsPanel"></m:TagsPanel> -->
|
||||
|
||||
<f:FileUpload ui:field="dialogUpload"></f:FileUpload>
|
||||
|
||||
<!-- Alert block on continue -->
|
||||
<b:AlertBlock type="INFO" close="false"
|
||||
animation="true" visible="false" ui:field="onContinueAlertBlock">
|
||||
|
@ -132,11 +129,11 @@
|
|||
visible="false" width="100%"></g:VerticalPanel>
|
||||
|
||||
<!-- Custom fields can be dinamically added -->
|
||||
<b:ControlGroup ui:field="customFields">
|
||||
<b:ControlGroup ui:field="customFields" visible="false">
|
||||
<b:ControlLabel>Custom Field(s):</b:ControlLabel>
|
||||
</b:ControlGroup>
|
||||
|
||||
<b:ControlGroup>
|
||||
<b:ControlGroup ui:field="customFieldsGroup" visible="false">
|
||||
<b:Controls>
|
||||
<span style="float:right; width:5%; color: #aaaaaa;">
|
||||
<b:Popover ui:field="popoverCustomFields" html="true"
|
||||
|
|
|
@ -7,6 +7,7 @@ import org.gcube.portlets.widgets.mpformbuilder.client.events.CloseCreationFormE
|
|||
import org.gcube.portlets.widgets.mpformbuilder.client.events.CloseCreationFormEventHandler;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.client.openlayerwidget.GeoJsonAreaSelectionDialog;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.client.ui.timeandranges.DataTimeBox;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.client.ui.upload.MultipleDilaogUpload;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.client.ui.utils.GcubeDialogExtended;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.shared.metadata.FieldAsGroup;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.shared.metadata.FieldAsTag;
|
||||
|
@ -33,15 +34,22 @@ import com.google.gwt.dom.client.SpanElement;
|
|||
import com.google.gwt.dom.client.Style.Cursor;
|
||||
import com.google.gwt.dom.client.Style.Display;
|
||||
import com.google.gwt.dom.client.Style.Unit;
|
||||
import com.google.gwt.event.dom.client.ChangeEvent;
|
||||
import com.google.gwt.event.dom.client.ChangeHandler;
|
||||
import com.google.gwt.event.dom.client.ClickEvent;
|
||||
import com.google.gwt.event.dom.client.ClickHandler;
|
||||
import com.google.gwt.event.dom.client.DomEvent;
|
||||
import com.google.gwt.event.dom.client.DomEvent.Type;
|
||||
import com.google.gwt.event.logical.shared.ResizeEvent;
|
||||
import com.google.gwt.event.logical.shared.ResizeHandler;
|
||||
import com.google.gwt.event.shared.EventHandler;
|
||||
import com.google.gwt.event.shared.GwtEvent;
|
||||
import com.google.gwt.event.shared.HandlerManager;
|
||||
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.Command;
|
||||
import com.google.gwt.user.client.Event;
|
||||
import com.google.gwt.user.client.Window;
|
||||
import com.google.gwt.user.client.ui.Composite;
|
||||
import com.google.gwt.user.client.ui.FlowPanel;
|
||||
|
@ -52,6 +60,7 @@ import com.google.gwt.user.client.ui.Label;
|
|||
import com.google.gwt.user.client.ui.SimplePanel;
|
||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.google.gwt.view.client.SelectionChangeEvent;
|
||||
|
||||
public class MetaDataFieldSkeleton extends Composite {
|
||||
|
||||
|
@ -114,6 +123,8 @@ public class MetaDataFieldSkeleton extends Composite {
|
|||
// time range separator
|
||||
public static final String RANGE_SEPARATOR = ",";
|
||||
private static final String TOOLTIP_MULTISELECTION = "Hold down the Control (CTRL) or Command (CMD) button to select multiple options";
|
||||
|
||||
private static final String UPLOAD_MISSING_FILE = "You must upload a file";
|
||||
|
||||
public MetaDataFieldSkeleton(final MetadataFieldWrapper field, HandlerManager eventBus) throws Exception {
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
|
@ -298,6 +309,12 @@ public class MetaDataFieldSkeleton extends Composite {
|
|||
((TextBox) holder).setText(field.getDefaultValue());
|
||||
|
||||
break;
|
||||
|
||||
case File:
|
||||
|
||||
holder = new MultipleDilaogUpload();
|
||||
|
||||
break;
|
||||
|
||||
case String:
|
||||
|
||||
|
@ -346,6 +363,24 @@ public class MetaDataFieldSkeleton extends Composite {
|
|||
return;
|
||||
|
||||
}
|
||||
|
||||
try {
|
||||
ChangeHandler handler = new ChangeHandler() {
|
||||
|
||||
@Override
|
||||
public void onChange(ChangeEvent event) {
|
||||
GWT.log("Fired is field value");
|
||||
removeError();
|
||||
isFieldValueValid();
|
||||
|
||||
}
|
||||
};
|
||||
holder.addDomHandler(handler, ChangeEvent.getType());
|
||||
}catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
}
|
||||
|
||||
|
||||
|
||||
// add custom css properties
|
||||
controls.addStyleName("form-controls-custom");
|
||||
|
@ -591,7 +626,22 @@ public class MetaDataFieldSkeleton extends Composite {
|
|||
}
|
||||
|
||||
return null;
|
||||
|
||||
|
||||
case File:
|
||||
|
||||
GWT.log("Checking is valid File");
|
||||
if (field.getMandatory()) {
|
||||
if (holder.getClass().equals(MultipleDilaogUpload.class)) {
|
||||
MultipleDilaogUpload dUpload = (MultipleDilaogUpload) holder;
|
||||
if(dUpload.getUploadedInfo()!=null && dUpload.getUploadedInfo().getFile()!=null) {
|
||||
return dUpload.getUploadedInfo().getFile().getTempSystemPath()!=null?null:UPLOAD_MISSING_FILE;
|
||||
}
|
||||
}
|
||||
return UPLOAD_MISSING_FILE;
|
||||
|
||||
}
|
||||
return null;
|
||||
|
||||
default:
|
||||
return null;
|
||||
|
||||
|
@ -724,6 +774,18 @@ public class MetaDataFieldSkeleton extends Composite {
|
|||
}
|
||||
}
|
||||
|
||||
break;
|
||||
case File:
|
||||
|
||||
if (holder.getClass().equals(MultipleDilaogUpload.class)) {
|
||||
MultipleDilaogUpload dUpload = (MultipleDilaogUpload) holder;
|
||||
if(dUpload.getUploadedInfo()!=null) {
|
||||
String filePath = dUpload.getUploadedInfo().getFile().getTempSystemPath();
|
||||
toReturn.add(filePath);
|
||||
}else
|
||||
toReturn.add(null);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
|
@ -255,7 +255,10 @@ private String purgedUploadingFileName;
|
|||
* @return the uploaded info
|
||||
*/
|
||||
public WorkspaceUploaderItem getUploadedInfo() {
|
||||
return timer.getWorkspaceUploader();
|
||||
if(timer!=null)
|
||||
return timer.getLastWorkspaceUploader();
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -5,7 +5,6 @@ import java.util.Map;
|
|||
|
||||
import org.gcube.portlets.widgets.mpformbuilder.client.ui.upload.events.NotifyUploadEvent;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.client.ui.upload.events.NotifyUploadEvent.UPLOAD_EVENT_TYPE;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.shared.upload.WorkspaceUploaderItem;
|
||||
|
||||
import com.google.gwt.core.shared.GWT;
|
||||
import com.google.gwt.user.client.Timer;
|
||||
|
@ -44,8 +43,9 @@ public class SingleUploadMonitor {
|
|||
* @param workspaceUploader the workspace uploader
|
||||
*/
|
||||
private void startTimer(TimerUpload timer){
|
||||
GWT.log("Starting new timer for key: "+timer.getWorkspaceUploader().getClientUploadKey());
|
||||
saveTimer(timer);
|
||||
String clientUploadKey = timer.getInitWorkspaceUploader().getClientUploadKey();
|
||||
GWT.log("Starting new timer for key: "+clientUploadKey);
|
||||
currentTimersRun.put(clientUploadKey, timer);
|
||||
timer.scheduleRepeating(2000);
|
||||
}
|
||||
|
||||
|
@ -64,17 +64,6 @@ public class SingleUploadMonitor {
|
|||
GWT.log("Remove timer for key: "+clientKey+", skypped, already removed?");
|
||||
}
|
||||
|
||||
/**
|
||||
* Save timer.
|
||||
*
|
||||
* @param timer the timer upload
|
||||
* @param clientKey the client key
|
||||
*/
|
||||
private synchronized void saveTimer(TimerUpload timer){
|
||||
currentTimersRun.put(timer.getWorkspaceUploader().getClientUploadKey(), timer);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the timer.
|
||||
*
|
||||
|
|
|
@ -143,13 +143,14 @@ public class TimerUpload extends Timer{
|
|||
GWT.log("Cancelling timer for "+lastWorkspaceUploader);
|
||||
super.cancel();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the workspace uploader.
|
||||
*
|
||||
* @return the workspace uploader
|
||||
*/
|
||||
public WorkspaceUploaderItem getWorkspaceUploader() {
|
||||
|
||||
public WorkspaceUploaderItem getInitWorkspaceUploader() {
|
||||
return initWorkspaceUploader;
|
||||
}
|
||||
|
||||
public WorkspaceUploaderItem getLastWorkspaceUploader() {
|
||||
return lastWorkspaceUploader;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -184,7 +184,13 @@ public class MetadataDiscovery {
|
|||
|
||||
MetadataFieldWrapper wrapperObj = new MetadataFieldWrapper();
|
||||
wrapperObj.setFieldNameFromCategory(metadataField.getCategoryFieldQName());
|
||||
wrapperObj.setType(DataTypeWrapper.valueOf(metadataField.getDataType().toString()));
|
||||
try {
|
||||
wrapperObj.setType(DataTypeWrapper.valueOf(metadataField.getDataType().toString()));
|
||||
}catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
LOG.warn("No valueOf to DataTypeWrapper for value "+metadataField.getDataType().toString() +", using default String");
|
||||
wrapperObj.setType(DataTypeWrapper.String);
|
||||
}
|
||||
wrapperObj.setDefaultValue(metadataField.getDefaultValue());
|
||||
wrapperObj.setFieldName(metadataField.getFieldName());
|
||||
wrapperObj.setMandatory(metadataField.getMandatory());
|
||||
|
|
|
@ -7,9 +7,6 @@ import java.io.File;
|
|||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
|
|
|
@ -1,20 +1,40 @@
|
|||
package org.gcube.portlets.widgets.mpformbuilder.shared.metadata;
|
||||
|
||||
/**
|
||||
* Data type.
|
||||
* @see org.gcube.datacatalogue.metadatadiscovery.bean.jaxb.DataType
|
||||
* @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it)
|
||||
* The Enum DataTypeWrapper.
|
||||
* @see org.gcube.common.metadataprofilediscovery.jaxb.DataType
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
*
|
||||
* Oct 6, 2020
|
||||
*/
|
||||
public enum DataTypeWrapper {
|
||||
|
||||
/** The String. */
|
||||
String,
|
||||
|
||||
/** The Time. */
|
||||
Time,
|
||||
|
||||
/** The Time interval. */
|
||||
Time_Interval,
|
||||
|
||||
/** The Times list of. */
|
||||
Times_ListOf,
|
||||
|
||||
/** The Text. */
|
||||
Text,
|
||||
|
||||
/** The Boolean. */
|
||||
Boolean,
|
||||
|
||||
/** The Number. */
|
||||
Number,
|
||||
GeoJSON;
|
||||
|
||||
/** The Geo JSON. */
|
||||
GeoJSON,
|
||||
|
||||
/** The File. */
|
||||
File;
|
||||
|
||||
/**
|
||||
* Value as String.
|
||||
|
|
Loading…
Reference in New Issue