import javax.swing.SwingWorker;
import net.sf.openrocket.document.OpenRocketDocument;
-import net.sf.openrocket.file.GeneralRocketLoader;
import net.sf.openrocket.file.RocketLoader;
+import net.sf.openrocket.gui.main.ExceptionHandler;
/**
*/
public class OpenFileWorker extends SwingWorker<OpenRocketDocument, Void> {
- private static final RocketLoader ROCKET_LOADER = new GeneralRocketLoader();
-
private final File file;
private final InputStream stream;
+ private final RocketLoader loader;
- public OpenFileWorker(File file) {
+ public OpenFileWorker(File file, RocketLoader loader) {
this.file = file;
this.stream = null;
+ this.loader = loader;
}
- public OpenFileWorker(InputStream stream) {
+ public OpenFileWorker(InputStream stream, RocketLoader loader) {
this.stream = stream;
this.file = null;
+ this.loader = loader;
}
+ public RocketLoader getRocketLoader() {
+ return loader;
+ }
@Override
protected OpenRocketDocument doInBackground() throws Exception {
is = new ProgressInputStream(is);
try {
- return ROCKET_LOADER.load(is);
+ return loader.load(is);
} finally {
try {
is.close();
} catch (Exception e) {
- System.err.println("Error closing file: ");
- e.printStackTrace();
+ ExceptionHandler.handleErrorCondition("Error closing file", e);
}
}
}