import org.eclipse.jface.operation.IRunnableWithProgress;
import org.simantics.Simantics;
import org.simantics.databoard.binding.error.BindingException;
+import org.simantics.databoard.binding.mutable.Variant;
import org.simantics.databoard.serialization.SerializationException;
import org.simantics.db.ReadGraph;
import org.simantics.db.common.request.ReadRequest;
import org.simantics.db.common.utils.Logger;
import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.util.ModelDependenciesBean;
+import org.simantics.db.layer0.util.TransferableGraphConfiguration2;
import org.simantics.modeling.ModelingUtils;
import org.simantics.modeling.ModelingUtils.LibraryInfo;
import org.simantics.utils.ui.dialogs.ShowMessage;
void exportModel(SubMonitor mon) throws IOException, DatabaseException, SerializationException, BindingException{
try {
- doExport(mon, exportModel.exportLocation, exportModel.model);
-
+ doExport(mon, exportModel.exportLocation, exportModel.model, exportModel.includeDependencies);
} catch (DatabaseException e) {
e.printStackTrace();
Logger.defaultLogError(e);
mon.setWorkRemaining(0);
}
}
-
- public static void doExport(IProgressMonitor monitor, final File location, final LibraryInfo info) throws DatabaseException, IOException {
- Simantics.sync(new ReadRequest() {
- @Override
- public void run(ReadGraph graph) throws DatabaseException {
- ModelingUtils.exportModel(graph, info.library.getResource(), location.getAbsolutePath(), "", 1);
- }
-
- });
+ public static void doExport(IProgressMonitor monitor, final File location, final LibraryInfo info, boolean includeDependencies) throws DatabaseException, IOException {
+ Simantics.sync(new ReadRequest() {
+ @Override
+ public void run(ReadGraph graph) throws DatabaseException {
+ TransferableGraphConfiguration2 conf = new TransferableGraphConfiguration2(graph, info.library.getResource(), true, false);
+ if (includeDependencies) {
+ ModelDependenciesBean bean = ModelDependenciesBean.create(graph, info.library.getResource());
+ conf.baseExtensions.put(ModelDependenciesBean.EXTENSION_KEY, new Variant(ModelDependenciesBean.BINDING, bean));
+ }
+ ModelingUtils.exportModel(graph, conf, location.getAbsolutePath(), "", 1);
+ }
+ });
}
-
+
}