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. |