fixing Bug #12914 The form to add/choice the resources to publishing remains frozen

git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/widgets/ckan-metadata-publisher-widget@174234 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Francesco Mangiacrapa 2018-11-20 11:29:41 +00:00
parent ea24c207dc
commit b3e9a91388
5 changed files with 63 additions and 47 deletions

View File

@ -1,4 +1,9 @@
<ReleaseNotes> <ReleaseNotes>
<Changeset
component="org.gcube.portlets-widgets.ckan-metadata-publisher-widget.1-4-1"
date="2018-11-20">
<Change>[Bug #12914] The form to add/choice the resources to publishing remains frozen</Change>
</Changeset>
<Changeset <Changeset
component="org.gcube.portlets-widgets.ckan-metadata-publisher-widget.1-4-0" component="org.gcube.portlets-widgets.ckan-metadata-publisher-widget.1-4-0"
date="2018-09-28"> date="2018-09-28">

View File

@ -12,7 +12,7 @@
<groupId>org.gcube.portlets.widgets</groupId> <groupId>org.gcube.portlets.widgets</groupId>
<artifactId>ckan-metadata-publisher-widget</artifactId> <artifactId>ckan-metadata-publisher-widget</artifactId>
<version>1.4.0-SNAPSHOT</version> <version>1.4.1-SNAPSHOT</version>
<name>gCube Ckan metadata publisher widget</name> <name>gCube Ckan metadata publisher widget</name>
<description> <description>

View File

@ -53,7 +53,7 @@ public class ResourceCellRight extends AbstractCell<ResourceElementBean>{
public void onBrowserEvent(com.google.gwt.cell.client.Cell.Context context, public void onBrowserEvent(com.google.gwt.cell.client.Cell.Context context,
Element parent, ResourceElementBean value, NativeEvent event, Element parent, ResourceElementBean value, NativeEvent event,
ValueUpdater<ResourceElementBean> valueUpdater) { ValueUpdater<ResourceElementBean> valueUpdater) {
if(value == null || TwinColumnSelectionMainPanel.freezed) if(value == null || TwinColumnSelectionMainPanel.isFroozen())
return; return;
super.onBrowserEvent(context, parent, value, event, valueUpdater); super.onBrowserEvent(context, parent, value, event, valueUpdater);
ResourceInfoForm info = new ResourceInfoForm(value, valueUpdater); ResourceInfoForm info = new ResourceInfoForm(value, valueUpdater);

View File

@ -35,12 +35,13 @@ import com.google.gwt.view.client.SelectionChangeEvent;
/** /**
* The twin column panels for selection of the files to attach to the catalague product. * The twin column panels for selection of the files to attach to the catalague product.
* @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it) * @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it)
* @author Francesco Mangiacrapa at ISTI-CNR
*/ */
public class TwinColumnSelectionMainPanel extends Composite{ public class TwinColumnSelectionMainPanel extends Composite{
@UiField @UiField
VerticalPanel leftContainer; VerticalPanel leftContainer;
@UiField @UiField
VerticalPanel rightContainer; VerticalPanel rightContainer;
@UiField @UiField
VerticalPanel buttonsPanel; VerticalPanel buttonsPanel;
@ -79,7 +80,7 @@ public class TwinColumnSelectionMainPanel extends Composite{
} }
} }
public static boolean freezed = false; private static boolean frozen = false;
private List<PathBean> pathListBeans = new ArrayList<PathBean>(); private List<PathBean> pathListBeans = new ArrayList<PathBean>();
private static final String PANEL_BORDER_COLOR = "#8899a6"; private static final String PANEL_BORDER_COLOR = "#8899a6";
private static final String PANEL_HEIGHT = "400px"; private static final String PANEL_HEIGHT = "400px";
@ -107,7 +108,8 @@ public class TwinColumnSelectionMainPanel extends Composite{
public TwinColumnSelectionMainPanel(ResourceElementBean initialBean) { public TwinColumnSelectionMainPanel(ResourceElementBean initialBean) {
initWidget(uiBinder.createAndBindUi(this)); initWidget(uiBinder.createAndBindUi(this));
frozen = false;
GWT.log(initialBean.toString()); GWT.log(initialBean.toString());
this.initialBean = initialBean; this.initialBean = initialBean;
@ -146,10 +148,10 @@ public class TwinColumnSelectionMainPanel extends Composite{
// initialize the left side list // initialize the left side list
ResourceCellLeft cell = new ResourceCellLeft(); ResourceCellLeft cell = new ResourceCellLeft();
// Set a key provider that provides a unique key for each object. // Set a key provider that provides a unique key for each object.
cellListLeft = new CellList<ResourceElementBean>(cell, ResourceElementBean.KEY_PROVIDER); cellListLeft = new CellList<ResourceElementBean>(cell, ResourceElementBean.KEY_PROVIDER);
cellListLeft.setKeyboardPagingPolicy(KeyboardPagingPolicy.INCREASE_RANGE); cellListLeft.setKeyboardPagingPolicy(KeyboardPagingPolicy.INCREASE_RANGE);
// set page size // set page size
int size = initialBean.isFolder() ? initialBean.getChildren().size() : 1; int size = initialBean.isFolder() ? initialBean.getChildren().size() : 1;
cellListLeft.setPageSize(size); cellListLeft.setPageSize(size);
@ -163,13 +165,13 @@ public class TwinColumnSelectionMainPanel extends Composite{
public void onSelectionChange(SelectionChangeEvent event) { public void onSelectionChange(SelectionChangeEvent event) {
if(freezed) if(frozen)
return; return;
Iterator<ResourceElementBean> selectedObjectsIterator = selectionModelLeft.getSelectedSet().iterator(); Iterator<ResourceElementBean> selectedObjectsIterator = selectionModelLeft.getSelectedSet().iterator();
while (selectedObjectsIterator.hasNext()) { while (selectedObjectsIterator.hasNext()) {
ResourceElementBean selectedBean = (ResourceElementBean) selectedObjectsIterator.next(); ResourceElementBean selectedBean = selectedObjectsIterator.next();
if(selectedBean.isFolder()){ if(selectedBean.isFolder()){
// a single folder selected // a single folder selected
@ -240,7 +242,7 @@ public class TwinColumnSelectionMainPanel extends Composite{
dataProviderLeft.setList(initialBean.getChildren()); dataProviderLeft.setList(initialBean.getChildren());
cellListLeft.setPageSize(initialBean.getChildren().size()); cellListLeft.setPageSize(initialBean.getChildren().size());
dataProviderLeft.refresh(); dataProviderLeft.refresh();
} }
}); });
@ -303,9 +305,9 @@ public class TwinColumnSelectionMainPanel extends Composite{
// initialize the left side list // initialize the left side list
ResourceCellRight cell = new ResourceCellRight(); ResourceCellRight cell = new ResourceCellRight();
// Set a key provider that provides a unique key for each object. // Set a key provider that provides a unique key for each object.
cellListRight = new CellList<ResourceElementBean>(cell, ResourceElementBean.KEY_PROVIDER); cellListRight = new CellList<ResourceElementBean>(cell, ResourceElementBean.KEY_PROVIDER);
cellListRight.setKeyboardPagingPolicy(KeyboardPagingPolicy.INCREASE_RANGE); cellListRight.setKeyboardPagingPolicy(KeyboardPagingPolicy.INCREASE_RANGE);
cellListRight.setValueUpdater(new ValueUpdater<ResourceElementBean>() { cellListRight.setValueUpdater(new ValueUpdater<ResourceElementBean>() {
@Override @Override
@ -325,7 +327,7 @@ public class TwinColumnSelectionMainPanel extends Composite{
selectionModelRight.addSelectionChangeHandler(new SelectionChangeEvent.Handler() { selectionModelRight.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
public void onSelectionChange(SelectionChangeEvent event) { public void onSelectionChange(SelectionChangeEvent event) {
if(freezed) if(frozen)
return; return;
enableMoveToLeftButtons(selectionModelRight.getSelectedSet()); enableMoveToLeftButtons(selectionModelRight.getSelectedSet());
@ -432,9 +434,9 @@ public class TwinColumnSelectionMainPanel extends Composite{
Iterator<ResourceElementBean> iterator = setSelected.iterator(); Iterator<ResourceElementBean> iterator = setSelected.iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
ResourceElementBean resourceElementBean = (ResourceElementBean) iterator ResourceElementBean resourceElementBean = iterator
.next(); .next();
resourceElementBean.setToBeAdded(true); resourceElementBean.setToBeAdded(true);
int indexRight = dataProviderRight.getList().indexOf(resourceElementBean); int indexRight = dataProviderRight.getList().indexOf(resourceElementBean);
if(indexRight >= 0) if(indexRight >= 0)
@ -461,8 +463,8 @@ public class TwinColumnSelectionMainPanel extends Composite{
Iterator<ResourceElementBean> iterator = setSelected.iterator(); Iterator<ResourceElementBean> iterator = setSelected.iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
ResourceElementBean resourceElementBean = (ResourceElementBean) iterator.next(); ResourceElementBean resourceElementBean = iterator.next();
resourceElementBean.setToBeAdded(false); resourceElementBean.setToBeAdded(false);
} }
Collections.sort(dataProviderLeft.getList()); Collections.sort(dataProviderLeft.getList());
@ -475,11 +477,11 @@ public class TwinColumnSelectionMainPanel extends Composite{
*/ */
public void freeze() { public void freeze() {
freezed = true; frozen = true;
Iterator<Widget> iteratorOverPath = breadcrumbs.iterator(); Iterator<Widget> iteratorOverPath = breadcrumbs.iterator();
while (iteratorOverPath.hasNext()) { while (iteratorOverPath.hasNext()) {
Widget widget = (Widget) iteratorOverPath.next(); Widget widget = iteratorOverPath.next();
if(widget instanceof NavLink) if(widget instanceof NavLink)
((NavLink)widget).setActive(false); ((NavLink)widget).setActive(false);
} }
@ -495,12 +497,12 @@ public class TwinColumnSelectionMainPanel extends Composite{
* @return the resources to save * @return the resources to save
*/ */
public ResourceElementBean getResourcesToPublish(){ public ResourceElementBean getResourcesToPublish(){
List<ResourceElementBean> current = dataProviderRight.getList(); List<ResourceElementBean> current = dataProviderRight.getList();
ResourceElementBean toReturn = new ResourceElementBean(); ResourceElementBean toReturn = new ResourceElementBean();
List<ResourceElementBean> children = new ArrayList<ResourceElementBean>(); List<ResourceElementBean> children = new ArrayList<ResourceElementBean>();
for (ResourceElementBean resource : current) { for (ResourceElementBean resource : current) {
if(resource.isToBeAdded() && !resource.isFolder()){ // be sure ... if(resource.isToBeAdded() && !resource.isFolder()){ // be sure ...
ResourceElementBean beanWithoutChildren = new ResourceElementBean(resource); ResourceElementBean beanWithoutChildren = new ResourceElementBean(resource);
@ -508,11 +510,20 @@ public class TwinColumnSelectionMainPanel extends Composite{
children.add(beanWithoutChildren); children.add(beanWithoutChildren);
} }
} }
toReturn.setChildren(children); toReturn.setChildren(children);
return toReturn; return toReturn;
} }
/**
* @return the freezed
*/
public static boolean isFroozen() {
return frozen;
}
// @UiHandler("getResources") // @UiHandler("getResources")
// void getResources(ClickEvent ce){ // void getResources(ClickEvent ce){
// getResourcesToPublish(); // getResourcesToPublish();
@ -527,7 +538,7 @@ public class TwinColumnSelectionMainPanel extends Composite{
// boolean reduce = (pathListBeans.size() - 2) > PATH_THRESHOLD; // boolean reduce = (pathListBeans.size() - 2) > PATH_THRESHOLD;
// //
// GWT.log("Is to reduce? " + reduce); // GWT.log("Is to reduce? " + reduce);
// //
// GWT.log("Full size is " + pathListBeans.size()); // GWT.log("Full size is " + pathListBeans.size());
// //
// if(!reduce){ // if(!reduce){

View File

@ -177,8 +177,8 @@ public class CreateDatasetForm extends Composite{
private static final String TRYING_TO_CREATE_PRODUCT = "Trying to publish the item, please wait..."; private static final String TRYING_TO_CREATE_PRODUCT = "Trying to publish the item, please wait...";
protected static final String MISSING_PUBLISH_RIGHTS = "It seems you are not authorized to publish on catalogue. Request it to the VRE manager or the portal administrator."; protected static final String MISSING_PUBLISH_RIGHTS = "It seems you are not authorized to publish on catalogue. Request it to the VRE manager or the portal administrator.";
// tab panel // tab panel
private TabPanel tabPanel; private TabPanel tabPanel;
// add resource form // add resource form
private AddResourceToDataset resourceForm; private AddResourceToDataset resourceForm;
@ -326,16 +326,16 @@ public class CreateDatasetForm extends Composite{
tagsPanel.setVocabulary(vocabularyTags); tagsPanel.setVocabulary(vocabularyTags);
// retrieve custom fields // retrieve custom fields
Map<String, List<String>> customFieldsMap = bean.getCustomFields(); Map<String, List<String>> customFieldsMap = bean.getCustomFields();
// TODO Check if these tags are ok for the vocabulary // TODO Check if these tags are ok for the vocabulary
if(customFieldsMap != null && vocabularyTags == null){ if(customFieldsMap != null && vocabularyTags == null){
// get the keys and put them as tags // get the keys and put them as tags
Iterator<Entry<String, List<String>>> iteratorOverCustomField = customFieldsMap.entrySet().iterator(); Iterator<Entry<String, List<String>>> iteratorOverCustomField = customFieldsMap.entrySet().iterator();
while (iteratorOverCustomField.hasNext()) { while (iteratorOverCustomField.hasNext()) {
Map.Entry<java.lang.String, java.util.List<java.lang.String>> entry = (Map.Entry<java.lang.String, java.util.List<java.lang.String>>) iteratorOverCustomField Map.Entry<java.lang.String, java.util.List<java.lang.String>> entry = iteratorOverCustomField
.next(); .next();
List<String> values = entry.getValue(); List<String> values = entry.getValue();
@ -372,7 +372,7 @@ public class CreateDatasetForm extends Composite{
nameTitleOrganizationMap.put(organization.getTitle(), organization.getName()); nameTitleOrganizationMap.put(organization.getTitle(), organization.getName());
} }
// force the selection of the first one, and retrieve the list of profiles // force the selection of the first one, and retrieve the list of profiles
organizationsListbox.setSelectedIndex(0); organizationsListbox.setSelectedIndex(0);
// add change handler to dynamically retrieve the list of profiles // add change handler to dynamically retrieve the list of profiles
@ -535,7 +535,7 @@ public class CreateDatasetForm extends Composite{
metadataTypeListbox.setSelectedIndex(0); metadataTypeListbox.setSelectedIndex(0);
// get the name of the organization from the title // get the name of the organization from the title
String selectedOrganizationTitle = organizationsListbox.getSelectedItemText(); String selectedOrganizationTitle = organizationsListbox.getSelectedItemText();
final String orgName = nameTitleOrganizationMap.get(selectedOrganizationTitle); final String orgName = nameTitleOrganizationMap.get(selectedOrganizationTitle);
// try to retrieve the profiles // try to retrieve the profiles
@ -597,7 +597,7 @@ public class CreateDatasetForm extends Composite{
// check also for tags (if for that context there is a vocabulary or not) // check also for tags (if for that context there is a vocabulary or not)
tagsPanel.setVisible(false); tagsPanel.setVisible(false);
setAlertBlock("Checking for tags vocabulary, please wait...", AlertType.INFO, true); setAlertBlock("Checking for tags vocabulary, please wait...", AlertType.INFO, true);
ckanServices.getTagsForOrganization(orgName, new AsyncCallback<List<String>>() { ckanServices.getTagsForOrganization(orgName, new AsyncCallback<List<String>>() {
@ -645,7 +645,7 @@ public class CreateDatasetForm extends Composite{
if(profiles != null && !profiles.isEmpty()){ if(profiles != null && !profiles.isEmpty()){
for(MetaDataProfileBean metadataBean: profiles){ for(MetaDataProfileBean metadataBean: profiles){
metadataTypeListbox.addItem(metadataBean.getType()); metadataTypeListbox.addItem(metadataBean.getType());
// add handler on select // add handler on select
metadataTypeListbox.addChangeHandler(new ChangeHandler() { metadataTypeListbox.addChangeHandler(new ChangeHandler() {
@ -683,7 +683,7 @@ public class CreateDatasetForm extends Composite{
} }
metadataTypesControlGroup.setVisible(true); metadataTypesControlGroup.setVisible(true);
}else{ }else{
// just hide this listbox // just hide this listbox
metadataTypesControlGroup.setVisible(false); metadataTypesControlGroup.setVisible(false);
metadataFieldsPanel.clear(); metadataFieldsPanel.clear();
@ -758,7 +758,7 @@ public class CreateDatasetForm extends Composite{
} }
metadataFieldsPanel.add(extrasCategory); metadataFieldsPanel.add(extrasCategory);
} }
metadataFieldsPanel.setVisible(true); metadataFieldsPanel.setVisible(true);
} }
} }
} }
@ -816,7 +816,7 @@ public class CreateDatasetForm extends Composite{
*/ */
private void actionsAfterOnContinue(){ private void actionsAfterOnContinue(){
// check what to do // check what to do
if(isWorkspaceRequest){ if(isWorkspaceRequest){
// we need to show the page to handle resources one by one from the workspace // we need to show the page to handle resources one by one from the workspace
@ -993,7 +993,7 @@ public class CreateDatasetForm extends Composite{
receivedBean.setResourceRoot(resourcesTwinPanel.getResourcesToPublish()); receivedBean.setResourceRoot(resourcesTwinPanel.getResourcesToPublish());
receivedBean.setCustomFields(customFieldsMap); receivedBean.setCustomFields(customFieldsMap);
// alert // alert
alertOnCreate(TRYING_TO_CREATE_PRODUCT, AlertType.INFO, false); alertOnCreate(TRYING_TO_CREATE_PRODUCT, AlertType.INFO, false);
// invoke the create method // invoke the create method
@ -1020,8 +1020,8 @@ public class CreateDatasetForm extends Composite{
goToDatasetButtonPanel.setVisible(true); goToDatasetButtonPanel.setVisible(true);
goToDatasetButton.setVisible(true); goToDatasetButton.setVisible(true);
goToDatasetButton.setText( goToDatasetButton.setText(
(datasetUrl.length() > 100 ? datasetUrl.length() > 100 ?
datasetUrl.substring(0, 100) + "..." : datasetUrl) datasetUrl.substring(0, 100) + "..." : datasetUrl
); );
// goToDatasetButton.setHref(datasetUrl); // goToDatasetButton.setHref(datasetUrl);
goToDatasetButton.addClickHandler(new ClickHandler() { goToDatasetButton.addClickHandler(new ClickHandler() {
@ -1083,7 +1083,7 @@ public class CreateDatasetForm extends Composite{
// add the new content of the main panel // add the new content of the main panel
createDatasetMainPanel.add(container); createDatasetMainPanel.add(container);
} }
}); });
} }
}else{ }else{
@ -1337,8 +1337,8 @@ public class CreateDatasetForm extends Composite{
return "Missing title"; return "Missing title";
} }
// better check for the title // better check for the title
String[] splittedTitle = title.split(" "); String[] splittedTitle = title.split(" ");
for (String word : splittedTitle) { for (String word : splittedTitle) {
String replaced = word.replaceAll(REGEX_TITLE_PRODUCT_SUBWORD, ""); String replaced = word.replaceAll(REGEX_TITLE_PRODUCT_SUBWORD, "");
@ -1390,7 +1390,7 @@ public class CreateDatasetForm extends Composite{
* @return * @return
*/ */
private boolean checkSelectedMetaDataProfile() { private boolean checkSelectedMetaDataProfile() {
return metadataTypeListbox.getSelectedItemText().equals(NONE_PROFILE) && (metadataTypeListbox.getItemCount() != 1); return metadataTypeListbox.getSelectedItemText().equals(NONE_PROFILE) && metadataTypeListbox.getItemCount() != 1;
} }
@UiHandler("resetButton") @UiHandler("resetButton")
@ -1520,8 +1520,8 @@ public class CreateDatasetForm extends Composite{
*/ */
private boolean hideManageResources(){ private boolean hideManageResources(){
return receivedBean.getResourceRoot() == null || (receivedBean.getResourceRoot().isFolder() && (receivedBean.getResourceRoot().getChildren() == null || return receivedBean.getResourceRoot() == null || receivedBean.getResourceRoot().isFolder() && (receivedBean.getResourceRoot().getChildren() == null ||
receivedBean.getResourceRoot().getChildren().isEmpty())); receivedBean.getResourceRoot().getChildren().isEmpty());
} }
} }