From: <bh...@us...> - 2006-10-16 20:40:48
|
Revision: 286 http://svn.sourceforge.net/cishell/?rev=286&view=rev Author: bh2 Date: 2006-10-16 13:40:27 -0700 (Mon, 16 Oct 2006) Log Message: ----------- put a bandaid on the persistence plugin. This code needs cleaned up B-A-D! Modified Paths: -------------- trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/load/LoadDataChooser.java trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/Save.java Modified: trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/load/LoadDataChooser.java =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/load/LoadDataChooser.java 2006-10-16 19:42:12 UTC (rev 285) +++ trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/load/LoadDataChooser.java 2006-10-16 20:40:27 UTC (rev 286) @@ -6,9 +6,14 @@ */ package org.cishell.reference.gui.persistence.load; +import java.io.File; import java.util.ArrayList; -import java.io.File; +import org.cishell.framework.CIShellContext; +import org.cishell.framework.algorithm.AlgorithmFactory; +import org.cishell.framework.data.BasicData; +import org.cishell.framework.data.Data; +import org.cishell.reference.gui.common.AbstractDialog; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.StyleRange; import org.eclipse.swt.custom.StyledText; @@ -22,18 +27,10 @@ import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.List; import org.eclipse.swt.widgets.Shell; - import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceReference; import org.osgi.service.log.LogService; -import org.cishell.framework.CIShellContext; -import org.cishell.framework.algorithm.AlgorithmFactory; -import org.cishell.framework.data.BasicData; -import org.cishell.framework.data.Data; - -import org.cishell.reference.gui.common.AbstractDialog; - /** * * @author Team IVC (Weixia Huang, James Ellis) @@ -162,15 +159,25 @@ } private void selectionMade(int selectedIndex) { - - logger.log(LogService.LOG_INFO, "Loaded: "+theFile.getPath()); AlgorithmFactory persister =(AlgorithmFactory) bContext.getService(persisterArray[selectedIndex]); - Data[] dm = new Data[]{new BasicData(theFile.getPath(),String.class.getName())}; - dm = persister.createAlgorithm(dm, null, ciContext).execute(); - for(int i = 0; i<dm.length; i++){ - returnList.add(dm[i]); - } - close(true); + Data[] dm = null; + try { + dm = new Data[]{new BasicData(theFile.getPath(),String.class.getName())}; + dm = persister.createAlgorithm(dm, null, ciContext).execute(); + } catch (Throwable e) { + e.printStackTrace(); + } + + if (dm != null) { + logger.log(LogService.LOG_INFO, "Loaded: "+theFile.getPath()); + + for(int i = 0; i<dm.length; i++){ + returnList.add(dm[i]); + } + close(true); + } else { + logger.log(LogService.LOG_ERROR, "Unable to load with selected loader"); + } } public void createDialogButtons(Composite parent) { 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-10-16 19:42:12 UTC (rev 285) +++ trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/Save.java 2006-10-16 20:40:27 UTC (rev 286) @@ -8,6 +8,7 @@ import org.cishell.service.conversion.Converter; import org.cishell.service.conversion.DataConversionService; import org.cishell.service.guibuilder.GUIBuilderService; +import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.PlatformUI; @@ -63,17 +64,30 @@ } else { if (!parentShell.isDisposed()) { - parentShell.getDisplay().syncExec(new Runnable() { + guiRun(new Runnable() { public void run() { - SaveDataChooser sdc = new SaveDataChooser(data[0], - parentShell, converters, - "Save", - context); - sdc.createContent(parentShell); - sdc.open(); + if (converters.length == 1) { + final FileSaver saver = new FileSaver(parentShell, context); + saver.save(converters[0], data[0]); + } else { + SaveDataChooser sdc = new SaveDataChooser(data[0], + parentShell, converters, + "Save", + context); + sdc.createContent(new Shell(parentShell)); + sdc.open(); + } }}); } } return null; } + + private void guiRun(Runnable run) { + if (Thread.currentThread() == Display.getDefault().getThread()) { + run.run(); + } else { + parentShell.getDisplay().syncExec(run); + } + } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |