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.ArrayList;
import java.util.List; 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.csvexportwidget.client.workspace.WorkspacePanel;
import org.gcube.portlets.user.td.gwtservice.client.rpc.TDGWTServiceAsync; 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 org.gcube.portlets.widgets.lighttree.client.event.ItemSelectionHandler;
import com.allen_sauer.gwt.log.client.Log; 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.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;
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 { public class CSVWorkSpaceSelectionCard extends WizardCard {
protected CSVExportSession exportSession; protected CSVExportSession exportSession;
protected CSVWorkSpaceSelectionCard thisCard; protected CSVWorkSpaceSelectionCard thisCard;
protected TextField fileName;
protected Item item; protected Item item;
protected VerticalLayoutContainer p; protected VerticalLayoutContainer p;
protected WorkspacePanel wpanel; protected WorkspacePanel wpanel;
@ -40,53 +51,97 @@ public class CSVWorkSpaceSelectionCard extends WizardCard {
this.exportSession = exportSession; this.exportSession = exportSession;
thisCard = this; 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"); Log.debug("Set Workspace Panel");
wpanel=new WorkspacePanel(); wpanel = new WorkspacePanel();
wpanel.setSpWidth("536px"); wpanel.setSpWidth("410px");
wpanel.setSpHeight("384px"); wpanel.setSpHeight("356px");
List<ItemType> lItemType= new ArrayList<ItemType>(); List<ItemType> lItemType = new ArrayList<ItemType>();
lItemType.add(ItemType.ROOT); lItemType.add(ItemType.ROOT);
lItemType.add(ItemType.FOLDER); lItemType.add(ItemType.FOLDER);
wpanel.setShowableTypes(lItemType); wpanel.setShowableTypes(lItemType);
wpanel.setSelectableTypes(lItemType); wpanel.setSelectableTypes(lItemType);
wpanel.addSelectionHandler(new ItemSelectionHandler() { wpanel.addSelectionHandler(new ItemSelectionHandler() {
@Override @Override
public void onSelection(ItemSelectionEvent event) { public void onSelection(ItemSelectionEvent event) {
item=event.getSelectedItem(); item = event.getSelectedItem();
Log.debug("Selected Item:"+item); Log.debug("Selected Item:" + item);
if(item.getType()==ItemType.FOLDER || item.getType()==ItemType.ROOT){ if (item.getType() == ItemType.FOLDER
/*String filename=item.getName(); || item.getType() == ItemType.ROOT) {
if(filename!=null&&!filename.isEmpty()){ thisCard.exportSession.setItemId(item.getId());
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);
}*/
} else { } else {
Log.debug("Item type:"+item.getType()); thisCard.exportSession.setItemId(null);
getWizardWindow().setEnableNextButton(false); Log.debug("Item type:" + item.getType());
} }
} }
}); });
p.add(wpanel); p.add(new FieldLabel(wpanel, "Directory"), new VerticalLayoutData(-1,
-1));
wpanel.loadTree(); 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 @Override
public void setup() { public void setup() {
Log.debug("CSVWorkSpaceSelectionCard Call Setup "); Log.debug("CSVWorkSpaceSelectionCard Call Setup ");
@ -94,12 +149,9 @@ public class CSVWorkSpaceSelectionCard extends WizardCard {
@Override @Override
public void execute() { public void execute() {
Log.debug("CSVWorkSpaceSelectionCard Call sayNextCard wpanel:"+wpanel); Log.debug("CSVWorkSpaceSelectionCard Call sayNextCard wpanel:"
wpanel.disable(); + wpanel);
wpanel.startWaiting(); checkExportData();
getWizardWindow().setEnableNextButton(false);
getWizardWindow().setEnableBackButton(false);
getFileFromWorkspace();
} }
}; };
@ -119,40 +171,39 @@ public class CSVWorkSpaceSelectionCard extends WizardCard {
}; };
getWizardWindow().setPreviousButtonCommand(sayPreviousCard); getWizardWindow().setPreviousButtonCommand(sayPreviousCard);
getWizardWindow().setEnableNextButton(false); getWizardWindow().setEnableNextButton(true);
} }
protected void getFileFromWorkspace(){
TDGWTServiceAsync tdGwtServiceAsync=TDGWTServiceAsync.INSTANCE;
/*tdGwtServiceAsync.setFileInWorkspace(exportSession, new AsyncCallback<Void>(){
@Override protected void getFileFromWorkspace() {
public void onFailure(Throwable caught) { TDGWTServiceAsync tdGwtServiceAsync = TDGWTServiceAsync.INSTANCE;
wpanel.endWaiting(); /*
thisCard.showErrorAndHide("Error", "Error retrieving the file from the workspace: "+caught.getLocalizedMessage(), * tdGwtServiceAsync.setFileInWorkspace(exportSession, new
caught.toString(), caught); * AsyncCallback<Void>(){
*
} * @Override public void onFailure(Throwable caught) {
* wpanel.endWaiting(); thisCard.showErrorAndHide("Error",
@Override * "Error retrieving the file from the workspace: "
public void onSuccess(Void result) { * +caught.getLocalizedMessage(), caught.toString(), caught);
wpanel.endWaiting(); *
goForward(); * }
*
} * @Override public void onSuccess(Void result) { wpanel.endWaiting();
* goForward();
}); *
*/ * }
} *
* });
protected void goForward(){ */
/*CSVConfigCard csvConfigCard = new CSVConfigCard(importSession); }
getWizardWindow().addCard(csvConfigCard);
Log.info("NextCard CSVConfigCard"); protected void goForward() {
getWizardWindow().nextCard();*/ /*
* CSVConfigCard csvConfigCard = new CSVConfigCard(importSession);
* getWizardWindow().addCard(csvConfigCard);
* Log.info("NextCard CSVConfigCard"); getWizardWindow().nextCard();
*/
} }
} }