Fixed data check

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-csv-export-widget@85652 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Giancarlo Panichi 2013-11-18 17:58:44 +00:00
parent 88c951d269
commit e1c8d3b072
1 changed files with 120 additions and 69 deletions

View File

@ -5,6 +5,8 @@ package org.gcube.portlets.user.td.csvexportwidget.client;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.gcube.portlets.user.td.csvexportwidget.client.workspace.WorkspacePanel;
import org.gcube.portlets.user.td.gwtservice.client.rpc.TDGWTServiceAsync;
@ -16,8 +18,17 @@ import org.gcube.portlets.widgets.lighttree.client.event.ItemSelectionEvent;
import org.gcube.portlets.widgets.lighttree.client.event.ItemSelectionHandler;
import com.allen_sauer.gwt.log.client.Log;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.user.client.Command;
import com.sencha.gxt.widget.core.client.FramedPanel;
import com.sencha.gxt.widget.core.client.box.AlertMessageBox;
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer;
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData;
import com.sencha.gxt.widget.core.client.event.HideEvent;
import com.sencha.gxt.widget.core.client.event.HideEvent.HideHandler;
import com.sencha.gxt.widget.core.client.form.FieldLabel;
import com.sencha.gxt.widget.core.client.form.TextField;
/**
*
@ -26,11 +37,11 @@ import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer;
*
*/
public class CSVWorkSpaceSelectionCard extends WizardCard {
protected CSVExportSession exportSession;
protected CSVWorkSpaceSelectionCard thisCard;
protected TextField fileName;
protected Item item;
protected VerticalLayoutContainer p;
protected WorkspacePanel wpanel;
@ -40,53 +51,97 @@ public class CSVWorkSpaceSelectionCard extends WizardCard {
this.exportSession = exportSession;
thisCard = this;
p=new VerticalLayoutContainer();
FramedPanel formPanel = new FramedPanel();
formPanel.setHeaderVisible(false);
p = new VerticalLayoutContainer();
formPanel.setWidget(p);
fileName = new TextField();
fileName.setAllowBlank(false);
fileName.setWidth("410px");
fileName.setValue("filename.csv");
p.add(new FieldLabel(fileName, "File Name"), new VerticalLayoutData(-1,
-1));
Log.debug("Set Workspace Panel");
wpanel=new WorkspacePanel();
wpanel.setSpWidth("536px");
wpanel.setSpHeight("384px");
List<ItemType> lItemType= new ArrayList<ItemType>();
wpanel = new WorkspacePanel();
wpanel.setSpWidth("410px");
wpanel.setSpHeight("356px");
List<ItemType> lItemType = new ArrayList<ItemType>();
lItemType.add(ItemType.ROOT);
lItemType.add(ItemType.FOLDER);
wpanel.setShowableTypes(lItemType);
wpanel.setSelectableTypes(lItemType);
wpanel.addSelectionHandler(new ItemSelectionHandler() {
@Override
public void onSelection(ItemSelectionEvent event) {
item=event.getSelectedItem();
Log.debug("Selected Item:"+item);
if(item.getType()==ItemType.FOLDER || item.getType()==ItemType.ROOT){
/*String filename=item.getName();
if(filename!=null&&!filename.isEmpty()){
Log.debug("Item name: "+filename);
Log.debug("Item path: "+item.getPath());
importSession.setItemId(item.getId());
getWizardWindow().setEnableNextButton(true);
} else {
Log.debug("Item name null or empty");
getWizardWindow().setEnableNextButton(false);
}*/
item = event.getSelectedItem();
Log.debug("Selected Item:" + item);
if (item.getType() == ItemType.FOLDER
|| item.getType() == ItemType.ROOT) {
thisCard.exportSession.setItemId(item.getId());
} else {
Log.debug("Item type:"+item.getType());
getWizardWindow().setEnableNextButton(false);
thisCard.exportSession.setItemId(null);
Log.debug("Item type:" + item.getType());
}
}
});
p.add(wpanel);
p.add(new FieldLabel(wpanel, "Directory"), new VerticalLayoutData(-1,
-1));
wpanel.loadTree();
setContent(p);
setContent(formPanel);
}
protected void checkExportData() {
Log.debug("File Name:" + fileName.getCurrentValue() + " Item id: "
+ exportSession.getItemId());
wpanel.disable();
getWizardWindow().setEnableNextButton(false);
getWizardWindow().setEnableBackButton(false);
AlertMessageBox d;
HideHandler hideHandler=new HideHandler() {
@Override
public void onHide(HideEvent event) {
wpanel.enable();
getWizardWindow().setEnableNextButton(true);
getWizardWindow().setEnableBackButton(true);
}
};
if (fileName.getCurrentValue() != null
&& !fileName.getCurrentValue().isEmpty() && fileName.validate()) {
Pattern p = Pattern.compile("[_a-zA-Z0-9\\-\\.]+");
Matcher matcher = p.matcher(fileName.getCurrentValue());
if (matcher.matches()) {
Log.debug("fileName match");
if (exportSession.getItemId() != null) {
exportSession.setFileName(fileName.getCurrentValue());
getFileFromWorkspace();
} else {
d = new AlertMessageBox("Attention", "No folder selected");
d.addHideHandler(hideHandler);
d.show();
}
} else {
Log.debug("fileName no match");
d = new AlertMessageBox("Attention", "No valid file name");
d.addHideHandler(hideHandler);
d.show();
}
} else {
d = new AlertMessageBox("Attention", "No valid file name");
d.addHideHandler(hideHandler);
d.show();
}
}
@Override
public void setup() {
Log.debug("CSVWorkSpaceSelectionCard Call Setup ");
@ -94,12 +149,9 @@ public class CSVWorkSpaceSelectionCard extends WizardCard {
@Override
public void execute() {
Log.debug("CSVWorkSpaceSelectionCard Call sayNextCard wpanel:"+wpanel);
wpanel.disable();
wpanel.startWaiting();
getWizardWindow().setEnableNextButton(false);
getWizardWindow().setEnableBackButton(false);
getFileFromWorkspace();
Log.debug("CSVWorkSpaceSelectionCard Call sayNextCard wpanel:"
+ wpanel);
checkExportData();
}
};
@ -119,40 +171,39 @@ public class CSVWorkSpaceSelectionCard extends WizardCard {
};
getWizardWindow().setPreviousButtonCommand(sayPreviousCard);
getWizardWindow().setEnableNextButton(false);
getWizardWindow().setEnableNextButton(true);
}
protected void getFileFromWorkspace(){
TDGWTServiceAsync tdGwtServiceAsync=TDGWTServiceAsync.INSTANCE;
/*tdGwtServiceAsync.setFileInWorkspace(exportSession, new AsyncCallback<Void>(){
@Override
public void onFailure(Throwable caught) {
wpanel.endWaiting();
thisCard.showErrorAndHide("Error", "Error retrieving the file from the workspace: "+caught.getLocalizedMessage(),
caught.toString(), caught);
}
@Override
public void onSuccess(Void result) {
wpanel.endWaiting();
goForward();
}
});
*/
}
protected void goForward(){
/*CSVConfigCard csvConfigCard = new CSVConfigCard(importSession);
getWizardWindow().addCard(csvConfigCard);
Log.info("NextCard CSVConfigCard");
getWizardWindow().nextCard();*/
protected void getFileFromWorkspace() {
TDGWTServiceAsync tdGwtServiceAsync = TDGWTServiceAsync.INSTANCE;
/*
* tdGwtServiceAsync.setFileInWorkspace(exportSession, new
* AsyncCallback<Void>(){
*
* @Override public void onFailure(Throwable caught) {
* wpanel.endWaiting(); thisCard.showErrorAndHide("Error",
* "Error retrieving the file from the workspace: "
* +caught.getLocalizedMessage(), caught.toString(), caught);
*
* }
*
* @Override public void onSuccess(Void result) { wpanel.endWaiting();
* goForward();
*
* }
*
* });
*/
}
protected void goForward() {
/*
* CSVConfigCard csvConfigCard = new CSVConfigCard(importSession);
* getWizardWindow().addCard(csvConfigCard);
* Log.info("NextCard CSVConfigCard"); getWizardWindow().nextCard();
*/
}
}