- final Map<Resource, String> regions = new HashMap<>();
- final Map<Resource, String> routes = new HashMap<>();
-
- try {
- Simantics.getSession().syncRequest(new Read<Void>() {
- @Override
- public Void perform(ReadGraph graph) throws DatabaseException {
- Resource model = ActiveModels.getPossibleActiveModel(graph, Simantics.getProjectResource());
- List<Resource> regionCollection = QueryIndexUtils.searchByType(graph, model, DiagramRegionsResource.getInstance(graph).Region);
- for (Resource r : regionCollection) {
- String name = graph.getRelatedValue(r, Layer0.getInstance(graph).HasName);
- regions.put(r, name);
- }
-
- List<Resource> routeCollection = QueryIndexUtils.searchByType(graph, model, RouteResource.getInstance(graph).Route);
- for (Resource r : routeCollection) {
- String name = graph.getRelatedValue(r, Layer0.getInstance(graph).HasName);
- routes.put(r, name);
- }
- return null;
- }
- });
- } catch (DatabaseException e) {
- LOGGER.error("Failed to read routes and/or regions in the model", e);
- }
-
- regionNames = regions.values().toArray(new String[regions.size()]);
- regionResources = regions.keySet().toArray(new Resource[regions.size()]);
-
- routeNames = routes.values().toArray(new String[routes.size()]);
- routeResources = routes.keySet().toArray(new Resource[routes.size()]);
-
- try {
- Simantics.getSession().syncRequest(new ReadRequest() {
- @Override
- public void run(ReadGraph graph) throws DatabaseException {
- Layer0 L0 = Layer0.getInstance(graph);
- List<Resource> types = findComponentTypes(graph);
-
- componentTypes = new ArrayList<>(types.size() + 1);
- componentTypeNames = new ArrayList<>(types.size() + 1);
-
- componentTypes.add(null);
- componentTypeNames.add("Any type");
- componentTypes.addAll(types);
- for (Resource t : types) {
- componentTypeNames.add(graph.getValue2(t, L0.HasName));
- }
- }
- });
- } catch (DatabaseException e) {
- LOGGER.error("Failed to read district component types", e);
- }
-
- componentType = elementSelector.getSelector().componentType;
-
- propertyNames = new ArrayList<>();
- propertyLabels = new ArrayList<>();
-
- try {
- updatePropertyList();
- } catch (DatabaseException e) {
- LOGGER.error("Failed to read district component properties", e);
- }
-