- Simantics.getSession().asyncRequest(
- NewCompositeActionFactory.createCompositeRequest(target, defaultName, compositeType),
- new Procedure<Resource>() {
- @Override
- public void execute(Resource composite) {
- Simantics.getSession().asyncRequest(new WriteRequest() {
-
- @Override
- public void perform(WriteGraph graph) throws DatabaseException {
- DistrictNetworkResource DN = DistrictNetworkResource.getInstance(graph);
- Resource diagram = graph.getSingleObject(composite, ModelingResources.getInstance(graph).CompositeToDiagram);
- graph.claim(diagram, DN.EdgeDefaultMapping, dialog.getDefaultEdgeMapping());
- graph.claim(diagram, DN.VertexDefaultMapping, dialog.getDefaultVertexMapping());
- graph.claim(diagram, DN.HasSpatialRefSystem, dialog.getCRS());
-
- // Generated name prefix from composite name
- String compositeName = graph.getRelatedValue2(composite, Layer0.getInstance(graph).HasName, Bindings.STRING);
- graph.claimLiteral(diagram, Layer0X.getInstance(graph).HasGeneratedNamePrefix, "N" + compositeName.substring(compositeName.length() - 1, compositeName.length()));
- }
- });
- DefaultActions.asyncPerformDefaultAction(Simantics.getSession(), composite, false, false, true);
- procedure.execute(composite);
- }
-
- @Override
- public void exception(Throwable t) {
- LOGGER.error("Failed to create composite, see exception for details.", t);
- procedure.exception(t);
- }
- });
+ Simantics.getSession().asyncRequest(new WriteResultRequest<Resource>() {
+
+ @Override
+ public Resource perform(WriteGraph graph) throws DatabaseException {
+ return DistrictNetworkUtil.createNetworkDiagram(graph, target, compositeType, defaultName,
+ dialog.getDefaultEdgeMapping(),
+ dialog.getDefaultVertexMapping(),
+ dialog.getRightClickVertexMapping(),
+ dialog.getLeftClickVertexMapping(),
+ dialog.getCRS()
+ );
+ }
+
+
+ }, new Procedure<Resource>() {
+
+ @Override
+ public void execute(Resource composite) {
+ DefaultActions.asyncPerformDefaultAction(Simantics.getSession(), composite, false, false, true);
+ procedure.execute(composite);
+ }
+
+ @Override
+ public void exception(Throwable t) {
+ LOGGER.error("Failed to create composite, see exception for details.", t);
+ procedure.exception(t);
+ }
+ });