Enhancements on the GUI-side

This commit is contained in:
Francesco Mangiacrapa 2019-12-20 12:11:14 +01:00
parent 20eee57584
commit 68970848a5
4 changed files with 79 additions and 60 deletions

View File

@ -6,7 +6,13 @@ import java.util.List;
import com.github.gwtbootstrap.client.ui.Pager; import com.github.gwtbootstrap.client.ui.Pager;
import com.github.gwtbootstrap.client.ui.Tab; import com.github.gwtbootstrap.client.ui.Tab;
import com.github.gwtbootstrap.client.ui.TabPanel; import com.github.gwtbootstrap.client.ui.TabPanel;
import com.github.gwtbootstrap.client.ui.TabPanel.ShownEvent.Handler;
import com.github.gwtbootstrap.client.ui.event.ShowEvent;
import com.github.gwtbootstrap.client.ui.event.ShowHandler;
import com.github.gwtbootstrap.client.ui.event.ShownEvent;
import com.google.gwt.core.client.GWT; import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.Scheduler;
import com.google.gwt.core.client.Scheduler.ScheduledCommand;
import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiBinder;
@ -14,14 +20,14 @@ import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget; import com.google.gwt.user.client.ui.Widget;
public abstract class BasicTabPanel extends Composite { public class BasicTabPanel extends Composite {
private static BasicTabPanelUiBinder uiBinder = GWT.create(BasicTabPanelUiBinder.class); private static BasicTabPanelUiBinder uiBinder = GWT.create(BasicTabPanelUiBinder.class);
interface BasicTabPanelUiBinder extends UiBinder<Widget, BasicTabPanel> { interface BasicTabPanelUiBinder extends UiBinder<Widget, BasicTabPanel> {
} }
public abstract void checkTabVisited(); //public abstract void checkTabVisited();
@UiField @UiField
Tab acc_basic_info; Tab acc_basic_info;
@ -46,24 +52,6 @@ public abstract class BasicTabPanel extends Composite {
listActivatedTab.add(acc_basic_info.isActive()); listActivatedTab.add(acc_basic_info.isActive());
listActivatedTab.add(acc_files.isActive()); listActivatedTab.add(acc_files.isActive());
acc_basic_info.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
listActivatedTab.set(0, true);
checkTabVisited();
}
});
acc_files.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
listActivatedTab.set(1, true);
checkTabVisited();
}
});
pager.getRight().addClickHandler(new ClickHandler() { pager.getRight().addClickHandler(new ClickHandler() {
@Override @Override
@ -81,8 +69,37 @@ public abstract class BasicTabPanel extends Composite {
} }
}); });
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
@Override
public void execute() {
managePager(null); managePager(null);
} }
});
class ShownEventHandler implements com.github.gwtbootstrap.client.ui.TabPanel.ShownEvent.Handler{
@Override
public void onShow(com.github.gwtbootstrap.client.ui.TabPanel.ShownEvent shownEvent) {
GWT.log("tab shownEvent fired");
managePager(null);
}
}
ShownEventHandler handler = new ShownEventHandler();
// com.github.gwtbootstrap.client.ui.TabPanel.ShowEvent.Handler myHadler = new com.github.gwtbootstrap.client.ui.TabPanel.ShowEvent.Handler() {
//
// @Override
// public void onShow(com.github.gwtbootstrap.client.ui.TabPanel.ShowEvent showEvent) {
//
// GWT.log("showEvent fired");
// }
// };
tabPanel.addShownHandler(handler);
}
public Tab getAcc_basic_info() { public Tab getAcc_basic_info() {
return acc_basic_info; return acc_basic_info;
@ -92,42 +109,37 @@ public abstract class BasicTabPanel extends Composite {
return acc_files; return acc_files;
} }
// public Tab getAcc_license() {
// return acc_license;
// }
public boolean allTabVisited() {
for (Boolean value : listActivatedTab) {
if (!value)
return false;
}
return true;
}
public TabPanel getTabPanel() { public TabPanel getTabPanel() {
return tabPanel; return tabPanel;
} }
private void managePager(PAGER direction){ public void managePager(PAGER direction){
int selectTab = tabPanel.getSelectedTab(); int selectTab = tabPanel.getSelectedTab();
pager.getLeft().setVisible(true); GWT.log("selectTab tab: "+selectTab);
pager.getRight().setVisible(true); GWT.log("tabPanel.getWidgetCount(): "+tabPanel.getWidgetCount());
if(selectTab==0) { checkPagerVisibility(selectTab);
pager.getLeft().setVisible(false);
}
if(selectTab==tabPanel.getWidgetCount()) {
pager.getRight().setVisible(false);
}
if(direction!=null) { if(direction!=null) {
int newSelectTabIndex = direction.equals(PAGER.BACK)?selectTab-1:selectTab+1; int newSelectTabIndex = direction.equals(PAGER.BACK)?selectTab-1:selectTab+1;
GWT.log("selecting index: "+newSelectTabIndex); GWT.log("newSelectTabIndex: "+newSelectTabIndex);
tabPanel.selectTab(newSelectTabIndex); tabPanel.selectTab(newSelectTabIndex);
checkPagerVisibility(newSelectTabIndex);
}
} }
private void checkPagerVisibility(int index) {
pager.getLeft().setVisible(true);
pager.getRight().setVisible(true);
//first tab
if(index<=0) {
pager.getLeft().setVisible(false);
}
//last tab
if(index>=tabPanel.getWidgetCount()-1) {
pager.getRight().setVisible(false);
}
} }
} }

