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