|
From: <bea...@us...> - 2006-09-30 17:45:00
|
Revision: 233
http://svn.sourceforge.net/cishell/?rev=233&view=rev
Author: bearsfan
Date: 2006-09-30 10:44:55 -0700 (Sat, 30 Sep 2006)
Log Message:
-----------
Close file after copy and added a default filename when saving.
Modified Paths:
--------------
trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/FileSaver.java
trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/Save.java
trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/SaveDataChooser.java
Modified: trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/FileSaver.java
===================================================================
--- trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/FileSaver.java 2006-09-30 16:21:53 UTC (rev 232)
+++ trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/FileSaver.java 2006-09-30 17:44:55 UTC (rev 233)
@@ -12,7 +12,9 @@
import org.cishell.framework.CIShellContext;
import org.cishell.framework.algorithm.AlgorithmProperty;
import org.cishell.framework.data.Data;
+import org.cishell.framework.data.DataProperty;
import org.cishell.service.conversion.Converter;
+import org.cishell.service.guibuilder.GUIBuilderService;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Shell;
@@ -28,11 +30,15 @@
private Shell parent;
private LogService logService;
private CIShellContext ciContext;
+
+ private GUIBuilderService guiBuilder;
+
public FileSaver(Shell parent, CIShellContext context){
this.parent = parent;
this.ciContext = context;
this.logService = (LogService) ciContext.getService(LogService.class.getName());
+ this.guiBuilder = (GUIBuilderService)context.getService(GUIBuilderService.class.getName());
}
private boolean confirmFileOverwrite(File file) {
@@ -40,6 +46,7 @@
+ "\nalready exists. Are you sure you want to overwrite it?";
logService.log(LogService.LOG_INFO, "Confirm File Overwrite: " + message);
return true;
+ //return guiBuilder.showConfirm("File Overwrite", message, message);
}
private boolean isSaveFileValid(File file) {
@@ -71,8 +78,15 @@
dialog.setFilterPath(currentDir.getPath());
dialog.setFilterExtensions(new String[]{"*" + ext});
- dialog.setText("Choose File");
- dialog.setFileName((String)data.getMetaData().get(AlgorithmProperty.LABEL));
+ dialog.setText("Choose File");
+
+ String fileLabel = (String)data.getMetaData().get(DataProperty.LABEL);
+ if (fileLabel == null) {
+ dialog.setFileName("*" + ext);
+ }
+ else {
+ dialog.setFileName(fileLabel + '.' + ext);
+ }
boolean done = false;
@@ -97,11 +111,17 @@
}
done = true ;
-
+
+ //guiBuilder.showInformation("File Saved",
+ // "File successfully Saved",
+ // "File saved: " + selectedFile.getPath());
logService.log(LogService.LOG_INFO, "File saved: " + selectedFile.getPath() + "\n");
//DataManagerService dms = (DataManagerService)context.getService(DataManagerService.class.getName());
//dms.addData(data);
} else {
+ //guiBuilder.showInformation("File Save Cancel",
+ // "File save has been cancelled",
+ // "File save has been cancelled");
logService.log(LogService.LOG_INFO, "File save cancelled.\n");
done = true;
return false;
@@ -120,6 +140,8 @@
writableChannel.truncate(0);
writableChannel.transferFrom(readableChannel, 0, readableChannel.size());
+ fis.close();
+ fos.close();
return true;
}
catch (IOException ioe) {
Modified: trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/Save.java
===================================================================
--- trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/Save.java 2006-09-30 16:21:53 UTC (rev 232)
+++ trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/Save.java 2006-09-30 17:44:55 UTC (rev 233)
@@ -4,48 +4,50 @@
import org.cishell.framework.CIShellContext;
import org.cishell.framework.algorithm.Algorithm;
+import org.cishell.framework.algorithm.DataValidator;
import org.cishell.framework.data.Data;
import org.cishell.service.conversion.Converter;
import org.cishell.service.conversion.DataConversionService;
+import org.cishell.service.guibuilder.GUIBuilderService;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.PlatformUI;
import org.osgi.service.log.LogService;
-public class Save implements Algorithm {
+public class Save implements Algorithm, DataValidator {
Data[] data;
Dictionary parameters;
CIShellContext context;
final Shell parentShell;
- DataConversionService conversionManager;
- LogService logService;
+ private GUIBuilderService guiBuilder;
+ private DataConversionService conversionManager;
+ private LogService logService;
public Save(Data[] data, Dictionary parameters, CIShellContext context) {
this.data = data;
this.parameters = parameters;
this.context = context;
- parentShell = PlatformUI.getWorkbench().getWorkbenchWindows()[0].getShell();
+ this.parentShell = PlatformUI.getWorkbench().getWorkbenchWindows()[0].getShell();
- conversionManager = (DataConversionService) context.getService(
+ this.conversionManager = (DataConversionService) context.getService(
DataConversionService.class.getName());
- logService = (LogService)context.getService(LogService.class.getName());
+ this.logService = (LogService)context.getService(LogService.class.getName());
+ this.guiBuilder = (GUIBuilderService)context.getService(GUIBuilderService.class.getName());
}
public Data[] execute() {
//This only checks the first Data in the array
final Converter[] converters = conversionManager.findConverters(data[0], "file-ext:*");
- /*
- for (int i = 0; i < converters.length; ++i) {
- Dictionary dict = converters[i].getProperties();
- Object inDataObj = dict.get(AlgorithmProperty.IN_DATA);
- Object outDataObj = dict.get(AlgorithmProperty.OUT_DATA);
- }
- */
+
if (converters.length < 1) {
logService.log(LogService.LOG_ERROR, "No valid converters found!");
+ //guiBuilder.showError("No Converters",
+ // "No valid converters for data type: " +
+ // data[0].getData().getClass().getName(),
+ // "Please install a plugin that will save the data type to a file");
}
else {
if (!parentShell.isDisposed()) {
@@ -64,4 +66,15 @@
}
return null;
}
+
+ public String validate(Data[] data) {
+ Converter[] converters = conversionManager.findConverters(data[0], "file-ext:*");
+ if (converters.length == 0) {
+ return "No valid converters from " +
+ data[0].getData().getClass().getName() + " to any file extension";
+ }
+ else {
+ return "";
+ }
+ }
}
\ No newline at end of file
Modified: trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/SaveDataChooser.java
===================================================================
--- trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/SaveDataChooser.java 2006-09-30 16:21:53 UTC (rev 232)
+++ trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/SaveDataChooser.java 2006-09-30 17:44:55 UTC (rev 233)
@@ -46,7 +46,6 @@
private StyledText detailPane;
//private Shell parent;
CIShellContext context;
- //private LogService logService;
public static final Image QUESTION = Display.getCurrent().getSystemImage(SWT.ICON_QUESTION);
/**
@@ -65,7 +64,6 @@
//this.parent = parent;
this.converterArray = converterArray;
this.context = context;
- //this.logService = (LogService) context.getService(LogService.class.getName());
}
/*
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|