View File

@ -8,6 +8,13 @@
.padding-left-10 { .padding-left-10 {
padding-left: 10px; padding-left: 10px;
} }
.to-publish-hr {
margin-top: 1px;
}
.to-padding{
padding: 3px;
}
</ui:style> </ui:style>
<b:ControlGroup> <b:ControlGroup>
@ -16,8 +23,9 @@
<g:VerticalPanel> <g:VerticalPanel>
<b:TextBox name="File Name" ui:field="field_file_name"> <b:TextBox name="File Name" ui:field="field_file_name">
</b:TextBox> </b:TextBox>
<g:HorizontalPanel> <g:HorizontalPanel
<b:Label type="INFO">publish</b:Label> addStyleNames="{style.to-publish-hr}">
<b:Label type="INFO" addStyleNames="{style.to-padding}">Publish</b:Label>
<citem:SwitchButton ui:field="switchButton" <citem:SwitchButton ui:field="switchButton"
addStyleNames="{style.padding-left-10}"></citem:SwitchButton> addStyleNames="{style.padding-left-10}"></citem:SwitchButton>
</g:HorizontalPanel> </g:HorizontalPanel>

View File

@ -42,14 +42,7 @@ public class Ckan2ZenodoViewManager {
Modal modal = new Modal(true); Modal modal = new Modal(true);
basicTabPanel = new BasicTabPanel() { basicTabPanel = new BasicTabPanel();
@Override
public void checkTabVisited() {
buttonPublish.setEnabled(basicTabPanel.allTabVisited());
}
};
boolean isUpdate = false; boolean isUpdate = false;
if(zenodoItem.getMetadata()!=null) { if(zenodoItem.getMetadata()!=null) {
@ -89,7 +82,7 @@ public class Ckan2ZenodoViewManager {
modal.add(basicTabPanel); modal.add(basicTabPanel);
buttonPublish.setEnabled(false); //buttonPublish.setEnabled(false);
buttonPublish.addClickHandler(new ClickHandler() { buttonPublish.addClickHandler(new ClickHandler() {

View File

@ -24,16 +24,22 @@
height: 645px; height: 645px;
} }
.ckan2zenodo-modal-style .nav-tabs {
height: 645px;
}
.ckan2zenodo-modal-style .pager { .ckan2zenodo-modal-style .pager {
margin-right: 10px; margin-right: 20px;
margin-left: 10px; margin-left: 140px;
margin-top: 0px;
margin-bottom: 0px;
} }
.legend-style { .legend-style {
width: auto; width: auto;
padding: 10px; padding: 10px;
margin-bottom: 0px; margin-bottom: 0px;
font-size: 16px; font-size: 18px;
color: gray; color: gray;
text-align: right; text-align: right;
} }
@ -47,7 +53,7 @@
} }
.form-font-size label { .form-font-size label {
font-size: 15px; font-size: 16px;
} }
.authors-table-spacing td { .authors-table-spacing td {