Merge pull request 'task_22890' (!1) from task_22890 into master
Reviewed-on: #1
This commit is contained in:
commit
03412ae0a4
|
@ -28,11 +28,5 @@
|
|||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
<attribute name="test" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="output" path="target/classes"/>
|
||||
</classpath>
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
<root>
|
||||
<facet id="jst.jaxrs">
|
||||
<node name="libprov">
|
||||
<attribute name="provider-id" value="jaxrs-no-op-library-provider"/>
|
||||
</node>
|
||||
</facet>
|
||||
</root>
|
|
@ -5,4 +5,5 @@
|
|||
<installed facet="jst.web" version="2.3"/>
|
||||
<installed facet="com.gwtplugins.gwt.facet" version="1.0"/>
|
||||
<installed facet="wst.jsdt.web" version="1.0"/>
|
||||
<installed facet="jst.jaxrs" version="2.0"/>
|
||||
</faceted-project>
|
||||
|
|
19
CHANGELOG.md
19
CHANGELOG.md
|
@ -4,17 +4,30 @@
|
|||
All notable changes to this project will be documented in this file.
|
||||
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [v2.0.0-SNAPSHOT] - 2022-11-14
|
||||
|
||||
#### Enhancements
|
||||
|
||||
- [#23188] Overloaded the method getProfilesInTheScope(forName)
|
||||
- [#22890] Including the set/get currentValue for the "Update" facility
|
||||
- [#23188] Advanced the MultipleDilaogUpload with a more complex object
|
||||
- [#23544] Integrated with the fieldId added to gCube Metadata Profile
|
||||
- [#24111] Added dependency required for building with JDK_11
|
||||
- Moved to GWT 2.9
|
||||
- Moved to maven-portal-bom 3.6.4
|
||||
|
||||
|
||||
## [v1.0.1-SNAPSHOT] - 2020-10-08
|
||||
|
||||
#### Bug fixes
|
||||
|
||||
[#20446] Catalogue Publishing Widget: field value unexpectedly added in case of optional field
|
||||
- [#20446] Catalogue Publishing Widget: field value unexpectedly added in case of optional field
|
||||
|
||||
|
||||
## [v1.0.0] - 2020-10-08
|
||||
|
||||
#### First release
|
||||
|
||||
[#19884] Create widget to build a data-entry form by using metadata-profile-discovery
|
||||
- [#19884] Create widget to build a data-entry form by using metadata-profile-discovery
|
||||
|
||||
[#19878] Create a data entry facility to get (meta)data object defined by "gCube Metada Profile"
|
||||
- [#19878] Create a data entry facility to get (meta)data object defined by "gCube Metada Profile"
|
20
pom.xml
20
pom.xml
|
@ -14,7 +14,7 @@
|
|||
<groupId>org.gcube.portlets.widgets</groupId>
|
||||
<artifactId>metadata-profile-form-builder-widget</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.0.1-SNAPSHOT</version>
|
||||
<version>2.0.0-SNAPSHOT</version>
|
||||
<name>Metadata Profile Form Builder</name>
|
||||
<description>
|
||||
The Metadata Profile Form Builder is a widget able to build dynamically a web form by reading "gCube Metadata Profile/s"
|
||||
|
@ -28,10 +28,10 @@
|
|||
|
||||
<properties>
|
||||
<!-- Convenience property to set the GWT version -->
|
||||
<gwtVersion>2.7.0</gwtVersion>
|
||||
<gwtVersion>2.9.0</gwtVersion>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<maven.compiler.source>1.7</maven.compiler.source>
|
||||
<maven.compiler.source>1.8</maven.compiler.source>
|
||||
<maven.compiler.target>1.8</maven.compiler.target>
|
||||
</properties>
|
||||
|
||||
|
@ -53,7 +53,7 @@
|
|||
<dependency>
|
||||
<groupId>org.gcube.distribution</groupId>
|
||||
<artifactId>maven-portal-bom</artifactId>
|
||||
<version>3.6.0</version>
|
||||
<version>3.7.0-SNAPSHOT</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
|
@ -98,6 +98,18 @@
|
|||
</dependency>
|
||||
<!-- END FWS -->
|
||||
|
||||
<!-- REQUIRED FOR JDK_11 -->
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.xml.bind</groupId>
|
||||
<artifactId>jaxb-api</artifactId>
|
||||
<version>2.3.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- END REQUIRED FOR JDK_11 -->
|
||||
|
||||
|
||||
<!-- JSON PARSER -->
|
||||
<dependency>
|
||||
<groupId>org.json</groupId>
|
||||
|
|
|
@ -10,6 +10,7 @@ public class ConstantsMPFormBuilder {
|
|||
//public static final String CURR_USER_ID = "currUserId";
|
||||
public static final String IS_OVERWRITE = "isOverwrite";
|
||||
public static final String UPLOAD_TYPE = "uploadType";
|
||||
|
||||
public static enum THE_UPLOAD_TYPE {File, Archive};
|
||||
public static final String ID_FOLDER = "idFolder";
|
||||
public static final String UPLOAD_FORM_ELEMENT = "uploadFormElement";
|
||||
|
@ -17,6 +18,9 @@ public class ConstantsMPFormBuilder {
|
|||
public static final String CLIENT_UPLOAD_KEYS = "client_upload_keys";
|
||||
public static final String CANCEL_UPLOAD = "cancel_upload";
|
||||
public static final String JSON_CLIENT_KEYS = "ClientKeys";
|
||||
public static final String UPL_FILENAME = "filename";
|
||||
public static final String UPL_CLIENT_KEY = "client_key";
|
||||
public static final String UPL_FIELD_NAME_FILEPATH = "fieldname_filepath";
|
||||
|
||||
public static final int LIMIT_UPLOADS = 50;
|
||||
|
||||
|
|
|
@ -8,7 +8,6 @@ import org.gcube.portlets.widgets.mpformbuilder.shared.upload.FileUploadingState
|
|||
import com.google.gwt.user.client.rpc.RemoteService;
|
||||
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
|
||||
|
||||
// TODO: Auto-generated Javadoc
|
||||
/**
|
||||
* The client side stub for the RPC service.
|
||||
*
|
||||
|
@ -54,4 +53,15 @@ public interface MetadataProfileFormBuilderService extends RemoteService {
|
|||
* @throws Exception the exception
|
||||
*/
|
||||
Integer purgeFilesUploaded() throws Exception;
|
||||
|
||||
/**
|
||||
* Gets the profiles in the scope.
|
||||
*
|
||||
* @param scope the scope
|
||||
* @param genericResourceSecondaryType the generic resource secondary type
|
||||
* @param resourceName the resource name
|
||||
* @return the profiles in the scope
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
List<MetaDataProfileBean> getProfilesInTheScopeForName(String scope,String genericResourceSecondaryType, String resourceName) throws Exception;
|
||||
}
|
||||
|
|
|
@ -42,4 +42,7 @@ public interface MetadataProfileFormBuilderServiceAsync {
|
|||
void getUploadStatus(String clientUploadKey, AsyncCallback<FileUploadingState> asyncCallback);
|
||||
|
||||
void purgeFilesUploaded(AsyncCallback<Integer> callback);
|
||||
|
||||
void getProfilesInTheScopeForName(String scope, String genericResourceSecondaryType, String resourceName,
|
||||
AsyncCallback<List<MetaDataProfileBean>> callback);
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package org.gcube.portlets.widgets.mpformbuilder.client.form;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.portlets.widgets.mpformbuilder.client.form.generic.CreateMetadataForm.OPERATION;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.client.ui.metadata.MetaDataFieldSkeleton;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.shared.metadata.MetadataFieldWrapper;
|
||||
|
||||
|
@ -35,8 +36,6 @@ public class MetaDataField extends Composite {
|
|||
|
||||
@UiField Label repeatabilityLabel;
|
||||
|
||||
//@UiField ControlGroup cgMetaDataFieldSkeletonFields;
|
||||
|
||||
@UiField Button addFieldButton;
|
||||
|
||||
@UiField Button removeFieldButton;
|
||||
|
@ -47,6 +46,8 @@ public class MetaDataField extends Composite {
|
|||
|
||||
private HandlerManager eventBus;
|
||||
|
||||
private OPERATION operation;
|
||||
|
||||
/**
|
||||
* The Interface MetaDataFieldUiBinder.
|
||||
*
|
||||
|
@ -65,10 +66,11 @@ public class MetaDataField extends Composite {
|
|||
* @param eventBus the event bus
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
public MetaDataField(final MetadataFieldWrapper field, HandlerManager eventBus) throws Exception {
|
||||
public MetaDataField(final MetadataFieldWrapper field, HandlerManager eventBus, OPERATION operation) throws Exception {
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
this.fieldWrapper = field;
|
||||
this.eventBus = eventBus;
|
||||
this.operation = operation;
|
||||
addNewOccurrenceOfField();
|
||||
checkAllowedAddField();
|
||||
checkAllowedRemoveField();
|
||||
|
@ -143,7 +145,7 @@ public class MetaDataField extends Composite {
|
|||
*/
|
||||
private void addNewOccurrenceOfField() {
|
||||
try {
|
||||
MetaDataFieldSkeleton fieldWidget = new MetaDataFieldSkeleton(fieldWrapper, eventBus);
|
||||
MetaDataFieldSkeleton fieldWidget = new MetaDataFieldSkeleton(fieldWrapper, eventBus, operation);
|
||||
listOfMetadataFields.add(fieldWidget);
|
||||
panelMetaDataFieldsSkeleton.add(fieldWidget);
|
||||
} catch (Exception e) {
|
||||
|
|
|
@ -4,20 +4,20 @@
|
|||
xmlns:m="urn:import:org.gcube.portlets.widgets.ckandatapublisherwidget.client.ui.tags">
|
||||
<ui:style>
|
||||
.form-main-style {
|
||||
margin-left: 10px;
|
||||
margin-left: 10px !important;
|
||||
}
|
||||
|
||||
.fieldset-border-style {
|
||||
border: 1px groove #444;
|
||||
border: 1px groove #444 !important;
|
||||
-webkit-box-shadow: 0px 0px 0px 0px #000;
|
||||
box-shadow: 0px 0px 0px 0px #000;
|
||||
padding: 10px;
|
||||
box-shadow: 0px 0px 0px 0px #000 !important;
|
||||
padding: 10px !important;
|
||||
}
|
||||
|
||||
.legend-style {
|
||||
width: auto;
|
||||
padding: 10px;
|
||||
margin-bottom: 0px;
|
||||
width: auto !important;
|
||||
padding: 10px !important;
|
||||
margin-bottom: 0px !important;
|
||||
}
|
||||
|
||||
@external .form-horizontal .input-large;
|
||||
|
|
|
@ -2,6 +2,7 @@ package org.gcube.portlets.widgets.mpformbuilder.client.form.generic;
|
|||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
@ -61,7 +62,7 @@ import com.google.gwt.user.client.ui.HTMLPanel;
|
|||
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
||||
// TODO: Auto-generated Javadoc
|
||||
|
||||
/**
|
||||
* Create metadata form for ckan product.
|
||||
* @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it)
|
||||
|
@ -238,6 +239,10 @@ public class CreateMetadataForm extends Composite implements HasGenericFormListe
|
|||
/** The form data bean. */
|
||||
private GenericDatasetBean formDataBean;
|
||||
|
||||
private OPERATION operationPerfom;
|
||||
|
||||
public enum OPERATION {NEW, UPDATE}
|
||||
|
||||
/**
|
||||
* Invoked in the most general case.
|
||||
*
|
||||
|
@ -271,8 +276,9 @@ public class CreateMetadataForm extends Composite implements HasGenericFormListe
|
|||
*
|
||||
* @param profiles the profiles
|
||||
*/
|
||||
public CreateMetadataForm(List<MetaDataProfileBean> profiles, HandlerManager eventBus) {
|
||||
public CreateMetadataForm(List<MetaDataProfileBean> profiles, HandlerManager eventBus, OPERATION operation) {
|
||||
this(eventBus);
|
||||
this.operationPerfom = operation;
|
||||
showLoadingProfiles(true);
|
||||
createDatasetFormBody(profiles);
|
||||
showLoadingProfiles(false);
|
||||
|
@ -303,6 +309,7 @@ public class CreateMetadataForm extends Composite implements HasGenericFormListe
|
|||
showCustomFieldsEntries(false);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Show loading profiles.
|
||||
*
|
||||
|
@ -464,7 +471,7 @@ public class CreateMetadataForm extends Composite implements HasGenericFormListe
|
|||
|
||||
MetaDataField fieldWidget;
|
||||
try {
|
||||
fieldWidget = new MetaDataField(field, uiBus);
|
||||
fieldWidget = new MetaDataField(field, uiBus, operationPerfom);
|
||||
metadataFieldsPanel.add(fieldWidget);
|
||||
listOfMetadataFields.add(fieldWidget);
|
||||
} catch (Exception e) {
|
||||
|
@ -493,7 +500,7 @@ public class CreateMetadataForm extends Composite implements HasGenericFormListe
|
|||
|
||||
MetaDataField fieldWidget;
|
||||
try {
|
||||
fieldWidget = new MetaDataField(metadataFieldWrapper, uiBus);
|
||||
fieldWidget = new MetaDataField(metadataFieldWrapper, uiBus,operationPerfom);
|
||||
cp.addField(fieldWidget);
|
||||
listOfMetadataFields.add(fieldWidget);
|
||||
} catch (Exception e) {
|
||||
|
@ -519,7 +526,7 @@ public class CreateMetadataForm extends Composite implements HasGenericFormListe
|
|||
|
||||
MetaDataField fieldWidget;
|
||||
try {
|
||||
fieldWidget = new MetaDataField(field, uiBus);
|
||||
fieldWidget = new MetaDataField(field, uiBus, operationPerfom);
|
||||
extrasCategory.addField(fieldWidget);
|
||||
listOfMetadataFields.add(fieldWidget);
|
||||
} catch (Exception e) {
|
||||
|
@ -567,7 +574,7 @@ public class CreateMetadataForm extends Composite implements HasGenericFormListe
|
|||
//Set<String> tags = new HashSet<String>(tagsPanel.getTags());
|
||||
List<OrganizationBean> groups = new ArrayList<OrganizationBean>();
|
||||
List<OrganizationBean> groupsToForceCreation = new ArrayList<OrganizationBean>();
|
||||
Map<String, List<String>> customFieldsMap = new HashMap<String, List<String>>();
|
||||
LinkedHashMap<String, List<String>> customFieldsMap = new LinkedHashMap<String, List<String>>();
|
||||
List<FileUploaded> listFilesUploaded = new ArrayList<FileUploaded>();
|
||||
|
||||
// prepare custom fields
|
||||
|
|
|
@ -5,6 +5,7 @@ import java.util.List;
|
|||
|
||||
import org.gcube.portlets.widgets.mpformbuilder.client.events.CloseCreationFormEvent;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.client.events.CloseCreationFormEventHandler;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.client.form.generic.CreateMetadataForm.OPERATION;
|
||||
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.DialogUpload;
|
||||
|
@ -121,7 +122,8 @@ public class MetaDataFieldSkeleton extends Composite {
|
|||
|
||||
private static final String UPLOAD_MISSING_FILE = "You must upload a file";
|
||||
|
||||
public MetaDataFieldSkeleton(final MetadataFieldWrapper field, HandlerManager eventBus) throws Exception {
|
||||
public MetaDataFieldSkeleton(final MetadataFieldWrapper field, HandlerManager eventBus, OPERATION operation)
|
||||
throws Exception {
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
|
||||
// prepare information
|
||||
|
@ -133,6 +135,9 @@ public class MetaDataFieldSkeleton extends Composite {
|
|||
// bind
|
||||
bind();
|
||||
|
||||
if (operation == null)
|
||||
operation = OPERATION.NEW;
|
||||
|
||||
switch (field.getType()) {
|
||||
|
||||
case Boolean:
|
||||
|
@ -141,6 +146,16 @@ public class MetaDataFieldSkeleton extends Composite {
|
|||
holder = new CheckBox();
|
||||
if (field.getDefaultValue() != null)
|
||||
((CheckBox) holder).setValue(Boolean.valueOf(field.getDefaultValue()));
|
||||
|
||||
if (operation.equals(OPERATION.UPDATE)) {
|
||||
try {
|
||||
if (field.getCurrentValue() != null)
|
||||
((CheckBox) holder).setValue(Boolean.valueOf(field.getDefaultValue()));
|
||||
} catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case GeoJSON:
|
||||
|
@ -154,6 +169,15 @@ public class MetaDataFieldSkeleton extends Composite {
|
|||
if (field.getDefaultValue() != null)
|
||||
textArea.setText(field.getDefaultValue());
|
||||
|
||||
if (operation.equals(OPERATION.UPDATE)) {
|
||||
try {
|
||||
if (field.getCurrentValue() != null)
|
||||
textArea.setText((String) field.getCurrentValue());
|
||||
} catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
}
|
||||
}
|
||||
|
||||
containerGeoJSON.add(textArea);
|
||||
|
||||
HorizontalPanel hp = new HorizontalPanel();
|
||||
|
@ -216,6 +240,16 @@ public class MetaDataFieldSkeleton extends Composite {
|
|||
|
||||
if (field.getDefaultValue() != null)
|
||||
((TextArea) holder).setText(field.getDefaultValue());
|
||||
|
||||
if (operation.equals(OPERATION.UPDATE)) {
|
||||
try {
|
||||
if (field.getCurrentValue() != null)
|
||||
((TextArea) holder).setText((String) field.getCurrentValue());
|
||||
} catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case Time:
|
||||
|
@ -230,6 +264,22 @@ public class MetaDataFieldSkeleton extends Composite {
|
|||
ref.setStartDate(dateAndTime[0], dateAndTime.length > 1 ? dateAndTime[1] : null);
|
||||
}
|
||||
}
|
||||
|
||||
if (operation.equals(OPERATION.UPDATE)) {
|
||||
// set time, if present
|
||||
try {
|
||||
if (field.getCurrentValue() != null) {
|
||||
String currentValue = (String) field.getCurrentValue();
|
||||
String[] dateAndTime = currentValue.split(" ");
|
||||
if (dateAndTime.length > 0) {
|
||||
ref.setStartDate(dateAndTime[0], dateAndTime.length > 1 ? dateAndTime[1] : null);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case Time_Interval:
|
||||
|
@ -237,6 +287,15 @@ public class MetaDataFieldSkeleton extends Composite {
|
|||
DataTimeBox rangeBox;
|
||||
holder = rangeBox = new DataTimeBox(true);
|
||||
setRangeTimeInTimeBox(field.getDefaultValue(), rangeBox);
|
||||
if (operation.equals(OPERATION.UPDATE)) {
|
||||
// set time, if present
|
||||
try {
|
||||
setRangeTimeInTimeBox((String) field.getCurrentValue(), rangeBox);
|
||||
} catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
}
|
||||
}
|
||||
|
||||
rangesList.add(rangeBox);
|
||||
break;
|
||||
|
||||
|
@ -251,6 +310,15 @@ public class MetaDataFieldSkeleton extends Composite {
|
|||
SimplePanel panelFirstRange = new SimplePanel();
|
||||
DataTimeBox rangeBoxFirst = new DataTimeBox(true);
|
||||
setRangeTimeInTimeBox(field.getDefaultValue(), rangeBoxFirst);
|
||||
|
||||
if (operation.equals(OPERATION.UPDATE)) {
|
||||
try {
|
||||
setRangeTimeInTimeBox((String) field.getCurrentValue(), rangeBoxFirst);
|
||||
} catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
}
|
||||
}
|
||||
|
||||
panelFirstRange.add(rangeBoxFirst);
|
||||
rangesList.add(rangeBoxFirst);
|
||||
|
||||
|
@ -303,11 +371,20 @@ public class MetaDataFieldSkeleton extends Composite {
|
|||
if (field.getDefaultValue() != null)
|
||||
((TextBox) holder).setText(field.getDefaultValue());
|
||||
|
||||
if (operation.equals(OPERATION.UPDATE)) {
|
||||
try {
|
||||
if (field.getCurrentValue() != null)
|
||||
((TextBox) holder).setText((String) field.getCurrentValue());
|
||||
} catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case File:
|
||||
|
||||
holder = new MultipleDilaogUpload();
|
||||
holder = new MultipleDilaogUpload(field.getFieldName());
|
||||
|
||||
break;
|
||||
|
||||
|
@ -322,6 +399,15 @@ public class MetaDataFieldSkeleton extends Composite {
|
|||
if (field.getDefaultValue() != null)
|
||||
((TextBox) holder).setText(field.getDefaultValue());
|
||||
|
||||
if (operation.equals(OPERATION.UPDATE)) {
|
||||
try {
|
||||
if (field.getCurrentValue() != null)
|
||||
((TextBox) holder).setText((String) field.getCurrentValue());
|
||||
} catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
// listbox
|
||||
|
@ -331,11 +417,13 @@ public class MetaDataFieldSkeleton extends Composite {
|
|||
if (field.isMultiSelection())
|
||||
tempListBox.setTitle(TOOLTIP_MULTISELECTION);
|
||||
|
||||
// if it is not mandatory and not multi-selection, add a disabled option (placeholder)
|
||||
// if it is not mandatory and not multi-selection, add a disabled option
|
||||
// (placeholder)
|
||||
if (!field.getMandatory() && !field.isMultiSelection()) {
|
||||
tempListBox.addItem("Select " + field.getFieldName());
|
||||
tempListBox.setValue(0, "");
|
||||
tempListBox.getElement().getElementsByTagName("option").getItem(0).setAttribute("disabled", "disabled");
|
||||
tempListBox.getElement().getElementsByTagName("option").getItem(0).setAttribute("disabled",
|
||||
"disabled");
|
||||
tempListBox.setSelectedValue("Select " + field.getFieldName());
|
||||
}
|
||||
|
||||
|
@ -350,6 +438,15 @@ public class MetaDataFieldSkeleton extends Composite {
|
|||
if (field.getDefaultValue() != null)
|
||||
tempListBox.setSelectedValue(field.getDefaultValue());
|
||||
|
||||
if (operation.equals(OPERATION.UPDATE)) {
|
||||
try {
|
||||
if (field.getCurrentValue() != null)
|
||||
tempListBox.setSelectedValue((String) field.getCurrentValue());
|
||||
} catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -375,8 +472,6 @@ public class MetaDataFieldSkeleton extends Composite {
|
|||
// TODO: handle exception
|
||||
}
|
||||
|
||||
|
||||
|
||||
// add custom css properties
|
||||
controls.addStyleName("form-controls-custom");
|
||||
controlLabel.addStyleName("form-control-label-custom");
|
||||
|
@ -422,7 +517,6 @@ public class MetaDataFieldSkeleton extends Composite {
|
|||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the holder.
|
||||
*
|
||||
|
@ -636,10 +730,12 @@ public class MetaDataFieldSkeleton extends Composite {
|
|||
|
||||
GWT.log("Checking is valid File");
|
||||
if (field.getMandatory()) {
|
||||
if (holder.getClass().equals(DialogUpload.class) || holder.getClass().equals(MultipleDilaogUpload.class)) {
|
||||
if (holder.getClass().equals(DialogUpload.class)
|
||||
|| holder.getClass().equals(MultipleDilaogUpload.class)) {
|
||||
DialogUpload dUpload = (DialogUpload) holder;
|
||||
if (dUpload.getFileUploadingState() != null && dUpload.getFileUploadingState().getFile() != null) {
|
||||
return dUpload.getFileUploadingState().getFile().getTempSystemPath()!=null?null:UPLOAD_MISSING_FILE;
|
||||
return dUpload.getFileUploadingState().getFile().getTempSystemPath() != null ? null
|
||||
: UPLOAD_MISSING_FILE;
|
||||
}
|
||||
}
|
||||
return UPLOAD_MISSING_FILE;
|
||||
|
@ -825,8 +921,16 @@ public class MetaDataFieldSkeleton extends Composite {
|
|||
*/
|
||||
public String getFieldNameQualified() {
|
||||
|
||||
if (field.getFieldNameFromCategory() != null)
|
||||
//see https://support.d4science.org/issues/23544
|
||||
if (field.getFieldId() != null) {
|
||||
return field.getFieldId();
|
||||
}
|
||||
|
||||
//Using the getFieldNameFromCategory if the category is present in the model as cateogory:fieldName
|
||||
if (field.getFieldNameFromCategory() != null && field.getFieldNameFromCategory().compareTo(field.getFieldName())!=0) {
|
||||
return field.getFieldNameFromCategory();
|
||||
}
|
||||
|
||||
return field.getFieldName();
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package org.gcube.portlets.widgets.mpformbuilder.client.ui.upload;
|
||||
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -25,13 +24,11 @@ import com.google.gwt.user.client.ui.Hidden;
|
|||
import com.google.gwt.user.client.ui.HorizontalPanel;
|
||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
|
||||
|
||||
// TODO: Auto-generated Javadoc
|
||||
/**
|
||||
* The Class DialogUploadStream.
|
||||
*
|
||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||
* Sep 24, 2015
|
||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it Sep 24, 2015
|
||||
*/
|
||||
public class DialogUpload extends FormPanel implements HasWorskpaceUploadNotificationListener {
|
||||
|
||||
|
@ -51,11 +48,12 @@ public class DialogUpload extends FormPanel implements HasWorskpaceUploadNotific
|
|||
/** The timer. */
|
||||
protected TimerUpload timer;
|
||||
|
||||
protected String fieldName;
|
||||
|
||||
/**
|
||||
* The Enum UPLOAD_TYPE.
|
||||
*
|
||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||
* Sep 11, 2015
|
||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it Sep 11, 2015
|
||||
*/
|
||||
private HTML UPLOADING = new HTML("Uploading...");
|
||||
|
||||
|
@ -74,7 +72,6 @@ public class DialogUpload extends FormPanel implements HasWorskpaceUploadNotific
|
|||
* Instantiates a new dialog upload stream.
|
||||
*/
|
||||
public DialogUpload() {
|
||||
//setWidth("400px");
|
||||
fileUpload = new FileUpload();
|
||||
// fileUpload.getElement().setAttribute("multiple", "multiple");
|
||||
setAction(ConstantsMPFormBuilder.METADATA_FORM_BUILDER_UPLOADING_SERVLET);
|
||||
|
@ -89,8 +86,12 @@ public class DialogUpload extends FormPanel implements HasWorskpaceUploadNotific
|
|||
fileUpload.setName(ConstantsMPFormBuilder.UPLOAD_FORM_ELEMENT);
|
||||
|
||||
// Add hidden parameters
|
||||
verticalMainPanel.add(new Hidden(ConstantsMPFormBuilder.CURR_GROUP_ID, GCubeClientContext.getCurrentContextId()));
|
||||
verticalMainPanel.add(new Hidden(ConstantsMPFormBuilder.UPLOAD_TYPE, ConstantsMPFormBuilder.THE_UPLOAD_TYPE.File.name()));
|
||||
verticalMainPanel
|
||||
.add(new Hidden(ConstantsMPFormBuilder.CURR_GROUP_ID, GCubeClientContext.getCurrentContextId()));
|
||||
verticalMainPanel.add(
|
||||
new Hidden(ConstantsMPFormBuilder.UPLOAD_TYPE, ConstantsMPFormBuilder.THE_UPLOAD_TYPE.File.name()));
|
||||
|
||||
verticalMainPanel.add(new Hidden(ConstantsMPFormBuilder.UPL_FIELD_NAME_FILEPATH, fieldName));
|
||||
|
||||
initJsonClientKeys();
|
||||
verticalMainPanel.add(jsonClientKeys);
|
||||
|
@ -105,6 +106,24 @@ public class DialogUpload extends FormPanel implements HasWorskpaceUploadNotific
|
|||
verticalMainPanel.add(hp);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the field name.
|
||||
*
|
||||
* @param fieldName the new field name
|
||||
*/
|
||||
public void setFieldName(String fieldName) {
|
||||
this.fieldName = fieldName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the field name.
|
||||
*
|
||||
* @return the field name
|
||||
*/
|
||||
public String getFieldName() {
|
||||
return fieldName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the panel.
|
||||
*
|
||||
|
@ -146,7 +165,8 @@ public class DialogUpload extends FormPanel implements HasWorskpaceUploadNotific
|
|||
if (result == null) {
|
||||
removeLoading();
|
||||
Window.alert("An error occurred during file upload");
|
||||
//new DialogResult(null, "Error during upload", "An error occurred during file upload.").center();
|
||||
// new DialogResult(null, "Error during upload", "An error occurred during file
|
||||
// upload.").center();
|
||||
return;
|
||||
}
|
||||
String strippedResult = new HTML(result).getText();
|
||||
|
@ -216,11 +236,15 @@ public class DialogUpload extends FormPanel implements HasWorskpaceUploadNotific
|
|||
|
||||
GWT.log("fileUpload.getFilename() " + fileUpload.getFilename());
|
||||
/*
|
||||
* TODO: recall: Some browser would write in fileUploadField.getValue() C:\fakepath\$fileName
|
||||
* TODO: recall: Some browser would write in fileUploadField.getValue()
|
||||
* C:\fakepath\$fileName
|
||||
*/
|
||||
String normalizedFileName = fileUpload.getFilename();
|
||||
if (normalizedFileName.contains("\\")) {
|
||||
normalizedFileName = normalizedFileName.substring(normalizedFileName.lastIndexOf("\\")+1); //remove C:\fakepath\ if exists
|
||||
normalizedFileName = normalizedFileName.substring(normalizedFileName.lastIndexOf("\\") + 1); // remove
|
||||
// C:\fakepath\
|
||||
// if
|
||||
// exists
|
||||
}
|
||||
|
||||
purgedUploadingFileName = normalizedFileName;
|
||||
|
@ -252,7 +276,6 @@ public class DialogUpload extends FormPanel implements HasWorskpaceUploadNotific
|
|||
fakeUploaders.clear();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the file uploading state.
|
||||
*
|
||||
|
@ -301,7 +324,6 @@ public class DialogUpload extends FormPanel implements HasWorskpaceUploadNotific
|
|||
submit();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Removes the item and submit form.
|
||||
*
|
||||
|
@ -309,25 +331,22 @@ public class DialogUpload extends FormPanel implements HasWorskpaceUploadNotific
|
|||
*/
|
||||
protected void removeItemAndSubmitForm(String itemId) {
|
||||
/*
|
||||
AppControllerExplorer.rpcWorkspaceService.removeItem(itemId, new AsyncCallback<Boolean>() {
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
Info.display("Error", caught.getMessage());
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(Boolean result) {
|
||||
if(result){
|
||||
hiddenOverwrite.setValue("true");
|
||||
submitForm();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
});*/
|
||||
* AppControllerExplorer.rpcWorkspaceService.removeItem(itemId, new
|
||||
* AsyncCallback<Boolean>() {
|
||||
*
|
||||
* @Override public void onFailure(Throwable caught) { Info.display("Error",
|
||||
* caught.getMessage());
|
||||
*
|
||||
*
|
||||
* }
|
||||
*
|
||||
* @Override public void onSuccess(Boolean result) { if(result){
|
||||
* hiddenOverwrite.setValue("true"); submitForm(); }
|
||||
*
|
||||
* }
|
||||
*
|
||||
* });
|
||||
*/
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -345,8 +364,14 @@ public class DialogUpload extends FormPanel implements HasWorskpaceUploadNotific
|
|||
*
|
||||
* @param handler the handler
|
||||
*/
|
||||
/* (non-Javadoc)
|
||||
* @see org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploadNotification.HasWorskpaceUploadNotificationListener#addWorkspaceUploadNotificationListener(org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploadNotification.WorskpaceUploadNotificationListener)
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.gcube.portlets.widgets.workspaceuploader.client.
|
||||
* WorkspaceUploadNotification.HasWorskpaceUploadNotificationListener#
|
||||
* addWorkspaceUploadNotificationListener(org.gcube.portlets.widgets.
|
||||
* workspaceuploader.client.WorkspaceUploadNotification.
|
||||
* WorskpaceUploadNotificationListener)
|
||||
*/
|
||||
@Override
|
||||
public void addWorkspaceUploadNotificationListener(WorskpaceUploadNotificationListener handler) {
|
||||
|
@ -358,15 +383,20 @@ public class DialogUpload extends FormPanel implements HasWorskpaceUploadNotific
|
|||
*
|
||||
* @param handler the handler
|
||||
*/
|
||||
/* (non-Javadoc)
|
||||
* @see org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploadNotification.HasWorskpaceUploadNotificationListener#removeWorkspaceUploadNotificationListener(org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploadNotification.WorskpaceUploadNotificationListener)
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see org.gcube.portlets.widgets.workspaceuploader.client.
|
||||
* WorkspaceUploadNotification.HasWorskpaceUploadNotificationListener#
|
||||
* removeWorkspaceUploadNotificationListener(org.gcube.portlets.widgets.
|
||||
* workspaceuploader.client.WorkspaceUploadNotification.
|
||||
* WorskpaceUploadNotificationListener)
|
||||
*/
|
||||
@Override
|
||||
public void removeWorkspaceUploadNotificationListener(WorskpaceUploadNotificationListener handler) {
|
||||
controller.removeWorkspaceUploadListener(handler);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Enable upload.
|
||||
*
|
||||
|
@ -376,4 +406,3 @@ public class DialogUpload extends FormPanel implements HasWorskpaceUploadNotific
|
|||
fileUpload.setEnabled(bool);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -16,9 +16,9 @@ public class FileUpload extends Composite {
|
|||
|
||||
@UiField HTMLPanel fileUploadPanel;
|
||||
|
||||
public FileUpload() {
|
||||
public FileUpload(String fielName) {
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
fileUploadPanel.add(new MultipleDilaogUpload());
|
||||
fileUploadPanel.add(new MultipleDilaogUpload(fielName));
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@ import java.util.ArrayList;
|
|||
import java.util.Arrays;
|
||||
|
||||
import org.gcube.portlets.widgets.mpformbuilder.client.ConstantsMPFormBuilder;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.shared.upload.FilePath;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.shared.upload.FileUploaded;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.shared.upload.FileUploadingState;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.shared.upload.FileUploadingState.UPLOAD_STATUS;
|
||||
|
@ -45,13 +46,13 @@ public class MultipleDilaogUpload extends DialogUpload {
|
|||
/** The id folder. */
|
||||
private String idFolder;
|
||||
|
||||
|
||||
/**
|
||||
* Instantiates a new multiple dilaog upload.
|
||||
*/
|
||||
public MultipleDilaogUpload() {
|
||||
fileUploadID = GenerateUUID.get(10, 16); // is tagID
|
||||
fileUpload.getElement().setId(fileUploadID);
|
||||
public MultipleDilaogUpload(String fieldName) {
|
||||
this.fileUploadID = GenerateUUID.get(10, 16); // is tagID
|
||||
this.fileUpload.getElement().setId(fileUploadID);
|
||||
super.setFieldName(fieldName);
|
||||
this.addHandlers();
|
||||
}
|
||||
|
||||
|
@ -72,7 +73,8 @@ public class MultipleDilaogUpload extends DialogUpload {
|
|||
for (int i = 0; i < files.length; i++) {
|
||||
String normalizedFileName = files[i];
|
||||
if (normalizedFileName.contains("\\")) {
|
||||
files[i] = normalizedFileName.substring(normalizedFileName.lastIndexOf("\\") + 1); // remove C:\fakepath if exists
|
||||
files[i] = normalizedFileName.substring(normalizedFileName.lastIndexOf("\\") + 1); // remove C:\fakepath
|
||||
// if exists
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -85,6 +87,8 @@ public class MultipleDilaogUpload extends DialogUpload {
|
|||
FileUploaded fakeFile = new FileUploaded();
|
||||
fakeFile.setFileName(files[i]);
|
||||
fakeItem.setFile(fakeFile);
|
||||
fakeFile.setFilePaths(new FilePath(getFieldName())); // The Form Field Label is unique for single-multiple
|
||||
// upload
|
||||
fakeUploaders.add(fakeItem);
|
||||
}
|
||||
|
||||
|
@ -115,8 +119,7 @@ public class MultipleDilaogUpload extends DialogUpload {
|
|||
return;
|
||||
}
|
||||
String strippedResult = new HTML(result).getText();
|
||||
final HandlerResultMessage resultMessage = HandlerResultMessage
|
||||
.parseResult(strippedResult);
|
||||
final HandlerResultMessage resultMessage = HandlerResultMessage.parseResult(strippedResult);
|
||||
|
||||
switch (resultMessage.getStatus()) {
|
||||
case ERROR:
|
||||
|
@ -165,7 +168,7 @@ public class MultipleDilaogUpload extends DialogUpload {
|
|||
|
||||
@Override
|
||||
public void onChange(ChangeEvent event) {
|
||||
GWT.log("file upload change handler, browse return...");
|
||||
GWT.log("file upload change handler, browse returns...");
|
||||
if (fileUpload.getFilename() == null || fileUpload.getFilename().isEmpty()) {
|
||||
GWT.log("No file specified ");
|
||||
// MultipleDilaogUpload.this.hide();
|
||||
|
@ -199,11 +202,8 @@ public class MultipleDilaogUpload extends DialogUpload {
|
|||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Checks if is limit exceeded.
|
||||
*
|
||||
|
@ -213,9 +213,7 @@ public class MultipleDilaogUpload extends DialogUpload {
|
|||
public boolean isLimitExceeded(int numbOfFiles) {
|
||||
|
||||
if (numbOfFiles > ConstantsMPFormBuilder.LIMIT_UPLOADS) {
|
||||
Window.alert("Multiple upload limit is "
|
||||
+ ConstantsMPFormBuilder.LIMIT_UPLOADS
|
||||
+ " files");
|
||||
Window.alert("Multiple upload limit is " + ConstantsMPFormBuilder.LIMIT_UPLOADS + " files");
|
||||
// MultipleDilaogUpload.this.hide();
|
||||
return true;
|
||||
}
|
||||
|
@ -228,19 +226,20 @@ public class MultipleDilaogUpload extends DialogUpload {
|
|||
*/
|
||||
public void addNewSubmitToMonitor() {
|
||||
GWT.log("addNewSubmitToMonitor...");
|
||||
/*int queueIndex = UploaderMonitor.getInstance().newQueue();
|
||||
for (final WorkspaceUploaderItem workspaceUploaderItem : fakeUploaders) {
|
||||
UploaderMonitor.getInstance().addNewUploaderToMonitorPanel(workspaceUploaderItem, workspaceUploaderItem.getFile().getFileName());
|
||||
setVisible(false);
|
||||
removeLoading();
|
||||
UploaderMonitor.getInstance().addNewUploaderToQueue(queueIndex, workspaceUploaderItem);
|
||||
// UploaderMonitor.getInstance().pollWorkspaceUploader(workspaceUploaderItem);
|
||||
/*
|
||||
* int queueIndex = UploaderMonitor.getInstance().newQueue(); for (final
|
||||
* WorkspaceUploaderItem workspaceUploaderItem : fakeUploaders) {
|
||||
* UploaderMonitor.getInstance().addNewUploaderToMonitorPanel(
|
||||
* workspaceUploaderItem, workspaceUploaderItem.getFile().getFileName());
|
||||
* setVisible(false); removeLoading();
|
||||
* UploaderMonitor.getInstance().addNewUploaderToQueue(queueIndex,
|
||||
* workspaceUploaderItem); //
|
||||
* UploaderMonitor.getInstance().pollWorkspaceUploader(workspaceUploaderItem); }
|
||||
*
|
||||
* UploaderMonitor.getInstance().doStartPollingQueue(queueIndex);
|
||||
*/
|
||||
}
|
||||
|
||||
UploaderMonitor.getInstance().doStartPollingQueue(queueIndex);*/
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Creates the json key for files.
|
||||
*
|
||||
|
@ -257,7 +256,12 @@ public class MultipleDilaogUpload extends DialogUpload {
|
|||
for (int i = 0; i < fakeUploaders.size(); i++) {
|
||||
FileUploadingState file = fakeUploaders.get(i);
|
||||
JSONObject obj = new JSONObject();
|
||||
obj.put(file.getClientUploadKey(), new JSONString(file.getFile().getFileName()));
|
||||
// JSONObject innerObj = new JSONObject();
|
||||
obj.put(ConstantsMPFormBuilder.UPL_CLIENT_KEY, new JSONString(file.getClientUploadKey()));
|
||||
obj.put(ConstantsMPFormBuilder.UPL_FILENAME, new JSONString(file.getFile().getFileName()));
|
||||
obj.put(ConstantsMPFormBuilder.UPL_FIELD_NAME_FILEPATH, new JSONString(file.getFile().getFilePath().getFormFieldLabel()));
|
||||
// obj.put(file.getClientUploadKey(), new
|
||||
// JSONString(file.getFile().getFileName()));
|
||||
jsonArray.set(i, obj);
|
||||
}
|
||||
|
||||
|
@ -305,14 +309,11 @@ public class MultipleDilaogUpload extends DialogUpload {
|
|||
|
||||
}-*/;
|
||||
|
||||
|
||||
/**
|
||||
* Gets the files selected.
|
||||
*
|
||||
* @param tagId
|
||||
* the tag id
|
||||
* @param fileDelimiter
|
||||
* the file delimiter
|
||||
* @param tagId the tag id
|
||||
* @param fileDelimiter the file delimiter
|
||||
* @return the files selected
|
||||
*/
|
||||
public static native String getFilesSelected(final String tagId, final String fileDelimiter) /*-{
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
package org.gcube.portlets.widgets.mpformbuilder.server;
|
||||
|
||||
import org.gcube.portlets.widgets.mpformbuilder.client.ConstantsMPFormBuilder;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
public class JSONFileUploaded {
|
||||
|
||||
@JsonProperty(value = ConstantsMPFormBuilder.UPL_CLIENT_KEY)
|
||||
protected String clienKey;
|
||||
@JsonProperty(value = ConstantsMPFormBuilder.UPL_FILENAME)
|
||||
protected String fileName;
|
||||
|
||||
// THIS IS THE FIELD LABEL USED IN THE WEB-FORM
|
||||
// AND DECLARED IN THE FIELDNAME OF THE GCUBE METADATA PROFILE
|
||||
@JsonProperty(value = ConstantsMPFormBuilder.UPL_FIELD_NAME_FILEPATH)
|
||||
protected String fieldNameFilePath;
|
||||
|
||||
public JSONFileUploaded() {
|
||||
super();
|
||||
}
|
||||
|
||||
public String getClienKey() {
|
||||
return clienKey;
|
||||
}
|
||||
|
||||
public String getFileName() {
|
||||
return fileName;
|
||||
}
|
||||
|
||||
public String getFieldNameFilePath() {
|
||||
return fieldNameFilePath;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("JSONFileUploaded [clienKey=");
|
||||
builder.append(clienKey);
|
||||
builder.append(", fileName=");
|
||||
builder.append(fileName);
|
||||
builder.append(", fieldNameFilePath=");
|
||||
builder.append(fieldNameFilePath);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
}
|
|
@ -6,6 +6,8 @@ import java.util.HashMap;
|
|||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
import java.util.UUID;
|
||||
|
||||
import javax.xml.bind.JAXBException;
|
||||
|
||||
|
@ -19,6 +21,7 @@ import org.gcube.common.metadataprofilediscovery.jaxb.MetadataValidator;
|
|||
import org.gcube.common.metadataprofilediscovery.jaxb.MetadataVocabulary;
|
||||
import org.gcube.common.metadataprofilediscovery.jaxb.NamespaceCategory;
|
||||
import org.gcube.common.scope.api.ScopeProvider;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.server.util.WsUtil;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.shared.metadata.CategoryWrapper;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.shared.metadata.DataTypeWrapper;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.shared.metadata.FieldAsGroup;
|
||||
|
@ -75,6 +78,90 @@ public class MetadataDiscovery {
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the metadata profiles list.
|
||||
*
|
||||
* @param scope the scope
|
||||
* @param gRSecondaryType the g R secondary type
|
||||
* @param resourceName the resource name
|
||||
* @return the metadata profiles list
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
public static List<MetaDataProfileBean> getMetadataProfilesList(String scope, String gRSecondaryType, String resourceName)
|
||||
throws Exception {
|
||||
|
||||
List<MetaDataProfileBean> beans = new ArrayList<MetaDataProfileBean>();
|
||||
|
||||
LOG.debug("Discovering into scope " + scope);
|
||||
|
||||
String currentContext = ScopeProvider.instance.get();
|
||||
try {
|
||||
|
||||
ScopeProvider.instance.set(scope);
|
||||
|
||||
// TODO two reset methods could be added to force the reader to read again these
|
||||
// information (after a while)
|
||||
MetadataProfileReader reader = new MetadataProfileReader(gRSecondaryType, resourceName);
|
||||
|
||||
List<MetadataProfile> profiles = reader.getListOfMetadataProfiles();
|
||||
prettyPrintProfiles(profiles);
|
||||
LOG.info("Profiles are " + profiles.size());
|
||||
|
||||
List<NamespaceCategory> categories = reader.getListOfNamespaceCategories();
|
||||
if (categories == null)
|
||||
categories = new ArrayList<NamespaceCategory>();
|
||||
|
||||
LOG.debug("All Categories are " + categories);
|
||||
|
||||
for (MetadataProfile profile : profiles) {
|
||||
LOG.debug("Wrapping profile with name " + profile.getName() + " and type " + profile.getMetadataType());
|
||||
MetadataFormat metadata = reader.getMetadataFormatForMetadataProfile(profile);
|
||||
MetaDataProfileBean bean = toMetaDataProfileBean(metadata, categories, profile.getName());
|
||||
beans.add(bean);
|
||||
|
||||
if(!WsUtil.isWithinPortal()) {
|
||||
LOG.info("DEV MODE ENABLED - Out of portal!");
|
||||
randomizeCurrentValues(bean.getMetadataFields());
|
||||
}
|
||||
}
|
||||
|
||||
prettyPrintList(beans);
|
||||
LOG.info("Returning " + beans.size() + " profile/s");
|
||||
|
||||
} catch (Exception e) {
|
||||
LOG.error("Error while retrieving metadata beans ", e);
|
||||
throw new Exception("Failed to parse Types: " + e.getMessage());
|
||||
} finally {
|
||||
ScopeProvider.instance.set(currentContext);
|
||||
}
|
||||
|
||||
return beans;
|
||||
}
|
||||
|
||||
private static void randomizeCurrentValues(List<MetadataFieldWrapper> listFields) {
|
||||
LOG.info("DEV MODE ENABLED - Generationg random current value");
|
||||
for (MetadataFieldWrapper metadataFieldWrapper : listFields) {
|
||||
DataTypeWrapper dtw = metadataFieldWrapper.getType();
|
||||
|
||||
switch (dtw) {
|
||||
case Boolean:
|
||||
metadataFieldWrapper.setCurrentValue(Boolean.FALSE.toString());
|
||||
break;
|
||||
case Number:
|
||||
metadataFieldWrapper.setCurrentValue(new Random().nextInt()+"");
|
||||
break;
|
||||
case String:
|
||||
case Text:
|
||||
metadataFieldWrapper.setCurrentValue("Text "+UUID.randomUUID());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Gets the metadata profiles list.
|
||||
*
|
||||
|
@ -211,6 +298,7 @@ public class MetadataDiscovery {
|
|||
wrapperObj.setType(DataTypeWrapper.String);
|
||||
}
|
||||
wrapperObj.setDefaultValue(metadataField.getDefaultValue());
|
||||
wrapperObj.setFieldId(metadataField.getFieldId());
|
||||
wrapperObj.setFieldName(metadataField.getFieldName());
|
||||
wrapperObj.setMandatory(metadataField.getMandatory());
|
||||
wrapperObj.setNote(metadataField.getNote());
|
||||
|
|
|
@ -66,6 +66,40 @@ public class MetadataProfileFormBuilderServiceImpl extends RemoteServiceServlet
|
|||
return toReturn;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the profiles in the scope.
|
||||
*
|
||||
* @param scope the scope
|
||||
* @param genericResourceSecondaryType the generic resource secondary type
|
||||
* @param resourceName the resource name
|
||||
* @return the profiles in the scope
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
@Override
|
||||
public List<MetaDataProfileBean> getProfilesInTheScopeForName(String scope,String genericResourceSecondaryType, String resourceName) throws Exception {
|
||||
LOG.info("Called getProfilesInTheScope with parameter scope: " +scope+ ", genericResourceSecondaryType: "+genericResourceSecondaryType, "resourceName: "+resourceName);
|
||||
|
||||
if(genericResourceSecondaryType==null || genericResourceSecondaryType.isEmpty())
|
||||
throw new Exception("The input parameter 'genericResourceSecondaryType' is not valid");
|
||||
|
||||
if(resourceName==null || resourceName.isEmpty())
|
||||
throw new Exception("The input parameter 'resourceName' is not valid");
|
||||
|
||||
List<MetaDataProfileBean> toReturn = new ArrayList<MetaDataProfileBean>();
|
||||
try {
|
||||
|
||||
String evaluatedScope = scope == null || scope.isEmpty()?ScopeProvider.instance.get():scope;
|
||||
LOG.debug("Evaluated scope is " + scope);
|
||||
toReturn = MetadataDiscovery.getMetadataProfilesList(evaluatedScope, genericResourceSecondaryType, resourceName);
|
||||
} catch (Exception e) {
|
||||
LOG.error("Failed to retrieve profiles for scope " +scope, e);
|
||||
throw e;
|
||||
}
|
||||
|
||||
return toReturn;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the profile for metadata.
|
||||
*
|
||||
|
@ -132,7 +166,7 @@ public class MetadataProfileFormBuilderServiceImpl extends RemoteServiceServlet
|
|||
|
||||
|
||||
/**
|
||||
* Purge files uploaded in the current session
|
||||
* Purge files uploaded in the current session.
|
||||
*
|
||||
* @return number of files deleted. Null otherwise.
|
||||
* @throws Exception the exception
|
||||
|
|
|
@ -10,6 +10,7 @@ import java.io.InputStream;
|
|||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import javax.servlet.Servlet;
|
||||
|
@ -33,6 +34,7 @@ import org.gcube.common.portal.PortalContext;
|
|||
import org.gcube.portlets.widgets.mpformbuilder.client.ConstantsMPFormBuilder;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.server.util.WsUtil;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.shared.upload.AbstractUploadProgressListener;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.shared.upload.FilePath;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.shared.upload.FileUploaded;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.shared.upload.FileUploadingState;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.shared.upload.FileUploadingState.UPLOAD_STATUS;
|
||||
|
@ -49,6 +51,8 @@ import org.json.JSONTokener;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
|
||||
/**
|
||||
* The Class MetadataProfileBuilderUploadServlet.
|
||||
*
|
||||
|
@ -73,7 +77,8 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
/** The Constant CURR_GROUP_ID. */
|
||||
public static final String CURR_GROUP_ID = ConstantsMPFormBuilder.CURR_GROUP_ID;
|
||||
|
||||
//public static final String CURR_USER_ID = ConstantsWorkspaceUploader.CURR_USER_ID;
|
||||
// public static final String CURR_USER_ID =
|
||||
// ConstantsWorkspaceUploader.CURR_USER_ID;
|
||||
|
||||
/** The Constant UPLOAD_FORM_ELEMENT. */
|
||||
public static final String UPLOAD_FORM_ELEMENT = ConstantsMPFormBuilder.UPLOAD_FORM_ELEMENT;
|
||||
|
@ -90,6 +95,12 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
/** The Constant UPLOAD_TYPE. */
|
||||
public static final String UPLOAD_TYPE = ConstantsMPFormBuilder.UPLOAD_TYPE;
|
||||
|
||||
public static final String FIELD_NAME_FILEPATH = ConstantsMPFormBuilder.UPL_FIELD_NAME_FILEPATH;
|
||||
|
||||
public static final String FILENAME = ConstantsMPFormBuilder.UPL_FILENAME;
|
||||
|
||||
public static final String JSON_CLIENT_KEY = ConstantsMPFormBuilder.UPL_CLIENT_KEY;
|
||||
|
||||
/** The logger. */
|
||||
public static Logger logger = LoggerFactory.getLogger(MetadataProfileFormBuilderUploadServlet.class);
|
||||
|
||||
|
@ -147,9 +158,9 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
// }catch (Exception e) {
|
||||
// logger.warn("An error occurred during removing cancelled upload from session ");
|
||||
// }
|
||||
}
|
||||
else
|
||||
sendWarnMessage(response, "Upload aborted for id: "+clientUploadKey +" has skipped, already aborted or completed?");
|
||||
} else
|
||||
sendWarnMessage(response,
|
||||
"Upload aborted for id: " + clientUploadKey + " has skipped, already aborted or completed?");
|
||||
} else
|
||||
logger.debug(CANCEL_UPLOAD + " param not found");
|
||||
return;
|
||||
|
@ -161,7 +172,8 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||||
logger.info("POST on UploadServlet");
|
||||
boolean requestIsNull = request == null;
|
||||
logger.trace("[1] HttpServletRequest is: null? "+requestIsNull+", URI: "+request.getRequestURI() +", ServerName: "+request.getServerName());
|
||||
logger.trace("[1] HttpServletRequest is: null? " + requestIsNull + ", URI: " + request.getRequestURI()
|
||||
+ ", ServerName: " + request.getServerName());
|
||||
|
||||
if (!ServletFileUpload.isMultipartContent(request)) {
|
||||
logger.error("ERROR: multipart request not found");
|
||||
|
@ -183,6 +195,7 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
}
|
||||
|
||||
String uploadType = null;
|
||||
String fieldName = null;
|
||||
// String clientUploadKey = null;
|
||||
FileItemStream uploadItem = null;
|
||||
ArrayList<String> listClientUploadKeys = null;
|
||||
|
@ -192,9 +205,8 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
ServletFileUpload servletFileUpload = new ServletFileUpload(factory);
|
||||
|
||||
/**
|
||||
* An iterator to instances of <code>FileItemStream</code>
|
||||
* parsed from the request, in the order that they were
|
||||
*transmitted.
|
||||
* An iterator to instances of <code>FileItemStream</code> parsed from the
|
||||
* request, in the order that they were transmitted.
|
||||
*/
|
||||
FileItemIterator fileItemIterator = servletFileUpload.getItemIterator(request);
|
||||
|
||||
|
@ -206,7 +218,12 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
|
||||
if (item.isFormField() && UPLOAD_TYPE.equals(item.getFieldName())) {
|
||||
uploadType = Streams.asString(item.openStream());
|
||||
logger.debug("UPLOAD_TYPE OK " +uploadType);
|
||||
logger.debug(UPLOAD_TYPE + " OK " + uploadType);
|
||||
}
|
||||
|
||||
if (item.isFormField() && FIELD_NAME_FILEPATH.equals(item.getFieldName())) {
|
||||
fieldName = Streams.asString(item.openStream());
|
||||
logger.debug(FIELD_NAME_FILEPATH + " OK " + fieldName);
|
||||
}
|
||||
|
||||
// if (item.isFormField() && IS_OVERWRITE.equals(item.getFieldName())){
|
||||
|
@ -220,22 +237,30 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
|
||||
if (item.isFormField() && CLIENT_UPLOAD_KEYS.equals(item.getFieldName())) {
|
||||
String jsonClientUploadKey = Streams.asString(item.openStream());
|
||||
logger.debug("CLIENT_UPLOAD_KEY OK "+jsonClientUploadKey);
|
||||
LinkedHashMap<String, String> mapKeys = parseJSONClientUploadKeys(jsonClientUploadKey);
|
||||
logger.debug(CLIENT_UPLOAD_KEYS + " OK " + jsonClientUploadKey);
|
||||
LinkedHashMap<String, JSONFileUploaded> mapKeys = parseJSONClientUploadKeys(jsonClientUploadKey);
|
||||
listClientUploadKeys = new ArrayList<String>(mapKeys.keySet());
|
||||
removeListenersIfDone(session, listClientUploadKeys);
|
||||
for (String clientUploadKey : listClientUploadKeys) {
|
||||
String fileName = mapKeys.get(clientUploadKey);
|
||||
FileUploadingState workspaceUploader = createNewWorkspaceUploader(clientUploadKey,fileName, user.getUsername());
|
||||
JSONFileUploaded fileUploaded = mapKeys.get(clientUploadKey);
|
||||
logger.debug("Read file: " + fileUploaded);
|
||||
String fileName = fileUploaded.getFileName() != null ? fileUploaded.getFileName()
|
||||
: "No filename " + new Random().nextInt();
|
||||
fieldName = fileUploaded.getFieldNameFilePath() != null ? fileUploaded.getFieldNameFilePath()
|
||||
: fieldName;
|
||||
FileUploadingState workspaceUploader = createNewWorkspaceUploader(clientUploadKey, fileName,
|
||||
user.getUsername(), fieldName);
|
||||
logger.debug("created " + workspaceUploader);
|
||||
saveWorkspaceUploaderStatus(workspaceUploader, UPLOAD_STATUS.WAIT, "Uploading "+fileName+" at 0%", request.getSession());
|
||||
saveWorkspaceUploaderStatus(workspaceUploader, UPLOAD_STATUS.WAIT,
|
||||
"Uploading " + fileName + " at 0%", request.getSession());
|
||||
}
|
||||
}
|
||||
|
||||
if (item.isFormField() && CURR_GROUP_ID.equals(item.getFieldName())) {
|
||||
scopeGroupId = Streams.asString(item.openStream());
|
||||
logger.debug("currentGroupId passed as parameter = " + scopeGroupId);
|
||||
logger.debug("currentGroupId into PortalContext scope= " + PortalContext.getConfiguration().getCurrentScope(scopeGroupId));
|
||||
logger.debug("currentGroupId into PortalContext scope= "
|
||||
+ PortalContext.getConfiguration().getCurrentScope(scopeGroupId));
|
||||
}
|
||||
|
||||
// if (item.isFormField() && CURR_USER_ID.equals(item.getFieldName())){
|
||||
|
@ -249,7 +274,8 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
uploadItem = item;
|
||||
logger.debug("UPLOAD_FORM_ELEMENT OK " + uploadItem.getName() + " scopeGroupId=" + scopeGroupId);
|
||||
// break;
|
||||
uploadData(user, scopeGroupId, request, response, uploadItem, uploadType, listClientUploadKeys.get(uploadItemsCnt));
|
||||
uploadData(user, scopeGroupId, request, response, uploadItem, uploadType,
|
||||
listClientUploadKeys.get(uploadItemsCnt));
|
||||
uploadItemsCnt++;
|
||||
}
|
||||
}
|
||||
|
@ -265,7 +291,6 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Removes the listener if done.
|
||||
*
|
||||
|
@ -297,26 +322,31 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
* @throws FileUploadException the file upload exception
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
private static LinkedHashMap<String, String> parseJSONClientUploadKeys(final String jsonClientUploadKeys) throws FileUploadException{
|
||||
private static LinkedHashMap<String, JSONFileUploaded> parseJSONClientUploadKeys(final String jsonClientUploadKeys)
|
||||
throws FileUploadException {
|
||||
JSONTokener tokener = new JSONTokener(jsonClientUploadKeys);
|
||||
JSONObject root;
|
||||
LinkedHashMap<String, String> keyFiles = null;
|
||||
LinkedHashMap<String, JSONFileUploaded> keyFiles = null;
|
||||
try {
|
||||
|
||||
root = new JSONObject(tokener);
|
||||
JSONArray jsonArray = root.getJSONArray(JSON_CLIENT_KEYS);
|
||||
keyFiles = new LinkedHashMap<String, String>(jsonArray.length());
|
||||
keyFiles = new LinkedHashMap<String, JSONFileUploaded>(jsonArray.length());
|
||||
logger.debug("jsonArray :" + jsonArray.toString());
|
||||
for (int i = 0; i < jsonArray.length(); i++) {
|
||||
JSONObject object = jsonArray.getJSONObject(i);
|
||||
logger.debug("object :"+object);
|
||||
String key = (String) object.keys().next();
|
||||
String value = object.getString(key);
|
||||
logger.debug("key :"+key+", value: "+value);
|
||||
keyFiles.put(key, value);
|
||||
String objectString = jsonArray.getString(i);
|
||||
ObjectMapper om = new ObjectMapper();
|
||||
JSONFileUploaded jfu = om.readValue(objectString, JSONFileUploaded.class);
|
||||
keyFiles.put(jfu.clienKey, jfu);
|
||||
/*
|
||||
* JSONObject object = jsonArray.getJSONObject(i); logger.debug("object :" +
|
||||
* object); String key = (String) object.keys().next(); String value =
|
||||
* object.getString(key); logger.debug("key :" + key + ", value: " + value);
|
||||
* keyFiles.put(key, value);
|
||||
*/
|
||||
}
|
||||
|
||||
} catch (JSONException e) {
|
||||
} catch (JSONException | IOException e) {
|
||||
logger.error("An error occurred during parsing file names: " + keyFiles, e);
|
||||
throw new FileUploadException("An error occurred during parsing file names");
|
||||
}
|
||||
|
@ -325,7 +355,6 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
return keyFiles;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Upload data.
|
||||
*
|
||||
|
@ -339,10 +368,13 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
* @throws ServletException the servlet exception
|
||||
* @throws IOException Signals that an I/O exception has occurred.
|
||||
*/
|
||||
private void uploadData(GCubeUser user, String scopeGroupId, HttpServletRequest request, final HttpServletResponse response, final FileItemStream uploadItem, String uploadType,String clientUploadKey) throws ServletException, IOException{
|
||||
private void uploadData(GCubeUser user, String scopeGroupId, HttpServletRequest request,
|
||||
final HttpServletResponse response, final FileItemStream uploadItem, String uploadType,
|
||||
String clientUploadKey) throws ServletException, IOException {
|
||||
|
||||
String fileName = uploadItem.getName();
|
||||
logger.info("Upload servlet parameters: [fileName: "+fileName+ ", uploadType: "+uploadType+", clientUploadKey: "+clientUploadKey+"]");
|
||||
logger.info("Upload servlet parameters: [fileName: " + fileName + ", uploadType: " + uploadType
|
||||
+ ", clientUploadKey: " + clientUploadKey + "]");
|
||||
|
||||
if (uploadType == null || uploadType.isEmpty()) {
|
||||
logger.error("Error processing request in upload servlet for: " + fileName + ". No upload type found");
|
||||
|
@ -351,7 +383,8 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
}
|
||||
|
||||
if (clientUploadKey == null || clientUploadKey.isEmpty()) {
|
||||
logger.error("Error processing request in upload servlet for: "+fileName+". No client upload key found");
|
||||
logger.error(
|
||||
"Error processing request in upload servlet for: " + fileName + ". No client upload key found");
|
||||
sendError(response, "Internal error: No client upload key found");
|
||||
return;
|
||||
}
|
||||
|
@ -367,8 +400,11 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
workspaceUploader = WsUtil.getWorkspaceUploaderInSession(request, clientUploadKey);
|
||||
} catch (Exception e) {
|
||||
logger.error("Error during workspace uploader retrieving", e);
|
||||
saveWorkspaceUploaderStatus(workspaceUploader, UPLOAD_STATUS.FAILED, "An error occurred during upload: "+fileName+". Error processing request in upload servlet", request.getSession());
|
||||
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Error processing request in upload servlet");
|
||||
saveWorkspaceUploaderStatus(workspaceUploader, UPLOAD_STATUS.FAILED,
|
||||
"An error occurred during upload: " + fileName + ". Error processing request in upload servlet",
|
||||
request.getSession());
|
||||
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
|
||||
"Error processing request in upload servlet");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -392,7 +428,8 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
logger.debug("size: " + size + " bytes");
|
||||
|
||||
// Instancing the progress listener
|
||||
final AbstractUploadProgressListener uploadProgressListener = createNewListener(request.getSession(), clientUploadKey);
|
||||
final AbstractUploadProgressListener uploadProgressListener = createNewListener(request.getSession(),
|
||||
clientUploadKey);
|
||||
final UploadProgressInputStream inputStream = new UploadProgressInputStream(uploadItem.openStream(), size);
|
||||
inputStream.addListener(uploadProgressListener);
|
||||
workspaceUploader.setUploadProgress(uploadProgressListener.getUploadProgress());
|
||||
|
@ -404,7 +441,8 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
|
||||
// UPLOAD FILE. IT IS DEFAULT CASE
|
||||
logger.debug("Uploading file in the TEMP system folder...");
|
||||
workspaceUploader = createStreamToTempFile(request, workspaceUploader, inputStream, user.getUsername(), clientUploadKey, fileName, extension);
|
||||
workspaceUploader = createStreamToTempFile(request, workspaceUploader, inputStream, user.getUsername(),
|
||||
clientUploadKey, fileName, extension);
|
||||
|
||||
saveWorkspaceUploaderInSession(workspaceUploader, request.getSession());
|
||||
|
||||
|
@ -412,22 +450,23 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
throw new Exception("Error when creating uploader, it is null!");
|
||||
|
||||
/*
|
||||
* Incident #10095. Commented OK as response
|
||||
* in order to avoid downloading of .dms file by Safari
|
||||
* from MAC
|
||||
* Incident #10095. Commented OK as response in order to avoid downloading of
|
||||
* .dms file by Safari from MAC
|
||||
*/
|
||||
// sendMessage(response, workspaceUploader.getIdentifier());
|
||||
|
||||
} catch (IOException e) {
|
||||
logger.error("Error creating elements, is it cancel?", e);
|
||||
saveWorkspaceUploaderStatus(workspaceUploader, UPLOAD_STATUS.FAILED, "Uploading error", request.getSession());
|
||||
saveWorkspaceUploaderStatus(workspaceUploader, UPLOAD_STATUS.FAILED, "Uploading error",
|
||||
request.getSession());
|
||||
sendError(response, "Internal error: An item with that name already exists");
|
||||
return;
|
||||
// sendError(response, "Internal error: An item with that name already exists");
|
||||
// return;
|
||||
} catch (Exception e) {
|
||||
logger.error("Error creating elements", e);
|
||||
saveWorkspaceUploaderStatus(workspaceUploader, UPLOAD_STATUS.FAILED, "Uploading error. "+e.getMessage(), request.getSession());
|
||||
saveWorkspaceUploaderStatus(workspaceUploader, UPLOAD_STATUS.FAILED, "Uploading error. " + e.getMessage(),
|
||||
request.getSession());
|
||||
// sendError(response, "Internal error: An error occurred on uploading the file, try again later");
|
||||
// return;
|
||||
} finally {
|
||||
|
@ -436,7 +475,6 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Save workspace uploader status.
|
||||
*
|
||||
|
@ -446,7 +484,8 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
* @param session the session
|
||||
* @return the workspace uploader item
|
||||
*/
|
||||
private synchronized FileUploadingState saveWorkspaceUploaderStatus(FileUploadingState workspaceUploader, UPLOAD_STATUS status, String description, HttpSession session){
|
||||
private synchronized FileUploadingState saveWorkspaceUploaderStatus(FileUploadingState workspaceUploader,
|
||||
UPLOAD_STATUS status, String description, HttpSession session) {
|
||||
workspaceUploader.setUploadStatus(status);
|
||||
workspaceUploader.setStatusDescription(description);
|
||||
try {
|
||||
|
@ -457,20 +496,22 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
return workspaceUploader;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Creates the new workspace uploader.
|
||||
*
|
||||
* @param clientUploadKey the client upload key
|
||||
* @param fileName the file name
|
||||
* @param user the user
|
||||
* @param formFieldName the form field name
|
||||
* @return the workspace uploader item
|
||||
*/
|
||||
private FileUploadingState createNewWorkspaceUploader(String clientUploadKey, String fileName, String user){
|
||||
private FileUploadingState createNewWorkspaceUploader(String clientUploadKey, String fileName, String user,
|
||||
String formFieldName) {
|
||||
// CLIENT UPLOAD IS THE KEY
|
||||
FileUploadingState workspaceUploader = new FileUploadingState(clientUploadKey);
|
||||
workspaceUploader.setClientUploadKey(clientUploadKey);
|
||||
// Create File
|
||||
FileUploaded wsUploadFile = new FileUploaded(fileName, null, user);
|
||||
FileUploaded wsUploadFile = new FileUploaded(fileName, null, user, new FilePath(formFieldName));
|
||||
workspaceUploader.setFile(wsUploadFile);
|
||||
return workspaceUploader;
|
||||
}
|
||||
|
@ -483,24 +524,26 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
* @return the workspace uploader item
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
public static void saveWorkspaceUploaderInSession(FileUploadingState workspaceUploader, HttpSession httpSession) throws Exception {
|
||||
public static void saveWorkspaceUploaderInSession(FileUploadingState workspaceUploader, HttpSession httpSession)
|
||||
throws Exception {
|
||||
|
||||
if (workspaceUploader != null) {
|
||||
try {
|
||||
WsUtil.putWorkspaceUploaderInSession(httpSession, workspaceUploader);
|
||||
} catch (Exception e) {
|
||||
logger.error("Error during WorkspaceUploaderItem save in session workspace uploader: "+workspaceUploader,e);
|
||||
logger.error(
|
||||
"Error during WorkspaceUploaderItem save in session workspace uploader: " + workspaceUploader,
|
||||
e);
|
||||
throw new Exception("An error occurred in the upload. Try again");
|
||||
}
|
||||
} else
|
||||
throw new Exception("An error occurred in the upload. Workspace Uploader not found. Abort and try again");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Creates the stream to temp file.
|
||||
* @param request
|
||||
*
|
||||
* @param request the request
|
||||
* @param workspaceUploader the workspace uploader
|
||||
* @param in the in
|
||||
* @param username the username
|
||||
|
@ -510,7 +553,9 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
* @return the workspace uploader item
|
||||
* @throws IOException Signals that an I/O exception has occurred.
|
||||
*/
|
||||
public FileUploadingState createStreamToTempFile(HttpServletRequest request, FileUploadingState workspaceUploader, InputStream in, String username, String clientUploadKey, String fileName, String fileExtension) throws IOException{
|
||||
public FileUploadingState createStreamToTempFile(HttpServletRequest request, FileUploadingState workspaceUploader,
|
||||
InputStream in, String username, String clientUploadKey, String fileName, String fileExtension)
|
||||
throws IOException {
|
||||
|
||||
if (fileExtension == null)
|
||||
fileExtension = "";
|
||||
|
@ -547,7 +592,6 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Save file uploded in session.
|
||||
*
|
||||
|
@ -556,7 +600,8 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
*/
|
||||
private void saveFileUplodedInSession(FileUploaded fileUploaded, HttpSession httpSession) {
|
||||
if (fileUploaded != null) {
|
||||
List<FileUploaded> listFiles = (List<FileUploaded>) httpSession.getAttribute(ConstantsMPFormBuilder.FILE_UPLOADED_SESSION_ATTR);
|
||||
List<FileUploaded> listFiles = (List<FileUploaded>) httpSession
|
||||
.getAttribute(ConstantsMPFormBuilder.FILE_UPLOADED_SESSION_ATTR);
|
||||
|
||||
if (listFiles == null)
|
||||
listFiles = new ArrayList<FileUploaded>();
|
||||
|
@ -578,6 +623,7 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
logger.debug("Start time: " + startTime);
|
||||
return startTime;
|
||||
}
|
||||
|
||||
// TEST TIME
|
||||
/**
|
||||
* Prints the elapsed time.
|
||||
|
@ -603,7 +649,8 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
HandlerResultMessage resultMessage = HandlerResultMessage.errorResult(message);
|
||||
response.getWriter().write(resultMessage.toString());
|
||||
// 5.6 Closure of Response Object:
|
||||
//When a response is closed, the container must immediately flush all remaining content in the response buffer to the client
|
||||
// When a response is closed, the container must immediately flush all remaining
|
||||
// content in the response buffer to the client
|
||||
// response.flushBuffer();
|
||||
} catch (IOException e) {
|
||||
logger.warn("IOException class name: " + e.getClass().getSimpleName());
|
||||
|
@ -614,7 +661,6 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Send session expired.
|
||||
*
|
||||
|
@ -628,7 +674,8 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
HandlerResultMessage resultMessage = HandlerResultMessage.sessionExpiredResult(message);
|
||||
response.getWriter().write(resultMessage.toString());
|
||||
// 5.6 Closure of Response Object:
|
||||
//When a response is closed, the container must immediately flush all remaining content in the response buffer to the client
|
||||
// When a response is closed, the container must immediately flush all remaining
|
||||
// content in the response buffer to the client
|
||||
// response.flushBuffer();
|
||||
} catch (IOException e) {
|
||||
logger.warn("IOException class name: " + e.getClass().getSimpleName());
|
||||
|
@ -653,7 +700,8 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
HandlerResultMessage resultMessage = HandlerResultMessage.okResult(message);
|
||||
response.getWriter().write(resultMessage.toString());
|
||||
// 5.6 Closure of Response Object:
|
||||
//When a response is closed, the container must immediately flush all remaining content in the response buffer to the client
|
||||
// When a response is closed, the container must immediately flush all remaining
|
||||
// content in the response buffer to the client
|
||||
// response.flushBuffer();
|
||||
} catch (IOException e) {
|
||||
logger.warn("IOException class name: " + e.getClass().getSimpleName());
|
||||
|
@ -677,7 +725,8 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
HandlerResultMessage resultMessage = HandlerResultMessage.warnResult(message);
|
||||
response.getWriter().write(resultMessage.toString());
|
||||
// 5.6 Closure of Response Object:
|
||||
//When a response is closed, the container must immediately flush all remaining content in the response buffer to the client
|
||||
// When a response is closed, the container must immediately flush all remaining
|
||||
// content in the response buffer to the client
|
||||
// response.flushBuffer();
|
||||
} catch (IOException e) {
|
||||
logger.warn("IOException class name: " + e.getClass().getSimpleName());
|
||||
|
@ -724,8 +773,8 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
}
|
||||
|
||||
/**
|
||||
* Just a method to detect whether the web container is running with
|
||||
* appengine restrictions.
|
||||
* Just a method to detect whether the web container is running with appengine
|
||||
* restrictions.
|
||||
*
|
||||
* @return true if the case of the application is running in appengine
|
||||
*/
|
||||
|
@ -748,7 +797,6 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the content length.
|
||||
*
|
||||
|
@ -758,8 +806,7 @@ public class MetadataProfileFormBuilderUploadServlet extends HttpServlet impleme
|
|||
private long getContentLength(HttpServletRequest request) {
|
||||
long size = -1;
|
||||
try {
|
||||
size = Long.parseLong(request
|
||||
.getHeader(FileUploadBase.CONTENT_LENGTH));
|
||||
size = Long.parseLong(request.getHeader(FileUploadBase.CONTENT_LENGTH));
|
||||
} catch (NumberFormatException e) {
|
||||
}
|
||||
return size;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package org.gcube.portlets.widgets.mpformbuilder.shared;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.gcube.portlets.widgets.mpformbuilder.shared.metadata.MetaDataProfileBean;
|
||||
import org.gcube.portlets.widgets.mpformbuilder.shared.upload.FileUploaded;
|
||||
|
@ -25,7 +25,7 @@ public class GenericDatasetBean implements Serializable {
|
|||
private List<MetaDataProfileBean> metadataProfileList;
|
||||
|
||||
/** The form data entry fields. */
|
||||
private Map<String, List<String>> formDataEntryFields;
|
||||
private LinkedHashMap<String, List<String>> formDataEntryFields;
|
||||
|
||||
/** The files uploaded. */
|
||||
private List<FileUploaded> filesUploaded;
|
||||
|
@ -44,7 +44,7 @@ public class GenericDatasetBean implements Serializable {
|
|||
* @param formDataEntryFields the form data entry fields
|
||||
* @param filesUploaded the files uploaded
|
||||
*/
|
||||
public GenericDatasetBean(List<MetaDataProfileBean> metadataProfileList, Map<String, List<String>> formDataEntryFields,
|
||||
public GenericDatasetBean(List<MetaDataProfileBean> metadataProfileList, LinkedHashMap<String, List<String>> formDataEntryFields,
|
||||
List<FileUploaded> filesUploaded) {
|
||||
super();
|
||||
this.metadataProfileList = metadataProfileList;
|
||||
|
@ -78,7 +78,7 @@ public class GenericDatasetBean implements Serializable {
|
|||
*
|
||||
* @return the form data entry fields
|
||||
*/
|
||||
public Map<String, List<String>> getFormDataEntryFields() {
|
||||
public LinkedHashMap<String, List<String>> getFormDataEntryFields() {
|
||||
return formDataEntryFields;
|
||||
}
|
||||
|
||||
|
@ -88,7 +88,7 @@ public class GenericDatasetBean implements Serializable {
|
|||
*
|
||||
* @param formDataEntryFields the form data entry fields
|
||||
*/
|
||||
public void setFormDataEntryFields(Map<String, List<String>> formDataEntryFields) {
|
||||
public void setFormDataEntryFields(LinkedHashMap<String, List<String>> formDataEntryFields) {
|
||||
this.formDataEntryFields = formDataEntryFields;
|
||||
}
|
||||
|
||||
|
|
|
@ -3,22 +3,40 @@ package org.gcube.portlets.widgets.mpformbuilder.shared.metadata;
|
|||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* A MetaDataProfileBean with its children (MetaDataType, MetaDataFields, Categories)
|
||||
* @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it)
|
||||
* The Class MetaDataProfileBean.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
||||
*
|
||||
* Mar 3, 2022
|
||||
*/
|
||||
public class MetaDataProfileBean implements Serializable{
|
||||
|
||||
private static final long serialVersionUID = -7377022025375553568L;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -8307518917648131477L;
|
||||
private String type;
|
||||
private String title;
|
||||
private List<CategoryWrapper> categories;
|
||||
private List<MetadataFieldWrapper> metadataFields;
|
||||
|
||||
/**
|
||||
* Instantiates a new meta data profile bean.
|
||||
*/
|
||||
public MetaDataProfileBean(){
|
||||
super();
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a new meta data profile bean.
|
||||
*
|
||||
* @param type the type
|
||||
* @param title the title
|
||||
* @param metadataFields the metadata fields
|
||||
* @param categories the categories
|
||||
*/
|
||||
public MetaDataProfileBean(String type,
|
||||
String title,
|
||||
List<MetadataFieldWrapper> metadataFields,
|
||||
|
@ -31,43 +49,82 @@ public class MetaDataProfileBean implements Serializable{
|
|||
}
|
||||
|
||||
/**
|
||||
* Gets the type.
|
||||
*
|
||||
* @return the type
|
||||
*/
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the type.
|
||||
*
|
||||
* @param type the type to set
|
||||
*/
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the metadata fields.
|
||||
*
|
||||
* @return the metadataFields
|
||||
*/
|
||||
public List<MetadataFieldWrapper> getMetadataFields() {
|
||||
return metadataFields;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the metadata fields.
|
||||
*
|
||||
* @param metadataFields the metadataFields to set
|
||||
*/
|
||||
public void setMetadataFields(List<MetadataFieldWrapper> metadataFields) {
|
||||
this.metadataFields = metadataFields;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the categories.
|
||||
*
|
||||
* @return the categories
|
||||
*/
|
||||
public List<CategoryWrapper> getCategories() {
|
||||
return categories;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the categories.
|
||||
*
|
||||
* @param categories the new categories
|
||||
*/
|
||||
public void setCategories(List<CategoryWrapper> categories) {
|
||||
this.categories = categories;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the title.
|
||||
*
|
||||
* @return the title
|
||||
*/
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the title.
|
||||
*
|
||||
* @param title the new title
|
||||
*/
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
/**
|
||||
* To string.
|
||||
*
|
||||
* @return the string
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
final int maxLen = 10;
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
package org.gcube.portlets.widgets.mpformbuilder.shared.metadata;
|
||||
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* The Class MetadataFieldWrapper.
|
||||
* @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it)
|
||||
*
|
||||
* @author francesco-mangiacrapa at ISTI-CNR (costantino.perciante@isti.cnr.it)
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
||||
*
|
||||
* Mar 3, 2022
|
||||
*/
|
||||
public class MetadataFieldWrapper implements Serializable{
|
||||
public class MetadataFieldWrapper implements UpdatableField, Serializable {
|
||||
|
||||
private static final long serialVersionUID = -8476731365884466698L;
|
||||
private String fieldId;
|
||||
private String fieldName;
|
||||
private String fieldNameFromCategory;
|
||||
private Boolean mandatory = false;
|
||||
|
@ -28,6 +29,8 @@ public class MetadataFieldWrapper implements Serializable{
|
|||
|
||||
private Integer maxOccurs = 1;
|
||||
|
||||
private String currentValue;
|
||||
|
||||
/**
|
||||
* Instantiates a new metadata field.
|
||||
*/
|
||||
|
@ -36,8 +39,10 @@ public class MetadataFieldWrapper implements Serializable{
|
|||
}
|
||||
|
||||
/**
|
||||
* Instantiates a new metadata field.
|
||||
* Instantiates a new metadata field wrapper.
|
||||
*
|
||||
* @param fieldId the field id (optional) if present is used instead of
|
||||
* fieldName as result
|
||||
* @param fieldName the field name
|
||||
* @param mandatory the mandatory
|
||||
* @param type the type
|
||||
|
@ -47,11 +52,10 @@ public class MetadataFieldWrapper implements Serializable{
|
|||
* @param validator the validator
|
||||
* @param category the category
|
||||
*/
|
||||
public MetadataFieldWrapper(
|
||||
String fieldName, Boolean mandatory, DataTypeWrapper type,
|
||||
String defaultValue, String note, List<String> vocabulary,
|
||||
String validator, CategoryWrapper category) {
|
||||
public MetadataFieldWrapper(String fieldId, String fieldName, Boolean mandatory, DataTypeWrapper type,
|
||||
String defaultValue, String note, List<String> vocabulary, String validator, CategoryWrapper category) {
|
||||
super();
|
||||
this.fieldId = fieldId;
|
||||
this.fieldName = fieldName;
|
||||
this.mandatory = mandatory;
|
||||
this.type = type;
|
||||
|
@ -62,8 +66,6 @@ public class MetadataFieldWrapper implements Serializable{
|
|||
this.ownerCategory = category;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Gets the max occurs.
|
||||
*
|
||||
|
@ -82,10 +84,28 @@ public class MetadataFieldWrapper implements Serializable{
|
|||
this.maxOccurs = maxOccurs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the field id.
|
||||
*
|
||||
* @return the field id
|
||||
*/
|
||||
public String getFieldId() {
|
||||
return fieldId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the field id.
|
||||
*
|
||||
* @param fieldId the new field id
|
||||
*/
|
||||
public void setFieldId(String fieldId) {
|
||||
this.fieldId = fieldId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the field name.
|
||||
*
|
||||
* @return the fieldName
|
||||
* @return the serviceFieldName
|
||||
*/
|
||||
public String getFieldName() {
|
||||
|
||||
|
@ -145,7 +165,7 @@ public class MetadataFieldWrapper implements Serializable{
|
|||
/**
|
||||
* Sets the field name.
|
||||
*
|
||||
* @param fieldName the fieldName to set
|
||||
* @param fieldName the new field name
|
||||
*/
|
||||
public void setFieldName(String fieldName) {
|
||||
|
||||
|
@ -310,30 +330,62 @@ public class MetadataFieldWrapper implements Serializable{
|
|||
this.asTag = asTag;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see java.lang.Object#toString()
|
||||
/**
|
||||
* Sets the current value.
|
||||
*
|
||||
* @param value the new current value
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
return "MetadataFieldWrapper ["
|
||||
+ (fieldName != null ? "fieldName=" + fieldName + ", " : "")
|
||||
+ (fieldNameFromCategory != null ? "fieldNameFromCategory="
|
||||
+ fieldNameFromCategory + ", " : "")
|
||||
+ (mandatory != null ? "mandatory=" + mandatory + ", " : "")
|
||||
+ (maxOccurs != null ? "maxOccurs=" + maxOccurs + ", " : "")
|
||||
+ (type != null ? "type=" + type + ", " : "")
|
||||
+ (defaultValue != null ? "defaultValue=" + defaultValue + ", "
|
||||
: "")
|
||||
+ (note != null ? "note=" + note + ", " : "")
|
||||
+ (vocabulary != null ? "vocabulary=" + vocabulary + ", " : "")
|
||||
+ "multiSelection="
|
||||
+ multiSelection
|
||||
+ ", "
|
||||
+ (validator != null ? "validator=" + validator + ", " : "")
|
||||
+ (ownerCategory != null ? "ownerCategory=" + ownerCategory.getId()
|
||||
+ ", " : "")
|
||||
+ (asGroup != null ? "asGroup=" + asGroup + ", " : "")
|
||||
+ (asTag != null ? "asTag=" + asTag : "") + "]";
|
||||
}
|
||||
public void setCurrentValue(String value) {
|
||||
this.currentValue = value;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the current value.
|
||||
*
|
||||
* @return the current value
|
||||
*/
|
||||
public String getCurrentValue() {
|
||||
return currentValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("MetadataFieldWrapper [fieldId=");
|
||||
builder.append(fieldId);
|
||||
builder.append(", fieldName=");
|
||||
builder.append(fieldName);
|
||||
builder.append(", fieldNameFromCategory=");
|
||||
builder.append(fieldNameFromCategory);
|
||||
builder.append(", mandatory=");
|
||||
builder.append(mandatory);
|
||||
builder.append(", type=");
|
||||
builder.append(type);
|
||||
builder.append(", defaultValue=");
|
||||
builder.append(defaultValue);
|
||||
builder.append(", note=");
|
||||
builder.append(note);
|
||||
builder.append(", vocabulary=");
|
||||
builder.append(vocabulary);
|
||||
builder.append(", multiSelection=");
|
||||
builder.append(multiSelection);
|
||||
builder.append(", validator=");
|
||||
builder.append(validator);
|
||||
builder.append(", ownerCategory=");
|
||||
builder.append(ownerCategory);
|
||||
builder.append(", asGroup=");
|
||||
builder.append(asGroup);
|
||||
builder.append(", asTag=");
|
||||
builder.append(asTag);
|
||||
builder.append(", maxOccurs=");
|
||||
builder.append(maxOccurs);
|
||||
builder.append(", currentValue=");
|
||||
builder.append(currentValue);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
package org.gcube.portlets.widgets.mpformbuilder.shared.metadata;
|
||||
|
||||
public interface UpdatableField {
|
||||
|
||||
void setCurrentValue(String value);
|
||||
|
||||
String getCurrentValue();
|
||||
}
|
|
@ -0,0 +1,67 @@
|
|||
package org.gcube.portlets.widgets.mpformbuilder.shared.upload;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* The Class FilePath.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
||||
*
|
||||
* Mar 21, 2022
|
||||
*/
|
||||
public class FilePath implements Serializable {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 5321133561716734223L;
|
||||
String formFieldLabel; // is the gcubeProfileFieldName in the UCD of Geoportal
|
||||
|
||||
/**
|
||||
* Instantiates a new file paths.
|
||||
*/
|
||||
public FilePath() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a new file path.
|
||||
*
|
||||
* @param formFieldLabel the form field label
|
||||
*/
|
||||
public FilePath(String formFieldLabel) {
|
||||
this.formFieldLabel = formFieldLabel;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the form field label.
|
||||
*
|
||||
* @return the form field label
|
||||
*/
|
||||
public String getFormFieldLabel() {
|
||||
return formFieldLabel;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the form field label.
|
||||
*
|
||||
* @param formFieldLabel the new form field label
|
||||
*/
|
||||
public void setFormFieldLabel(String formFieldLabel) {
|
||||
this.formFieldLabel = formFieldLabel;
|
||||
}
|
||||
|
||||
/**
|
||||
* To string.
|
||||
*
|
||||
* @return the string
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("FilePath [formFieldLabel=");
|
||||
builder.append(formFieldLabel);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
}
|
|
@ -7,7 +7,6 @@ import java.io.Serializable;
|
|||
|
||||
import com.google.gwt.user.client.rpc.IsSerializable;
|
||||
|
||||
|
||||
/**
|
||||
* The Class FileUploaded.
|
||||
*
|
||||
|
@ -17,11 +16,10 @@ import com.google.gwt.user.client.rpc.IsSerializable;
|
|||
*/
|
||||
public class FileUploaded implements Serializable, IsSerializable {
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -7869956386977214114L;
|
||||
private static final long serialVersionUID = -6666006742990360875L;
|
||||
|
||||
/** The file name. */
|
||||
private String fileName;
|
||||
|
@ -31,25 +29,28 @@ public class FileUploaded implements Serializable, IsSerializable{
|
|||
|
||||
private String createdByUser;
|
||||
|
||||
private FilePath filePath;
|
||||
|
||||
/**
|
||||
* Instantiates a new workspace upload file.
|
||||
*/
|
||||
public FileUploaded() {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Instantiates a new workspace upload file.
|
||||
* Instantiates a new file uploaded.
|
||||
*
|
||||
* @param fileName the file name
|
||||
* @param tempSystemPath the temp system path
|
||||
* @param createdByUser the created by user
|
||||
* @param filePath the file path
|
||||
*/
|
||||
public FileUploaded(String fileName, String tempSystemPath, String createdByUser) {
|
||||
public FileUploaded(String fileName, String tempSystemPath, String createdByUser, FilePath filePath) {
|
||||
super();
|
||||
this.fileName = fileName;
|
||||
this.tempSystemPath = tempSystemPath;
|
||||
this.createdByUser = createdByUser;
|
||||
this.filePath = filePath;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -61,8 +62,6 @@ public class FileUploaded implements Serializable, IsSerializable{
|
|||
return fileName;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Sets the file name.
|
||||
*
|
||||
|
@ -72,8 +71,6 @@ public class FileUploaded implements Serializable, IsSerializable{
|
|||
this.fileName = fileName;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Gets the temp system path.
|
||||
*
|
||||
|
@ -83,8 +80,6 @@ public class FileUploaded implements Serializable, IsSerializable{
|
|||
return tempSystemPath;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Sets the temp system path.
|
||||
*
|
||||
|
@ -94,8 +89,6 @@ public class FileUploaded implements Serializable, IsSerializable{
|
|||
this.tempSystemPath = tempSystemPath;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Gets the created by user.
|
||||
*
|
||||
|
@ -105,8 +98,6 @@ public class FileUploaded implements Serializable, IsSerializable{
|
|||
return createdByUser;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Sets the created by user.
|
||||
*
|
||||
|
@ -116,7 +107,29 @@ public class FileUploaded implements Serializable, IsSerializable{
|
|||
this.createdByUser = createdByUser;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the file paths.
|
||||
*
|
||||
* @return the file paths
|
||||
*/
|
||||
public FilePath getFilePath() {
|
||||
return filePath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the file paths.
|
||||
*
|
||||
* @param filePaths the new file paths
|
||||
*/
|
||||
public void setFilePaths(FilePath filePaths) {
|
||||
this.filePath = filePaths;
|
||||
}
|
||||
|
||||
/**
|
||||
* To string.
|
||||
*
|
||||
* @return the string
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
|
@ -126,6 +139,8 @@ public class FileUploaded implements Serializable, IsSerializable{
|
|||
builder.append(tempSystemPath);
|
||||
builder.append(", createdByUser=");
|
||||
builder.append(createdByUser);
|
||||
builder.append(", filePath=");
|
||||
builder.append(filePath);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue