diff --git a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/CkanToZendoPublisherWidget.java b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/CkanToZendoPublisherWidget.java index cfa84bc..f5c1ff6 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/CkanToZendoPublisherWidget.java +++ b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/CkanToZendoPublisherWidget.java @@ -1,8 +1,7 @@ package org.gcube.portlets.widgets.ckan2zenodopublisher.client; +import org.gcube.portlets.widgets.ckan2zenodopublisher.client.view.Ckan2ZenodoViewManager; import org.gcube.portlets.widgets.ckan2zenodopublisher.client.view.uibinder.AccordionBasicPanel; -import org.gcube.portlets.widgets.ckan2zenodopublisher.client.view.uibinder.BasicInformationView; -import org.gcube.portlets.widgets.ckan2zenodopublisher.client.view.uibinder.Ckan2ZenodoViewManager; import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.CatalogueItem; import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoItem; diff --git a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/Ckan2ZenodoViewManager.java b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/Ckan2ZenodoViewManager.java new file mode 100644 index 0000000..42e6edc --- /dev/null +++ b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/Ckan2ZenodoViewManager.java @@ -0,0 +1,68 @@ +package org.gcube.portlets.widgets.ckan2zenodopublisher.client.view; + +import java.util.ArrayList; +import java.util.List; + +import org.gcube.portlets.widgets.ckan2zenodopublisher.client.view.uibinder.AccordionBasicPanel; +import org.gcube.portlets.widgets.ckan2zenodopublisher.client.view.uibinder.BasicInformationView; +import org.gcube.portlets.widgets.ckan2zenodopublisher.client.view.uibinder.PublishFileView; +import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoFile; +import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoItem; + +import com.google.gwt.user.client.ui.VerticalPanel; + +public class Ckan2ZenodoViewManager { + + + AccordionBasicPanel basePanel; + + + public Ckan2ZenodoViewManager() { + } + + + public AccordionBasicPanel viewForPublishing(final ZenodoItem zenodoItem){ + basePanel = new AccordionBasicPanel(); + + BasicInformationView basicForm = new BasicInformationView(zenodoItem) { + + + @Override + public void submitHandler() { + } + + @Override + public void setError(boolean visible, String error) { + } + + @Override + public void setConfirm(boolean visible, String msg) { + } + }; + + basePanel.getAcc_basic_info().add(basicForm); + + + if(zenodoItem.getFiles()!=null) { + List lstPFV = new ArrayList(); + VerticalPanel fileVP = new VerticalPanel(); + for (ZenodoFile file : zenodoItem.getFiles()) { + PublishFileView pfv = addFileForPublishing(file); + lstPFV.add(pfv); + fileVP.add(pfv); + } + basePanel.getAcc_files().add(fileVP); + } + return basePanel; + + } + + private PublishFileView addFileForPublishing(ZenodoFile file) { + PublishFileView pv = new PublishFileView(file); + pv.getField_file_name().setValue(file.getFilename()); + pv.getSwitchButton().setValue(true); + return pv; + } + + +} diff --git a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/uibinder/AccordionBasicPanel.java b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/uibinder/AccordionBasicPanel.java index 2377b8d..76ee966 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/uibinder/AccordionBasicPanel.java +++ b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/uibinder/AccordionBasicPanel.java @@ -1,5 +1,7 @@ package org.gcube.portlets.widgets.ckan2zenodopublisher.client.view.uibinder; +import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoItem; + import com.github.gwtbootstrap.client.ui.AccordionGroup; import com.google.gwt.core.client.GWT; import com.google.gwt.uibinder.client.UiBinder; @@ -27,12 +29,6 @@ public class AccordionBasicPanel extends Composite { initWidget(uiBinder.createAndBindUi(this)); } - - public AccordionBasicPanel(String firstName) { - initWidget(uiBinder.createAndBindUi(this)); - } - - public AccordionGroup getAcc_basic_info() { return acc_basic_info; } diff --git a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/uibinder/BasicInformationView.java b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/uibinder/BasicInformationView.java index 069bb22..0bbfe45 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/uibinder/BasicInformationView.java +++ b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/uibinder/BasicInformationView.java @@ -35,9 +35,9 @@ public abstract class BasicInformationView extends Composite { interface BasicInformationViewUiBinder extends UiBinder { } - /** The pager. */ - @UiField - Pager pager; +// /** The pager. */ +// @UiField +// Pager pager; @UiField TextBox field_title; @@ -54,8 +54,8 @@ public abstract class BasicInformationView extends Composite { @UiField Fieldset to_zenodo_form_unit_fields; - @UiField - Label label_files; + //@UiField + //Label label_files; @UiField TextArea field_description; @@ -106,15 +106,15 @@ public abstract class BasicInformationView extends Composite { // this.isEditConfiguration = true; // this.editConfiguration = conf; - bindEvents(); - pager.getLeft().setVisible(false); + //bindEvents(); + //pager.getLeft().setVisible(false); fillForm(); - if (isEditConfiguration) { - pager.getRight().setText("Update Configuration"); - } else { - - } +// if (isEditConfiguration) { +// pager.getRight().setText("Update Configuration"); +// } else { +// +// } } @@ -129,46 +129,46 @@ public abstract class BasicInformationView extends Composite { field_description.setValue(zenodoItem.getMetadata().getDescription()); field_record_url.setValue(zenodoItem.getRecord_url().toString()); - if(zenodoItem.getFiles()!=null) { - label_files.setVisible(true); - for (ZenodoFile file : zenodoItem.getFiles()) { - addFileForPublishing(file); - } - } +// if(zenodoItem.getFiles()!=null) { +// label_files.setVisible(true); +// for (ZenodoFile file : zenodoItem.getFiles()) { +// addFileForPublishing(file); +// } +// } } - private void addFileForPublishing(ZenodoFile file) { - PublishFileView pv = new PublishFileView(); - pv.getField_file_name().setValue(file.getFilename()); - pv.getSwitchButton().setValue(true); - to_zenodo_form_unit_fields.add(pv); - } +// private void addFileForPublishing(ZenodoFile file) { +// PublishFileView pv = new PublishFileView(); +// pv.getField_file_name().setValue(file.getFilename()); +// pv.getSwitchButton().setValue(true); +// to_zenodo_form_unit_fields.add(pv); +// } - /** - * Bind events. - */ - private void bindEvents() { - - pager.getLeft().addClickHandler(new ClickHandler() { - - @Override - public void onClick(ClickEvent event) { - - } - }); - - pager.getRight().addClickHandler(new ClickHandler() { - - @Override - public void onClick(ClickEvent event) { - setError(false, ""); - boolean isValid = validateSubmit(); - if (isValid) - submitHandler(); - - } - }); - } +// /** +// * Bind events. +// */ +// private void bindEvents() { +// +// pager.getLeft().addClickHandler(new ClickHandler() { +// +// @Override +// public void onClick(ClickEvent event) { +// +// } +// }); +// +// pager.getRight().addClickHandler(new ClickHandler() { +// +// @Override +// public void onClick(ClickEvent event) { +// setError(false, ""); +// boolean isValid = validateSubmit(); +// if (isValid) +// submitHandler(); +// +// } +// }); +// } /** * Validate submit. diff --git a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/uibinder/BasicInformationView.ui.xml b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/uibinder/BasicInformationView.ui.xml index bfd3858..bf27a73 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/uibinder/BasicInformationView.ui.xml +++ b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/uibinder/BasicInformationView.ui.xml @@ -1,7 +1,8 @@ + xmlns:b="urn:import:com.github.gwtbootstrap.client.ui" + xmlns:citem="urn:import:org.gcube.portlets.widgets.ckan2zenodopublisher.client.view.uibinder"> .noBorder { border: 0px; @@ -16,40 +17,55 @@ + + + + Digital Object Identifier + (DOI) + - The Item + + + + + Title - - + + + + Description - + + + - - URL + + Authors - - + + + + - File/s + + - + + \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/uibinder/Ckan2ZenodoViewManager.java b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/uibinder/Ckan2ZenodoViewManager.java deleted file mode 100644 index 2c0cde5..0000000 --- a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/uibinder/Ckan2ZenodoViewManager.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.gcube.portlets.widgets.ckan2zenodopublisher.client.view.uibinder; - -import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoItem; - -public class Ckan2ZenodoViewManager { - - - AccordionBasicPanel basePanel; - - - public Ckan2ZenodoViewManager() { - } - - - public AccordionBasicPanel viewForPublishing(final ZenodoItem zenodoItem){ - basePanel = new AccordionBasicPanel(); - - BasicInformationView form = new BasicInformationView(zenodoItem) { - - - @Override - public void submitHandler() { - } - - @Override - public void setError(boolean visible, String error) { - } - - @Override - public void setConfirm(boolean visible, String msg) { - } - }; - - basePanel.getAcc_basic_info().add(form); - return basePanel; - - } - -} diff --git a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/uibinder/CreatorView.java b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/uibinder/CreatorView.java new file mode 100644 index 0000000..0a6aee6 --- /dev/null +++ b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/uibinder/CreatorView.java @@ -0,0 +1,57 @@ +package org.gcube.portlets.widgets.ckan2zenodopublisher.client.view.uibinder; + +import com.github.gwtbootstrap.client.ui.TextBox; +import com.google.gwt.core.client.GWT; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.user.client.ui.Composite; +import com.google.gwt.user.client.ui.Widget; + +public class CreatorView extends Composite { + + private static CreatorViewUiBinder uiBinder = GWT.create(CreatorViewUiBinder.class); + + interface CreatorViewUiBinder extends UiBinder { + } + + public CreatorView() { + initWidget(uiBinder.createAndBindUi(this)); + } + + @UiField + TextBox field_name; + + @UiField + TextBox field_affiliation; + + @UiField + TextBox field_orcid; + + public TextBox getField_name() { + return field_name; + } + + public void setField_name(TextBox field_name) { + this.field_name = field_name; + } + + public TextBox getField_affiliation() { + return field_affiliation; + } + + public void setField_affiliation(TextBox field_affiliation) { + this.field_affiliation = field_affiliation; + } + + public TextBox getField_orcid() { + return field_orcid; + } + + public void setField_orcid(TextBox field_orcid) { + this.field_orcid = field_orcid; + } + + + + +} diff --git a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/uibinder/CreatorView.ui.xml b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/uibinder/CreatorView.ui.xml new file mode 100644 index 0000000..43a1462 --- /dev/null +++ b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/uibinder/CreatorView.ui.xml @@ -0,0 +1,18 @@ + + + + .important { + font-weight: bold; + } + + + + + + + \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/uibinder/PublishFileView.java b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/uibinder/PublishFileView.java index e674e91..66ca809 100644 --- a/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/uibinder/PublishFileView.java +++ b/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/view/uibinder/PublishFileView.java @@ -1,5 +1,9 @@ package org.gcube.portlets.widgets.ckan2zenodopublisher.client.view.uibinder; +import java.util.List; + +import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoFile; +import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoItem; import org.gcube.portlets.widgets.switchbutton.client.SwitchButton; import com.github.gwtbootstrap.client.ui.TextBox; @@ -20,12 +24,15 @@ public class PublishFileView extends Composite { @UiField TextBox field_file_name; + + private ZenodoFile file; interface PublishFileViewUiBinder extends UiBinder { } - public PublishFileView() { + public PublishFileView(ZenodoFile file) { initWidget(uiBinder.createAndBindUi(this)); + this.file = file; switchButton.addValueChangeHandler(new ValueChangeHandler() { @@ -40,6 +47,8 @@ public class PublishFileView extends Composite { } } }); + + setFieldName(file.getFilename()); } public SwitchButton getSwitchButton() { @@ -53,9 +62,11 @@ public class PublishFileView extends Composite { this.switchButton = switchButton; } - public void setField_file_name(TextBox field_file_name) { - this.field_file_name = field_file_name; + public void setFieldName(String value) { + this.field_file_name.setValue(value); } + + diff --git a/src/test/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/Tester.java b/src/test/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/Tester.java new file mode 100644 index 0000000..d38db8d --- /dev/null +++ b/src/test/java/org/gcube/portlets/widgets/ckan2zenodopublisher/client/Tester.java @@ -0,0 +1,20 @@ +package org.gcube.portlets.widgets.ckan2zenodopublisher.client; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class Tester { + + public static String expression = "^\\/dataset(\\?([a-zA-Z0-9_.-]*.+))*"; + public static String toMatch = "/dataset?systemtype=E39_Actor&groups=huma_num___nakala"; + + public static void main(String[] args) { + Pattern p = Pattern.compile(expression); + Matcher m = p.matcher(toMatch); + boolean b = m.matches(); + + System.out.println(b); + + } + +}