Working on GUI

This commit is contained in:
Francesco Mangiacrapa 2019-12-18 18:08:05 +01:00
parent 99817d9bfd
commit 63e2191c0b
15 changed files with 244 additions and 64 deletions

View File

@ -1,6 +1,6 @@
package org.gcube.portlets.widgets.ckan2zenodopublisher.client;
import org.gcube.portlets.widgets.ckan2zenodopublisher.client.ui.AccordionBasicPanel;
import org.gcube.portlets.widgets.ckan2zenodopublisher.client.ui.TabPanelBasicPanel;
import org.gcube.portlets.widgets.ckan2zenodopublisher.client.view.Ckan2ZenodoViewManager;
import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.CatalogueItem;
import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoItem;
@ -44,7 +44,7 @@ public class CkanToZendoPublisherWidget {
public void onSuccess(ZenodoItem result) {
Modal modal = new Modal(true);
Ckan2ZenodoViewManager manager = new Ckan2ZenodoViewManager();
AccordionBasicPanel theForm = manager.viewForPublishing(result);
TabPanelBasicPanel theForm = manager.viewForPublishing(result);
// BasicInformationView form = new BasicInformationView(result) {
//
//

View File

@ -40,7 +40,5 @@ public class AccordionBasicPanel extends Composite {
public AccordionGroup getAcc_license() {
return acc_license;
}
}

View File

@ -6,9 +6,13 @@
.important {
font-weight: bold;
}
.font-size-16 {
font-size: 16px;
}
</ui:style>
<g:HTMLPanel>
<b:Accordion>
<b:Accordion addStyleNames="accordion-font-size">
<b:AccordionGroup heading="The Item Information"
icon="BOOK" defaultOpen="true" ui:field="acc_basic_info">
</b:AccordionGroup>

View File

@ -0,0 +1,42 @@
package org.gcube.portlets.widgets.ckan2zenodopublisher.client.ui;
import com.github.gwtbootstrap.client.ui.Tab;
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 TabPanelBasicPanel extends Composite {
private static TabPanelBasicPanelUiBinder uiBinder = GWT.create(TabPanelBasicPanelUiBinder.class);
interface TabPanelBasicPanelUiBinder extends UiBinder<Widget, TabPanelBasicPanel> {
}
@UiField
Tab acc_basic_info;
@UiField
Tab acc_files;
@UiField
Tab acc_license;
public TabPanelBasicPanel() {
initWidget(uiBinder.createAndBindUi(this));
}
public Tab getAcc_basic_info() {
return acc_basic_info;
}
public Tab getAcc_files() {
return acc_files;
}
public Tab getAcc_license() {
return acc_license;
}
}

View File

@ -0,0 +1,31 @@
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:b="urn:import:com.github.gwtbootstrap.client.ui">
<ui:style>
.important {
font-weight: bold;
}
.font-size-16 {
font-size: 16px;
}
</ui:style>
<g:HTMLPanel addStyleNames="form-font-size">
<b:TabPanel tabPosition="left" ui:field="tabPanel">
<b:Tab heading="The Item Information" icon="BOOK" active="true"
ui:field="acc_basic_info">
</b:Tab>
<!-- <b:AccordionGroup heading="Upload as type" -->
<!-- defaultOpen="true" ui:field="acc_upload_type" icon="UPLOAD"> -->
<!-- </b:AccordionGroup> -->
<b:Tab heading="Files" icon="UPLOAD" ui:field="acc_files">
</b:Tab>
<b:Tab heading="License" icon="STAR" ui:field="acc_license">
</b:Tab>
<!-- <b:AccordionGroup defaultOpen="true" -->
<!-- heading="License" icon="STAR" ui:field="acc_license"> -->
<!-- </b:AccordionGroup> -->
</b:TabPanel>
</g:HTMLPanel>
</ui:UiBinder>

View File

@ -4,7 +4,6 @@ import org.gcube.portlets.widgets.ckan2zenodopublisher.client.events.RemoveCreat
import com.github.gwtbootstrap.client.ui.Button;
import com.github.gwtbootstrap.client.ui.TextBox;
import com.github.gwtbootstrap.client.ui.constants.IconType;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;

View File

@ -14,7 +14,7 @@
</b:ControlLabel>
<b:Controls>
<!-- -->
<g:VerticalPanel>
<g:VerticalPanel addStyleNames="authors-table-spacing">
<b:TextBox alternateSize="SMALL" placeholder="Name"
ui:field="field_name" />
<b:TextBox alternateSize="SMALL" placeholder="Affiliation"

View File

@ -10,7 +10,6 @@ import org.gcube.portlets.widgets.ckan2zenodopublisher.client.ui.utils.InfoTextA
import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoCreator;
import com.github.gwtbootstrap.client.ui.Button;
import com.github.gwtbootstrap.client.ui.Fieldset;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;

View File

@ -1,11 +1,18 @@
package org.gcube.portlets.widgets.ckan2zenodopublisher.client.ui.basicinformation;
import java.util.ArrayList;
import java.util.List;
import org.gcube.portlets.widgets.ckan2zenodopublisher.client.ui.authors.CreatorsFormView;
import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoItem;
import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoMetadata;
import com.github.gwtbootstrap.client.ui.ControlGroup;
import com.github.gwtbootstrap.client.ui.Fieldset;
import com.github.gwtbootstrap.client.ui.ListBox;
import com.github.gwtbootstrap.client.ui.TextArea;
import com.github.gwtbootstrap.client.ui.TextBox;
import com.github.gwtbootstrap.datepicker.client.ui.DateBox;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.uibinder.client.UiBinder;
@ -33,30 +40,26 @@ public abstract class BasicInformationView extends Composite {
interface BasicInformationViewUiBinder extends UiBinder<Widget, BasicInformationView> {
}
// /** The pager. */
// @UiField
// Pager pager;
@UiField
TextBox field_title;
@UiField
TextBox field_record_url;
// @UiField
// ControlGroup cg_list_of_files;
//
// @UiField
// VerticalPanel vp_list_of_files;
TextBox field_doi;
@UiField
Fieldset fieldset_basic_informations;
//@UiField
//Label label_files;
@UiField
TextArea field_description;
@UiField
ListBox field_upload_type;
@UiField
ListBox field_publication_type;
@UiField
DateBox field_publication_date;
public final static HandlerManager eventBus = new HandlerManager(null);
@ -96,8 +99,9 @@ public abstract class BasicInformationView extends Composite {
* HasHTML instead of HasText.
*
* @param zenodoItem the zenodo item
* @param isUpdate the is update
*/
public BasicInformationView(final ZenodoItem zenodoItem) {
public BasicInformationView(final ZenodoItem zenodoItem, boolean isUpdate) {
initWidget(uiBinder.createAndBindUi(this));
this.zenodoItem = zenodoItem;
// if(conf!=null)
@ -107,6 +111,7 @@ public abstract class BasicInformationView extends Composite {
//bindEvents();
//pager.getLeft().setVisible(false);
fillForm();
setVisibleFieldsForUpdate(isUpdate);
// if (isEditConfiguration) {
// pager.getRight().setText("Update Configuration");
@ -115,24 +120,48 @@ public abstract class BasicInformationView extends Composite {
// }
}
/**
* Sets the visible fields for update.
*
* @param isUpdate the new visible fields for update
*/
protected void setVisibleFieldsForUpdate(boolean isUpdate) {
List<Widget> listWidgtes = new ArrayList<Widget>();
listWidgtes.add(field_doi);
listWidgtes.add(field_publication_date);
for (Widget widget : listWidgtes) {
Widget parent = widget.getParent().getParent(); //It should be the 'ControlGroup'
if(parent instanceof ControlGroup) {
parent.setVisible(isUpdate);
}
}
}
/**
* Fill parameters to operator.
*
* @param taskOperator the task operator
*/
private void fillForm() {
field_title.setValue(zenodoItem.getTitle());
field_description.setValue(zenodoItem.getMetadata().getDescription());
field_record_url.setValue(zenodoItem.getRecord_url().toString());
field_doi.setValue(zenodoItem.getDoi().toString());
if(zenodoItem.getMetadata()!=null) {
ZenodoMetadata zMeta = zenodoItem.getMetadata();
if(zMeta!=null) {
addValuesToListBox(field_upload_type, zMeta.getUpload_type().getSelectableValues());
selectValueToListBox(field_upload_type,zMeta.getUpload_type().getSelectableValues());
addValuesToListBox(field_publication_type, zMeta.getPublication_type().getSelectableValues());
selectValueToListBox(field_publication_type,zMeta.getPublication_type().getSelectableValues());
//ADDING AUTHORS
creatorsView = new CreatorsFormView(zenodoItem.getMetadata().getCreators());
fieldset_basic_informations.add(creatorsView);
}
fieldset_basic_informations.add(creatorsView);
// if(zenodoItem.getFiles()!=null) {
// label_files.setVisible(true);
// for (ZenodoFile file : zenodoItem.getFiles()) {
@ -141,6 +170,43 @@ public abstract class BasicInformationView extends Composite {
// }
}
/**
* Adds the values to list box.
*
* @param list the list
* @param listValues the list values
*/
private void addValuesToListBox(ListBox list, List<String> listValues) {
if(listValues==null)
return;
for (int i=0; i<listValues.size(); i++) {
list.setValue(i, listValues.get(i));
}
}
/**
* Select value to list box.
*
* @param list the list
* @param values the values
*/
private void selectValueToListBox(ListBox list, List<String> values) {
String selectValue = null;
if(values==null || values.isEmpty()) {
selectValue = null;
}else {
selectValue = values.get(0);
}
try {
if(list.getItemCount()>0)
list.setSelectedValue(selectValue);
}catch(Exception e) {
GWT.log("error: "+e);
}
}
// private void addFileForPublishing(ZenodoFile file) {
// PublishFileView pv = new PublishFileView();
// pv.getField_file_name().setValue(file.getFilename());

View File

@ -27,12 +27,12 @@
</b:Legend>
<!-- <b:Label type="INFO" -->
<!-- addStyleNames="{style.margin-left-100}">Basic Information</b:Label> -->
<b:ControlGroup ui:field="cg_record_url">
<b:ControlLabel for="cl_record_url">Digital Object Identifier</b:ControlLabel>
<b:ControlGroup ui:field="cg_doi_url">
<b:ControlLabel for="cl_doi_url">Digital Object Identifier</b:ControlLabel>
<b:Controls>
<b:TextBox name="DOI" b:id="field_doi"
ui:field="field_record_url"
addStyleNames="my-external-select-width" readOnly="true">
ui:field="field_doi" addStyleNames="my-external-select-width"
readOnly="true">
</b:TextBox>
</b:Controls>
</b:ControlGroup>
@ -44,7 +44,7 @@
<b:Controls>
<!-- <b:InputAddOn prependIcon="BOOK"> -->
<b:TextBox name="Title" b:id="field_title"
ui:field="field_title" addStyleNames="my-external-select-width">
ui:field="field_title">
</b:TextBox>
<!-- </b:InputAddOn> -->
</b:Controls>
@ -57,21 +57,36 @@
<b:Controls>
<!-- <b:InputAddOn prependIcon="PENCIL"> -->
<b:TextArea name="Description"
ui:field="field_description"
addStyleNames="my-external-select-width"></b:TextArea>
ui:field="field_description"></b:TextArea>
<!-- </b:InputAddOn> -->
</b:Controls>
</b:ControlGroup>
<!-- <b:ControlGroup ui:field="cg_authors" visible="false"> -->
<!-- <b:ControlLabel for="cl_authors"> -->
<!-- Author/s date -->
<!-- </b:ControlLabel> -->
<!-- <b:Controls> -->
<!-- <b2:DateBox format="dd/mm/yyyy" autoClose="true" -->
<!-- ui:field="field_publication_date" /> -->
<!-- </b:Controls> -->
<!-- </b:ControlGroup> -->
<b:ControlGroup ui:field="cg_upload_type">
<b:ControlLabel for="cg_upload_type">
Upload type
</b:ControlLabel>
<b:Controls>
<!-- <b:InputAddOn prependIcon="BOOK"> -->
<b:ListBox name="Upload type"
ui:field="field_upload_type">
</b:ListBox>
<!-- </b:InputAddOn> -->
</b:Controls>
</b:ControlGroup>
<b:ControlGroup ui:field="cg_publication_type">
<b:ControlLabel for="cl_publication_type">
Publication type
</b:ControlLabel>
<b:Controls>
<!-- <b:InputAddOn prependIcon="BOOK"> -->
<b:ListBox name="Publication type"
ui:field="field_publication_type">
</b:ListBox>
<!-- </b:InputAddOn> -->
</b:Controls>
</b:ControlGroup>
<b:ControlGroup ui:field="cg_publication_date">
<b:ControlLabel for="cl_publication_date">

View File

@ -11,17 +11,17 @@
</ui:style>
<b:ControlGroup>
<b:ControlLabel>Filename</b:ControlLabel>
<b:Controls>
<g:VerticalPanel>
<b:TextBox name="File Name" ui:field="field_file_name">
</b:TextBox>
<g:HorizontalPanel>
<b:Label>publish</b:Label>
<b:Label type="INFO">publish</b:Label>
<citem:SwitchButton ui:field="switchButton"
addStyleNames="{style.padding-left-10}"></citem:SwitchButton>
</g:HorizontalPanel>
</g:VerticalPanel>
</b:Controls>
</b:ControlGroup>
</ui:UiBinder>

View File

@ -10,19 +10,13 @@
.noBorder {
border: 0px;
}
.margin-left-100 {
margin-left: 80px;
}
</ui:style>
<g:HTMLPanel ui:field="html_panel_field">
<g:HTMLPanel>
<b:Form type="HORIZONTAL">
<b:Fieldset styleName="{style.noBorder}"
ui:field="field_form_files">
<b:Legend addStyleNames="legend-style">
The File/s
</b:Legend>
<!-- <b:Legend addStyleNames="legend-style"> -->
<!-- </b:Legend> -->
</b:Fieldset>
</b:Form>
</g:HTMLPanel>

View File

@ -1,24 +1,28 @@
package org.gcube.portlets.widgets.ckan2zenodopublisher.client.view;
import org.gcube.portlets.widgets.ckan2zenodopublisher.client.ui.AccordionBasicPanel;
import org.gcube.portlets.widgets.ckan2zenodopublisher.client.ui.TabPanelBasicPanel;
import org.gcube.portlets.widgets.ckan2zenodopublisher.client.ui.basicinformation.BasicInformationView;
import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoItem;
public class Ckan2ZenodoViewManager {
private AccordionBasicPanel basePanel;
private TabPanelBasicPanel basePanel;
public Ckan2ZenodoViewManager() {
}
public AccordionBasicPanel viewForPublishing(final ZenodoItem zenodoItem){
basePanel = new AccordionBasicPanel();
public TabPanelBasicPanel viewForPublishing(final ZenodoItem zenodoItem){
basePanel = new TabPanelBasicPanel();
boolean isUpdate = false;
if(zenodoItem.getMetadata()!=null) {
isUpdate = zenodoItem.getMetadata().getDoi()!=null?true:false;
}
//Basic Information
BasicInformationView basicForm = new BasicInformationView(zenodoItem) {
BasicInformationView basicForm = new BasicInformationView(zenodoItem, isUpdate) {
@Override

View File

@ -5,8 +5,14 @@
}
.ckan2zenodo-modal-style input, textarea {
width: 800px;
max-width: 800px;
width: 650px;
max-width: 650px;
min-width: 650px;
}
.ckan2zenodo-modal-style select {
width: 665px;
max-width: 665px;
}
.ckan2zenodo-modal-style .modal-body {
@ -19,4 +25,22 @@
margin-bottom: 0px;
font-size: 16px;
color: gray;
text-align: right;
}
.form-font-size .tabbable {
font-size: 16px;
}
.form-font-size {
font-size: 15px;
}
.form-font-size label {
font-size: 15px;
}
.authors-table-spacing td{
padding-bottom: 5px;
}

View File

@ -69,6 +69,8 @@ public class ZenodoMetadata implements Serializable{
public SerializableEnum<String> getUpload_type() {
if(upload_type==null)
return new SerializableEnum<>();
return upload_type;
}
@ -79,6 +81,8 @@ public class ZenodoMetadata implements Serializable{
public SerializableEnum<String> getPublication_type() {
if(publication_type==null)
return new SerializableEnum<>();
return publication_type;
}