diff --git a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/CreateDatasetForm.java b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/CreateDatasetForm.java index b3ed466..90f65ba 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/CreateDatasetForm.java +++ b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/CreateDatasetForm.java @@ -130,6 +130,9 @@ public class CreateDatasetForm extends Composite{ @UiField Icon infoIconTags; @UiField FocusPanel focusPanelTags; @UiField Popover popoverTags; + @UiField Icon infoIconLicenses; + @UiField FocusPanel focusPanelLicenses; + @UiField Popover popoverLicenses; @UiField Icon infoIconVisibility; @UiField FocusPanel focusPanelVisibility; @UiField Popover popoverVisibility; @@ -808,6 +811,16 @@ public class CreateDatasetForm extends Composite{ popoverTags, focusPanelTags ); + + // licenses + preparePopupPanelAndPopover( + InfoIconsLabels.LICENSES_INFO_ID_POPUP, + InfoIconsLabels.LICENSES_INFO_TEXT, + InfoIconsLabels.LICENSES_INFO_CAPTION, + infoIconLicenses, + popoverLicenses, + focusPanelLicenses + ); // visibility preparePopupPanelAndPopover( @@ -899,8 +912,10 @@ public class CreateDatasetForm extends Composite{ for (MetaDataFieldSkeleton field : listOfMetadataFields) { - if(!field.isFieldValueValid()) - return field.getFieldName() + " is not valid"; + String error = field.isFieldValueValid(); + if(error != null){ + return field.getFieldName() + " is not valid. Suggestion: " + error; + } } return null; @@ -957,7 +972,7 @@ public class CreateDatasetForm extends Composite{ } }; - t.schedule(4000); + t.schedule(10000); } /** diff --git a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/CreateDatasetForm.ui.xml b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/CreateDatasetForm.ui.xml index 95f0de2..f6e1a1f 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/CreateDatasetForm.ui.xml +++ b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/CreateDatasetForm.ui.xml @@ -109,6 +109,14 @@ + + + + + + + diff --git a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/MetaDataFieldSkeleton.java b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/MetaDataFieldSkeleton.java index b5193cb..2f44ec2 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/MetaDataFieldSkeleton.java +++ b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/MetaDataFieldSkeleton.java @@ -213,32 +213,29 @@ public class MetaDataFieldSkeleton extends Composite{ /** * Check if this field has a valid values - * @return + * @return a string with the occurred error on error, null otherwise */ - public boolean isFieldValueValid(){ - - GWT.log("Validator is " + field.getValidator()); - GWT.log("Is mandatory? " + field.getMandatory()); + public String isFieldValueValid(){ if(field.getMandatory()){ if(holder.getClass().equals(TextBox.class)){ if(!getFieldCurrentValue().isEmpty()) if(field.getValidator() == null || field.getValidator().isEmpty()) - return true; - else return checkValidator(holder, field); + return null; + else return checkValidator(holder, field) ? null : " the inserted value has a wrong format"; else - return false; + return " a mandatory attribute cannot be empty"; }else - return true; + return null; }else{ if(holder.getClass().equals(TextBox.class) && getFieldCurrentValue().isEmpty()) - return true; + return null; - return checkValidator(holder, field); + return checkValidator(holder, field) ? null : " please select a different value for this field"; } } diff --git a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/utils/InfoIconsLabels.java b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/utils/InfoIconsLabels.java index 0027e45..451921a 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/utils/InfoIconsLabels.java +++ b/src/main/java/org/gcube/portlets/widgets/ckandatapublisherwidget/client/ui/utils/InfoIconsLabels.java @@ -13,6 +13,11 @@ public class InfoIconsLabels { + "product and by means of them it can be retrieved. A tag can contain only alphanumeric characters. " + "If the tag is composed by a single word it must have a size of at least two characters." + "Examples of good tags: \"This is a sample tag\", \"tagY\". Example of bad tag: \"c\"."; + + // LICENSES + public static final String LICENSES_INFO_ID_POPUP = "licenses-popup-panel-info"; + public static final String LICENSES_INFO_CAPTION = "Licenses"; + public static final String LICENSES_INFO_TEXT = "License definitions and additional information can be found at opendefinition.org"; // VISIBILITY public static final String VISIBILITY_INFO_ID_POPUP = "visibility-popup-panel-info";