|
From: <mpe...@us...> - 2013-03-28 13:49:31
|
Revision: 16176
http://unicore.svn.sourceforge.net/unicore/?rev=16176&view=rev
Author: mpetrova
Date: 2013-03-28 13:49:22 +0000 (Thu, 28 Mar 2013)
Log Message:
-----------
Input files as environment variables - fixed ;
Delete of empty rows in filesets is now possible;
Modified Paths:
--------------
unicore-portal/trunk/core/src/main/java/eu/unicore/portal/core/utils/StringUtils.java
unicore-portal/trunk/grid.core/src/main/java/eu/unicore/portal/grid/core/jobs/GenericApplicationParameterModel.java
unicore-portal/trunk/grid.core/src/main/java/eu/unicore/portal/grid/core/jobs/jsdl/U6JSDLRenderer.java
unicore-portal/trunk/grid.core/src/main/java/eu/unicore/portal/grid/core/params/FileSetParameterValue.java
unicore-portal/trunk/grid.ui/src/main/java/eu/unicore/portal/grid/ui/browser/U6DataEndpointViewer.java
unicore-portal/trunk/grid.ui/src/main/java/eu/unicore/portal/grid/ui/jobs/generic/GenericApplicationInputPanel.java
unicore-portal/trunk/grid.ui/src/main/java/eu/unicore/portal/grid/ui/jobs/params/InputFileRow.java
unicore-portal/trunk/grid.ui/src/main/java/eu/unicore/portal/grid/ui/jobs/params/InputFileSetRow.java
unicore-portal/trunk/ui/src/main/java/eu/unicore/portal/ui/Styles.java
unicore-portal/trunk/ui/src/main/java/eu/unicore/portal/ui/panels/DetailsPanel.java
unicore-portal/trunk/ui/src/main/resources/eu/unicore/portal/ui/i18n/UnicoreUIMessages.properties
Modified: unicore-portal/trunk/core/src/main/java/eu/unicore/portal/core/utils/StringUtils.java
===================================================================
--- unicore-portal/trunk/core/src/main/java/eu/unicore/portal/core/utils/StringUtils.java 2013-03-28 13:48:39 UTC (rev 16175)
+++ unicore-portal/trunk/core/src/main/java/eu/unicore/portal/core/utils/StringUtils.java 2013-03-28 13:49:22 UTC (rev 16176)
@@ -84,4 +84,18 @@
public static String removeWhiteSpaces(String filename) {
return filename.replaceAll("\\s+", "_");
}
+
+
+ public static boolean isValidFilename(String fname){
+ String regex = "^[-_.A-Za-z0-9]*"; //$NON-NLS-1$
+ Pattern pattern = Pattern.compile(regex);//("^[^/./\\:*?\"<>|]+$");
+ Matcher matcher = pattern.matcher(fname);
+
+ boolean result = matcher.matches();
+ if(result == false){
+//TODO USER notification
+// logger.warn(GlobalState.getMessage(GridUII18N.ID, "InputFileRow.filename_format_error")); //$NON-NLS-1$
+ }
+ return result;
+ }
}
\ No newline at end of file
Modified: unicore-portal/trunk/grid.core/src/main/java/eu/unicore/portal/grid/core/jobs/GenericApplicationParameterModel.java
===================================================================
--- unicore-portal/trunk/grid.core/src/main/java/eu/unicore/portal/grid/core/jobs/GenericApplicationParameterModel.java 2013-03-28 13:48:39 UTC (rev 16175)
+++ unicore-portal/trunk/grid.core/src/main/java/eu/unicore/portal/grid/core/jobs/GenericApplicationParameterModel.java 2013-03-28 13:49:22 UTC (rev 16176)
@@ -65,7 +65,7 @@
public static final String ARGUMENTS = "ARGUMENTS"; //$NON-NLS-1$
public static final String OUTPUT_FILESET = "OUT_FILES"; //$NON-NLS-1$
- public static final String INPUT_FILESET = "IN_FILES"; //$NON-NLS-1$
+ public static final String INPUT_FILESET = "GENERIC_FILES"; //$NON-NLS-1$
public static final String CUSTOM_EXECUTABLE = "EXECUTABLE"; //$NON-NLS-1$
private List<ApplicationMetaData> applications;
Modified: unicore-portal/trunk/grid.core/src/main/java/eu/unicore/portal/grid/core/jobs/jsdl/U6JSDLRenderer.java
===================================================================
--- unicore-portal/trunk/grid.core/src/main/java/eu/unicore/portal/grid/core/jobs/jsdl/U6JSDLRenderer.java 2013-03-28 13:48:39 UTC (rev 16175)
+++ unicore-portal/trunk/grid.core/src/main/java/eu/unicore/portal/grid/core/jobs/jsdl/U6JSDLRenderer.java 2013-03-28 13:49:22 UTC (rev 16176)
@@ -9,6 +9,7 @@
import org.ggf.schemas.jsdl.x2005.x11.jsdl.JobIdentificationType;
import eu.unicore.portal.grid.core.jobs.ApplicationMetaData;
+import eu.unicore.portal.grid.core.jobs.GenericApplicationParameterModel;
import eu.unicore.portal.grid.core.jobs.JobDescription;
import eu.unicore.portal.grid.core.jobs.OSRequirement;
import eu.unicore.portal.grid.core.jobs.OSType;
@@ -109,7 +110,10 @@
for (DataStaging data : f.getDataStagings()) {
if(data.isUsed()){
addDataStagingImportElement(value, data.getSource(), data.getFileSystem(), data.getFile());
- addEnvVariable(value, f.getName(), data.getFile());
+ String filesetName = f.getName();
+ if(!filesetName.isEmpty() && !filesetName.equals(GenericApplicationParameterModel.INPUT_FILESET)) {
+ addEnvVariable(value, filesetName, data.getFile());
+ }
}
}
}
Modified: unicore-portal/trunk/grid.core/src/main/java/eu/unicore/portal/grid/core/params/FileSetParameterValue.java
===================================================================
--- unicore-portal/trunk/grid.core/src/main/java/eu/unicore/portal/grid/core/params/FileSetParameterValue.java 2013-03-28 13:48:39 UTC (rev 16175)
+++ unicore-portal/trunk/grid.core/src/main/java/eu/unicore/portal/grid/core/params/FileSetParameterValue.java 2013-03-28 13:49:22 UTC (rev 16176)
@@ -136,7 +136,13 @@
{
try
{
- return CloneUtils.deepClone(FileSetParameterValue.class,this);
+ FileSetParameterValue copiedValue = CloneUtils.deepClone(FileSetParameterValue.class,this);
+ copiedValue.setName(this.getName());
+ copiedValue.setMetaData(this.getMetaData());
+ copiedValue.setUsed(this.isUsed());
+
+ return copiedValue;
+
} catch (CloneNotSupportedException e)
{
logger .warn(GlobalState.getMessage(GridCoreI18N.ID, "Application.unable_to_clone_app"), e); //$NON-NLS-1$
Modified: unicore-portal/trunk/grid.ui/src/main/java/eu/unicore/portal/grid/ui/browser/U6DataEndpointViewer.java
===================================================================
--- unicore-portal/trunk/grid.ui/src/main/java/eu/unicore/portal/grid/ui/browser/U6DataEndpointViewer.java 2013-03-28 13:48:39 UTC (rev 16175)
+++ unicore-portal/trunk/grid.ui/src/main/java/eu/unicore/portal/grid/ui/browser/U6DataEndpointViewer.java 2013-03-28 13:49:22 UTC (rev 16176)
@@ -30,6 +30,7 @@
import eu.unicore.portal.grid.core.nodes.u6.StorageNode;
import eu.unicore.portal.grid.ui.i18n.GridUII18N;
import eu.unicore.portal.ui.PortalApplication;
+import eu.unicore.portal.ui.Styles;
import eu.unicore.portal.ui.i18n.UII18N;
import eu.unicore.portal.ui.viewers.DataEndpointViewer;
@@ -247,7 +248,7 @@
protected Upload createUploadPopup() {
upload = new Upload();
upload.setButtonCaption("");
- upload.setStyleName("my-upload-button");
+ upload.setStyleName(Styles.UPLOAD);
upload.setDescription(GlobalState.getMessage(UII18N.ID,
"VFSAction.upload_file"));
upload.setImmediate(true);
Modified: unicore-portal/trunk/grid.ui/src/main/java/eu/unicore/portal/grid/ui/jobs/generic/GenericApplicationInputPanel.java
===================================================================
--- unicore-portal/trunk/grid.ui/src/main/java/eu/unicore/portal/grid/ui/jobs/generic/GenericApplicationInputPanel.java 2013-03-28 13:48:39 UTC (rev 16175)
+++ unicore-portal/trunk/grid.ui/src/main/java/eu/unicore/portal/grid/ui/jobs/generic/GenericApplicationInputPanel.java 2013-03-28 13:49:22 UTC (rev 16176)
@@ -838,6 +838,7 @@
private void doDeleteSelectedRows(List<ParameterRow> allRows){
for (ParameterRow row : allRows) {
if (row.isChecked()) {
+ ((InputFileSetRow) row).getDeleteButton().setEnabled(true);
((InputFileSetRow) row).getDeleteButton().click();
}
}
Modified: unicore-portal/trunk/grid.ui/src/main/java/eu/unicore/portal/grid/ui/jobs/params/InputFileRow.java
===================================================================
--- unicore-portal/trunk/grid.ui/src/main/java/eu/unicore/portal/grid/ui/jobs/params/InputFileRow.java 2013-03-28 13:48:39 UTC (rev 16175)
+++ unicore-portal/trunk/grid.ui/src/main/java/eu/unicore/portal/grid/ui/jobs/params/InputFileRow.java 2013-03-28 13:49:22 UTC (rev 16176)
@@ -6,8 +6,6 @@
import java.beans.PropertyChangeEvent;
import java.io.OutputStream;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
import org.apache.commons.vfs2.FileObject;
import org.apache.commons.vfs2.FileSystemException;
@@ -41,11 +39,11 @@
import eu.unicore.portal.grid.core.params.FileParameterValue;
import eu.unicore.portal.grid.core.params.ParameterMetaData;
import eu.unicore.portal.grid.ui.i18n.GridUII18N;
+import eu.unicore.portal.ui.Styles;
import eu.unicore.portal.ui.actions.VFSAction;
import eu.unicore.portal.ui.data.VFSFileButton;
import eu.unicore.portal.ui.data.VFSUtils;
-
public class InputFileRow extends ParameterRow {
private static final long serialVersionUID = 1L;
@@ -146,7 +144,7 @@
createNew.setPopupVisible(false);
}
});
- createNew.setStyleName("my-create-popup"); //$NON-NLS-1$
+ createNew.setStyleName(Styles.CREATE_POPUP); //$NON-NLS-1$
buttons.addComponent(createNew);
edit = new VFSFileButton(VFSAction.ACTION_EDIT, new ClickListener() {
@@ -200,7 +198,7 @@
}
fname = StringUtils.removeWhiteSpaces(fname);
// Prevent from recursion without a bottom
- if (fname.equals(filename) || (fname + ".txt").equals(filename)) { //$NON-NLS-1$
+ if (fname.equals(filename)) { //$NON-NLS-1$
setSourceValue(filename);
return;
}
@@ -209,14 +207,11 @@
removeFileFromField();
return;
}
- if (isValidFilename(fname) == false) {
+ if (StringUtils.isValidFilename(fname) == false) {
setSourceValue(filename);
updateModel(filename, isChecked());
return;
}
- if (sourceUrl.isEmpty()) {
- fname += ".txt"; //$NON-NLS-1$
- }
try {
FileObject newFile = inputDir.resolveFile(fname);
@@ -313,10 +308,9 @@
}
filename = StringUtils.removeWhiteSpaces(filename);
- if (filename.length() == 0 || isValidFilename(filename) == false) {
+ if (filename.length() == 0 || StringUtils.isValidFilename(filename) == false) {
return;
}
- filename += ".txt"; //$NON-NLS-1$
try {
FileObject file = inputDir.resolveFile(filename);
@@ -348,14 +342,14 @@
logger.warn("Unable to delete file: "+e.getLocalizedMessage(),e); //$NON-NLS-1$
}
}
- else logger.warn("Not a file"); //$NON-NLS-1$
+// else logger.warn("Not a file"); //$NON-NLS-1$
}
protected Upload createUploadFilePopup()
{
upload = new Upload();
upload.setButtonCaption(""); //$NON-NLS-1$
- upload.setStyleName("my-upload-button"); //$NON-NLS-1$
+ upload.setStyleName(Styles.UPLOAD); //$NON-NLS-1$
upload.setDescription(GlobalState.getMessage(GridUII18N.ID, "InputFileRow.upload")); //$NON-NLS-1$
upload.setImmediate(true);
upload.addFinishedListener(new FinishedListener() {
@@ -425,16 +419,5 @@
protected void setSourceUrl(String sourceUrl) {
this.sourceUrl = sourceUrl;
}
-
- private boolean isValidFilename(String fname){
- String regex = "^[-_.,A-Za-z0-9]*"; //$NON-NLS-1$
- Pattern pattern = Pattern.compile(regex);//("^[^/./\\:*?\"<>|]+$");
- Matcher matcher = pattern.matcher(fname);
-
- boolean result = matcher.matches();
- if(result == false){
- logger.warn(GlobalState.getMessage(GridUII18N.ID, "InputFileRow.filename_format_error")); //$NON-NLS-1$
- }
- return result;
- }
+
}
Modified: unicore-portal/trunk/grid.ui/src/main/java/eu/unicore/portal/grid/ui/jobs/params/InputFileSetRow.java
===================================================================
--- unicore-portal/trunk/grid.ui/src/main/java/eu/unicore/portal/grid/ui/jobs/params/InputFileSetRow.java 2013-03-28 13:48:39 UTC (rev 16175)
+++ unicore-portal/trunk/grid.ui/src/main/java/eu/unicore/portal/grid/ui/jobs/params/InputFileSetRow.java 2013-03-28 13:49:22 UTC (rev 16176)
@@ -86,16 +86,19 @@
@Override
protected void deleteFile() {
- if (!getSourceUrl().isEmpty()) {
- try {
- setToBeDeleted(true);
- super.deleteFile();
- this.dispose();
- } catch (Exception e) {
- logger.warn(
- "Unable to delete file: " + e.getLocalizedMessage(), e);
- }
+ setToBeDeleted(true);
+ try {
+ super.deleteFile();
+ } catch (Exception e) {
+ logger.warn("Unable to delete file: " + e.getLocalizedMessage(), e);
}
+ this.dispose();
+ if(getSourceUrl().isEmpty()){
+ FileSetParameterValue val = (FileSetParameterValue)getModel().get(ParameterValue.class, getMetaData().getName());
+ DataStaging ds = val.getDataStaging(getFilename());
+ val.removeDataStaging(ds);
+ getModel().setInputFileset(this, val);
+ }
}
@Override
Modified: unicore-portal/trunk/ui/src/main/java/eu/unicore/portal/ui/Styles.java
===================================================================
--- unicore-portal/trunk/ui/src/main/java/eu/unicore/portal/ui/Styles.java 2013-03-28 13:48:39 UTC (rev 16175)
+++ unicore-portal/trunk/ui/src/main/java/eu/unicore/portal/ui/Styles.java 2013-03-28 13:49:22 UTC (rev 16176)
@@ -27,8 +27,15 @@
/**
- * Style constant used for headers of level 3.
+ * Style constant used for labels with bold and lighter blue font.
*/
- public static final String CAPTION3 = "v-caption-h2"; //$NON-NLS-1$
-
+ public static final String CAPTION_BOLD_BLUE = "details-caption"; //$NON-NLS-1$
+ /**
+ * Style constant used for a button with a create icon only.
+ */
+ public static final String CREATE_POPUP = "my-create-popup";
+ /**
+ * Style constant used for a button with a upload icon only.
+ */
+ public static final String UPLOAD = "my-upload-button";
}
Modified: unicore-portal/trunk/ui/src/main/java/eu/unicore/portal/ui/panels/DetailsPanel.java
===================================================================
--- unicore-portal/trunk/ui/src/main/java/eu/unicore/portal/ui/panels/DetailsPanel.java 2013-03-28 13:48:39 UTC (rev 16175)
+++ unicore-portal/trunk/ui/src/main/java/eu/unicore/portal/ui/panels/DetailsPanel.java 2013-03-28 13:49:22 UTC (rev 16176)
@@ -97,7 +97,7 @@
for(Pair<Component, Component> c : components)
{
Component left = c.getM1();
- left.setStyleName("details-caption");
+ left.setStyleName(Styles.CAPTION_BOLD_BLUE);
addComponent(left);
addComponent(c.getM2());
}
Modified: unicore-portal/trunk/ui/src/main/resources/eu/unicore/portal/ui/i18n/UnicoreUIMessages.properties
===================================================================
--- unicore-portal/trunk/ui/src/main/resources/eu/unicore/portal/ui/i18n/UnicoreUIMessages.properties 2013-03-28 13:48:39 UTC (rev 16175)
+++ unicore-portal/trunk/ui/src/main/resources/eu/unicore/portal/ui/i18n/UnicoreUIMessages.properties 2013-03-28 13:49:22 UTC (rev 16176)
@@ -27,6 +27,7 @@
#------------Main View------------------
MainView.welcome=Welcome
MainView.welcome_usr=Welcome, dear {0}
+MainView.events=Latest events
#------------User Profile View----------------
UserProfileView.username=Username
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|