Working on GUI
This commit is contained in:
parent
99817d9bfd
commit
63e2191c0b
|
@ -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) {
|
||||
//
|
||||
//
|
||||
|
|
|
@ -40,7 +40,5 @@ public class AccordionBasicPanel extends Composite {
|
|||
public AccordionGroup getAcc_license() {
|
||||
return acc_license;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
|
@ -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>
|
|
@ -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;
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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>
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue