Search in sources :

Example 6 with Tuple

use of au.gov.asd.tac.constellation.utilities.datastructure.Tuple in project constellation by constellation-app.

the class CopyCustomMarkersToGraphPlugin method edit.

@Override
protected void edit(final GraphWriteMethods graph, final PluginInteraction interaction, final PluginParameters parameters) throws InterruptedException, PluginException {
    final int vertexIdentifierAttributeId = VisualConcept.VertexAttribute.IDENTIFIER.ensure(graph);
    final int vertexTypeAttributeId = AnalyticConcept.VertexAttribute.TYPE.ensure(graph);
    final int vertexLatitudeAttributeId = SpatialConcept.VertexAttribute.LATITUDE.ensure(graph);
    final int vertexLongitudeAttributeId = SpatialConcept.VertexAttribute.LONGITUDE.ensure(graph);
    final int vertexPrecisionAttributeId = SpatialConcept.VertexAttribute.PRECISION.ensure(graph);
    final int vertexShapeAttributeId = SpatialConcept.VertexAttribute.SHAPE.ensure(graph);
    final MarkerCache markerCache = MarkerCache.getDefault();
    for (final ConstellationAbstractMarker marker : markerCache.getCustomMarkers()) {
        final String markerId = marker.getId() == null ? marker.toString() : marker.getId();
        final int vertexId = graph.addVertex();
        graph.setStringValue(vertexIdentifierAttributeId, vertexId, markerId);
        graph.setObjectValue(vertexTypeAttributeId, vertexId, AnalyticConcept.VertexType.LOCATION);
        graph.setFloatValue(vertexLatitudeAttributeId, vertexId, marker.getLocation().getLat());
        graph.setFloatValue(vertexLongitudeAttributeId, vertexId, marker.getLocation().getLon());
        graph.setFloatValue(vertexPrecisionAttributeId, vertexId, (float) marker.getRadius());
        try {
            final Shape.GeometryType geometryType;
            if (marker instanceof ConstellationMultiMarker) {
                geometryType = Shape.GeometryType.MULTI_POLYGON;
            } else if (marker instanceof ConstellationPolygonMarker) {
                geometryType = Shape.GeometryType.POLYGON;
            } else if (marker instanceof ConstellationLineMarker) {
                geometryType = Shape.GeometryType.LINE;
            } else {
                geometryType = Shape.GeometryType.POINT;
            }
            final List<Tuple<Double, Double>> coordinates = marker.getLocations().stream().map(location -> Tuple.create((double) location.getLon(), (double) location.getLat())).collect(Collectors.toList());
            final String shape = Shape.generateShape(markerId, geometryType, coordinates);
            graph.setStringValue(vertexShapeAttributeId, vertexId, shape);
        } catch (final IOException ex) {
            throw new PluginException(PluginNotificationLevel.ERROR, ex);
        }
    }
    PluginExecution.withPlugin(VisualSchemaPluginRegistry.COMPLETE_SCHEMA).executeNow(graph);
    PluginExecution.withPlugin(InteractiveGraphPluginRegistry.RESET_VIEW).executeNow(graph);
}
Also used : ConstellationAbstractMarker(au.gov.asd.tac.constellation.views.mapview.markers.ConstellationAbstractMarker) GraphWriteMethods(au.gov.asd.tac.constellation.graph.GraphWriteMethods) Tuple(au.gov.asd.tac.constellation.utilities.datastructure.Tuple) SimpleEditPlugin(au.gov.asd.tac.constellation.plugins.templates.SimpleEditPlugin) SpatialConcept(au.gov.asd.tac.constellation.graph.schema.analytic.concept.SpatialConcept) VisualConcept(au.gov.asd.tac.constellation.graph.schema.visual.concept.VisualConcept) MarkerCache(au.gov.asd.tac.constellation.views.mapview.utilities.MarkerCache) ConstellationLineMarker(au.gov.asd.tac.constellation.views.mapview.markers.ConstellationLineMarker) Plugin(au.gov.asd.tac.constellation.plugins.Plugin) PluginInteraction(au.gov.asd.tac.constellation.plugins.PluginInteraction) Shape(au.gov.asd.tac.constellation.utilities.geospatial.Shape) ServiceProvider(org.openide.util.lookup.ServiceProvider) PluginTags(au.gov.asd.tac.constellation.plugins.templates.PluginTags) PluginExecution(au.gov.asd.tac.constellation.plugins.PluginExecution) ConstellationPolygonMarker(au.gov.asd.tac.constellation.views.mapview.markers.ConstellationPolygonMarker) PluginParameters(au.gov.asd.tac.constellation.plugins.parameters.PluginParameters) InteractiveGraphPluginRegistry(au.gov.asd.tac.constellation.graph.interaction.InteractiveGraphPluginRegistry) IOException(java.io.IOException) ConstellationAbstractMarker(au.gov.asd.tac.constellation.views.mapview.markers.ConstellationAbstractMarker) PluginException(au.gov.asd.tac.constellation.plugins.PluginException) Collectors(java.util.stream.Collectors) PluginNotificationLevel(au.gov.asd.tac.constellation.plugins.PluginNotificationLevel) PluginInfo(au.gov.asd.tac.constellation.plugins.PluginInfo) List(java.util.List) AnalyticConcept(au.gov.asd.tac.constellation.graph.schema.analytic.concept.AnalyticConcept) ConstellationMultiMarker(au.gov.asd.tac.constellation.views.mapview.markers.ConstellationMultiMarker) VisualSchemaPluginRegistry(au.gov.asd.tac.constellation.graph.schema.visual.VisualSchemaPluginRegistry) NbBundle(org.openide.util.NbBundle) Shape(au.gov.asd.tac.constellation.utilities.geospatial.Shape) PluginException(au.gov.asd.tac.constellation.plugins.PluginException) ConstellationMultiMarker(au.gov.asd.tac.constellation.views.mapview.markers.ConstellationMultiMarker) IOException(java.io.IOException) ConstellationLineMarker(au.gov.asd.tac.constellation.views.mapview.markers.ConstellationLineMarker) ConstellationPolygonMarker(au.gov.asd.tac.constellation.views.mapview.markers.ConstellationPolygonMarker) MarkerCache(au.gov.asd.tac.constellation.views.mapview.utilities.MarkerCache) Tuple(au.gov.asd.tac.constellation.utilities.datastructure.Tuple)

Example 7 with Tuple

use of au.gov.asd.tac.constellation.utilities.datastructure.Tuple in project constellation by constellation-app.

the class ActiveTableReferenceNGTest method updateVisibleColumnsRemove.

@Test
public void updateVisibleColumnsRemove() {
    try (MockedStatic<PluginExecution> pluginExecutionMockedStatic = Mockito.mockStatic(PluginExecution.class)) {
        final Graph graph = mock(Graph.class);
        final Attribute attribute = mock(Attribute.class);
        final PluginExecution pluginExecution = mock(PluginExecution.class);
        final List<Tuple<String, Attribute>> paramColumnAttributes = List.of(Tuple.create("paramAttr", attribute));
        final List<Tuple<String, Attribute>> stateColumnAttributes = List.of(Tuple.create("stateAttr", attribute), Tuple.create("paramAttr", attribute));
        final TableViewState tableViewState = new TableViewState();
        tableViewState.setColumnAttributes(stateColumnAttributes);
        pluginExecutionMockedStatic.when(() -> PluginExecution.withPlugin(any(Plugin.class))).thenAnswer(executeUpdateStatePlugin(pluginExecution, tableViewState, List.of(Tuple.create("stateAttr", attribute))));
        activeTableReference.updateVisibleColumns(graph, tableViewState, paramColumnAttributes, UpdateMethod.REMOVE);
        verify(pluginExecution).executeLater(graph);
    }
}
Also used : PluginExecution(au.gov.asd.tac.constellation.plugins.PluginExecution) Graph(au.gov.asd.tac.constellation.graph.Graph) Attribute(au.gov.asd.tac.constellation.graph.Attribute) TableViewState(au.gov.asd.tac.constellation.views.tableview.state.TableViewState) Tuple(au.gov.asd.tac.constellation.utilities.datastructure.Tuple) Plugin(au.gov.asd.tac.constellation.plugins.Plugin) UpdateStatePlugin(au.gov.asd.tac.constellation.views.tableview.plugins.UpdateStatePlugin) Test(org.testng.annotations.Test)

Example 8 with Tuple

use of au.gov.asd.tac.constellation.utilities.datastructure.Tuple in project constellation by constellation-app.

the class Shape method generateShape.

/**
 * Construct geojson to represent a single shape given a list of
 * coordinates, a desired shape type and a unique identifier.
 *
 * @param uuid a unique identifier for the shape
 * @param type a type of shape
 * @param coordinates a list of coordinate tuples of the form (longitude,
 * latitude) from which to build the shape
 * @return a geojson string representing a single shape
 * @throws IOException there was a problem writing the generated shape
 */
public static String generateShape(final String uuid, final GeometryType type, final List<Tuple<Double, Double>> coordinates) throws IOException {
    // build precision formatter
    final StringBuilder precisionPattern = new StringBuilder("#.");
    for (int decimalPlace = 0; decimalPlace < GEOMETRY_PRECISION; decimalPlace++) {
        precisionPattern.append("#");
    }
    final DecimalFormat precisionFormat = new DecimalFormat(precisionPattern.toString());
    precisionFormat.setRoundingMode(RoundingMode.CEILING);
    // calculate geometry
    final double centroidLongitude = coordinates.stream().mapToDouble(coordinate -> coordinate.getFirst()).reduce((lon1, lon2) -> lon1 + lon2).getAsDouble() / coordinates.size();
    final double centroidLatitude = coordinates.stream().mapToDouble(coordinate -> coordinate.getSecond()).reduce((lat1, lat2) -> lat1 + lat2).getAsDouble() / coordinates.size();
    final double errorLongitude = coordinates.stream().mapToDouble(coordinate -> Math.abs(centroidLongitude - coordinate.getFirst())).max().getAsDouble();
    final double errorLatitude = coordinates.stream().mapToDouble(coordinate -> Math.abs(centroidLatitude - coordinate.getSecond())).max().getAsDouble();
    final double minLongitude = centroidLongitude - errorLongitude;
    final double minLatitude = centroidLatitude - errorLatitude;
    final double maxLongitude = centroidLongitude + errorLongitude;
    final double maxLatitude = centroidLatitude + errorLatitude;
    final double radius = Math.max(errorLatitude, errorLongitude);
    // build geometry
    final GeometryBuilder geometryBuilder = new GeometryBuilder();
    final Geometry geometry;
    switch(type) {
        case POINT:
            geometry = geometryBuilder.point(centroidLongitude, centroidLatitude);
            break;
        case LINE:
            geometry = geometryBuilder.lineString(coordinates.stream().flatMap(Tuple::stream).mapToDouble(coordinate -> (Double) coordinate).toArray());
            break;
        case POLYGON:
            geometry = geometryBuilder.polygon(coordinates.stream().flatMap(Tuple::stream).mapToDouble(coordinate -> (Double) coordinate).toArray());
            break;
        case BOX:
            final List<Tuple<Double, Double>> boxCoordinates = new ArrayList<>();
            boxCoordinates.add(Tuple.create(minLongitude, minLatitude));
            boxCoordinates.add(Tuple.create(minLongitude, maxLatitude));
            boxCoordinates.add(Tuple.create(maxLongitude, maxLatitude));
            boxCoordinates.add(Tuple.create(maxLongitude, minLatitude));
            geometry = geometryBuilder.polygon(boxCoordinates.stream().flatMap(Tuple::stream).mapToDouble(coordinate -> (Double) coordinate).toArray());
            break;
        default:
            throw new IllegalArgumentException(String.format("The specified shape type, %s, is not currently supported.", type));
    }
    // initialise json
    final String wgs84;
    try {
        wgs84 = SpatialReference.WGS84.getSrs();
    } catch (final FactoryException ex) {
        throw new IOException(ex);
    }
    final SimpleFeatureType featureType = generateFeatureType(uuid, wgs84, DEFAULT_GEOMETRY_ATTRIBUTE, type.getGeomertyClass(), null);
    final FeatureJSON featureJson = generateFeatureJson(featureType, false);
    // build feature
    final SimpleFeatureBuilder featureBuilder = new SimpleFeatureBuilder(featureType);
    featureBuilder.add(geometry);
    featureBuilder.set(NAME_ATTRIBUTE, uuid);
    featureBuilder.set(CENTROID_LATITUDE_ATTRIBUTE, precisionFormat.format(centroidLatitude));
    featureBuilder.set(CENTROID_LONGITUDE_ATTRIBUTE, precisionFormat.format(centroidLongitude));
    featureBuilder.set(RADIUS_ATTRIBUTE, precisionFormat.format(radius));
    final SimpleFeature feature = featureBuilder.buildFeature(uuid);
    final DefaultFeatureCollection featureCollection = new DefaultFeatureCollection(uuid, featureType);
    featureCollection.add(feature);
    // build json
    final ByteArrayOutputStream output = new ByteArrayOutputStream();
    featureJson.writeFeatureCollection(featureCollection, output);
    return output.toString(StandardCharsets.UTF_8.name());
}
Also used : SimpleFeatureBuilder(org.geotools.feature.simple.SimpleFeatureBuilder) FactoryException(org.opengis.referencing.FactoryException) CRS(org.geotools.referencing.CRS) KML(org.geotools.kml.v22.KML) Transaction(org.geotools.data.Transaction) Date(java.util.Date) FeatureEntry(org.geotools.geopkg.FeatureEntry) SimpleFeatureTypeBuilder(org.geotools.feature.simple.SimpleFeatureTypeBuilder) ByteArrayInputStream(java.io.ByteArrayInputStream) SimpleFeature(org.opengis.feature.simple.SimpleFeature) Map(java.util.Map) KMLConfiguration(org.geotools.kml.v22.KMLConfiguration) JTS(org.geotools.geometry.jts.JTS) ShapefileDataStore(org.geotools.data.shapefile.ShapefileDataStore) TransformException(org.opengis.referencing.operation.TransformException) RoundingMode(java.math.RoundingMode) FeatureIterator(org.geotools.feature.FeatureIterator) MultiLineString(org.locationtech.jts.geom.MultiLineString) SeparatorConstants(au.gov.asd.tac.constellation.utilities.text.SeparatorConstants) FeatureWriter(org.geotools.data.FeatureWriter) Point(org.locationtech.jts.geom.Point) Instant(java.time.Instant) Logger(java.util.logging.Logger) StandardCharsets(java.nio.charset.StandardCharsets) Serializable(java.io.Serializable) List(java.util.List) Polygon(org.locationtech.jts.geom.Polygon) Geometry(org.locationtech.jts.geom.Geometry) MultiPolygon(org.locationtech.jts.geom.MultiPolygon) Tuple(au.gov.asd.tac.constellation.utilities.datastructure.Tuple) ByteArrayOutputStream(java.io.ByteArrayOutputStream) ReferencedEnvelope(org.geotools.geometry.jts.ReferencedEnvelope) DefaultFeatureCollection(org.geotools.feature.DefaultFeatureCollection) HashMap(java.util.HashMap) ShapefileDataStoreFactory(org.geotools.data.shapefile.ShapefileDataStoreFactory) Geometries(org.geotools.geometry.jts.Geometries) SimpleFeatureType(org.opengis.feature.simple.SimpleFeatureType) ArrayList(java.util.ArrayList) GeometryBuilder(org.geotools.geometry.jts.GeometryBuilder) GeoPackage(org.geotools.geopkg.GeoPackage) GeometryJSON(org.geotools.geojson.geom.GeometryJSON) DecimalFormat(java.text.DecimalFormat) IOException(java.io.IOException) File(java.io.File) LineString(org.locationtech.jts.geom.LineString) Utilities(org.openide.util.Utilities) MathTransform(org.opengis.referencing.operation.MathTransform) FeatureJSON(org.geotools.geojson.feature.FeatureJSON) Encoder(org.geotools.xsd.Encoder) MultiPoint(org.locationtech.jts.geom.MultiPoint) InputStream(java.io.InputStream) FactoryException(org.opengis.referencing.FactoryException) DecimalFormat(java.text.DecimalFormat) ArrayList(java.util.ArrayList) MultiLineString(org.locationtech.jts.geom.MultiLineString) LineString(org.locationtech.jts.geom.LineString) IOException(java.io.IOException) ByteArrayOutputStream(java.io.ByteArrayOutputStream) Point(org.locationtech.jts.geom.Point) MultiPoint(org.locationtech.jts.geom.MultiPoint) SimpleFeature(org.opengis.feature.simple.SimpleFeature) Geometry(org.locationtech.jts.geom.Geometry) FeatureJSON(org.geotools.geojson.feature.FeatureJSON) SimpleFeatureType(org.opengis.feature.simple.SimpleFeatureType) GeometryBuilder(org.geotools.geometry.jts.GeometryBuilder) Tuple(au.gov.asd.tac.constellation.utilities.datastructure.Tuple) DefaultFeatureCollection(org.geotools.feature.DefaultFeatureCollection) SimpleFeatureBuilder(org.geotools.feature.simple.SimpleFeatureBuilder)

Example 9 with Tuple

use of au.gov.asd.tac.constellation.utilities.datastructure.Tuple in project constellation by constellation-app.

the class ListeningTopComponent method newActiveGraph.

@Override
public final void newActiveGraph(final Graph graph) {
    LOGGER.finer("NewActiveGraph");
    if (currentGraph != graph) {
        if (currentGraph != null) {
            currentGraph.removeGraphChangeListener(this);
            currentGraph = null;
        }
        if (graph != null) {
            currentGraph = graph;
            currentGraph.addGraphChangeListener(this);
            ReadableGraph readableGraph = currentGraph.getReadableGraph();
            try {
                final Map<GlobalMonitor, Consumer<Graph>> globalMonitorsCopy;
                synchronized (globalMonitors) {
                    globalMonitorsCopy = new HashMap<>(globalMonitors);
                }
                globalMonitorsCopy.forEach((monitor, handler) -> monitor.update(readableGraph));
                final Map<StructureMonitor, Consumer<Graph>> structureMonitorsCopy;
                synchronized (globalMonitors) {
                    structureMonitorsCopy = new HashMap<>(structureMonitors);
                }
                structureMonitorsCopy.forEach((monitor, handler) -> monitor.update(readableGraph));
                final Map<AttributeCountMonitor, Consumer<Graph>> attributeCountMonitorsCopy;
                synchronized (globalMonitors) {
                    attributeCountMonitorsCopy = new HashMap<>(attributeCountMonitors);
                }
                attributeCountMonitorsCopy.forEach((monitor, handler) -> monitor.update(readableGraph));
                final Map<AttributeValueMonitor, Tuple<Consumer<Graph>, MonitorTransitionFilter>> attributeMonitorsCopy;
                synchronized (globalMonitors) {
                    attributeMonitorsCopy = new HashMap<>(attributeValueMonitors);
                }
                attributeMonitorsCopy.forEach((monitor, handler) -> monitor.update(readableGraph));
            } finally {
                readableGraph.release();
            }
            graphChanged(null);
        }
    }
    handleNewGraph(graph);
}
Also used : ReadableGraph(au.gov.asd.tac.constellation.graph.ReadableGraph) AttributeCountMonitor(au.gov.asd.tac.constellation.graph.monitor.AttributeCountMonitor) AttributeValueMonitor(au.gov.asd.tac.constellation.graph.monitor.AttributeValueMonitor) GlobalMonitor(au.gov.asd.tac.constellation.graph.monitor.GlobalMonitor) ReadableGraph(au.gov.asd.tac.constellation.graph.ReadableGraph) Graph(au.gov.asd.tac.constellation.graph.Graph) Consumer(java.util.function.Consumer) StructureMonitor(au.gov.asd.tac.constellation.graph.monitor.StructureMonitor) Tuple(au.gov.asd.tac.constellation.utilities.datastructure.Tuple)

Example 10 with Tuple

use of au.gov.asd.tac.constellation.utilities.datastructure.Tuple in project constellation by constellation-app.

the class ListeningTopComponent method graphChanged.

@Override
public final void graphChanged(final GraphChangeEvent event) {
    LOGGER.finer("GraphChange");
    if (event != null && ignoredEvents.contains(event.getDescription())) {
        LOGGER.log(Level.FINER, "IgnoringEvent::{0}", event.getDescription());
        return;
    }
    ReadableGraph readableGraph = currentGraph.getReadableGraph();
    try {
        final Map<GlobalMonitor, Consumer<Graph>> globalMonitorsCopy;
        synchronized (globalMonitors) {
            globalMonitorsCopy = new HashMap<>(globalMonitors);
        }
        globalMonitorsCopy.forEach((monitor, handler) -> {
            LOGGER.finer("GraphChanged::CheckGlobal");
            if (monitor.update(readableGraph) == MonitorTransition.CHANGED) {
                LOGGER.finer("GraphChanged::UpdateGlobal");
                if (handler != null) {
                    handler.accept(currentGraph);
                }
            }
        });
        final Map<StructureMonitor, Consumer<Graph>> structureMonitorsCopy;
        synchronized (globalMonitors) {
            structureMonitorsCopy = new HashMap<>(structureMonitors);
        }
        structureMonitorsCopy.forEach((monitor, handler) -> {
            LOGGER.finer("GraphChanged::CheckStructure");
            if (monitor.update(readableGraph) == MonitorTransition.CHANGED) {
                LOGGER.finer("GraphChanged::UpdateStructure");
                if (handler != null) {
                    handler.accept(currentGraph);
                }
            }
        });
        final Map<AttributeCountMonitor, Consumer<Graph>> attributeCountMonitorsCopy;
        synchronized (globalMonitors) {
            attributeCountMonitorsCopy = new HashMap<>(attributeCountMonitors);
        }
        attributeCountMonitorsCopy.forEach((monitor, handler) -> {
            LOGGER.finer("GraphChanged::CheckAttributeCount");
            if (monitor.update(readableGraph) == MonitorTransition.CHANGED) {
                LOGGER.finer("GraphChanged::UpdateAttributeCount");
                if (handler != null) {
                    handler.accept(currentGraph);
                }
            }
        });
        final Map<AttributeValueMonitor, Tuple<Consumer<Graph>, MonitorTransitionFilter>> attributeMonitorsCopy;
        synchronized (globalMonitors) {
            attributeMonitorsCopy = new HashMap<>(attributeValueMonitors);
        }
        attributeMonitorsCopy.forEach((monitor, handlerPair) -> {
            LOGGER.finer("GraphChanged::CheckAttribute");
            final Consumer<Graph> handler = handlerPair.getFirst();
            final MonitorTransitionFilter transitionFilter = handlerPair.getSecond();
            monitor.update(readableGraph);
            if (transitionFilter.matchesTransitions(monitor)) {
                LOGGER.log(Level.FINER, "GraphChanged::UpdateAttribute::{0}", monitor.getName());
                if (handler != null) {
                    handler.accept(currentGraph);
                }
            }
        });
    } finally {
        readableGraph.release();
    }
    handleGraphChange(event);
}
Also used : ReadableGraph(au.gov.asd.tac.constellation.graph.ReadableGraph) AttributeCountMonitor(au.gov.asd.tac.constellation.graph.monitor.AttributeCountMonitor) AttributeValueMonitor(au.gov.asd.tac.constellation.graph.monitor.AttributeValueMonitor) GlobalMonitor(au.gov.asd.tac.constellation.graph.monitor.GlobalMonitor) ReadableGraph(au.gov.asd.tac.constellation.graph.ReadableGraph) Graph(au.gov.asd.tac.constellation.graph.Graph) MonitorTransitionFilter(au.gov.asd.tac.constellation.graph.monitor.MonitorTransitionFilter) Consumer(java.util.function.Consumer) StructureMonitor(au.gov.asd.tac.constellation.graph.monitor.StructureMonitor) Tuple(au.gov.asd.tac.constellation.utilities.datastructure.Tuple)

Aggregations

Tuple (au.gov.asd.tac.constellation.utilities.datastructure.Tuple)18 ArrayList (java.util.ArrayList)7 Attribute (au.gov.asd.tac.constellation.graph.Attribute)6 Graph (au.gov.asd.tac.constellation.graph.Graph)6 PluginExecution (au.gov.asd.tac.constellation.plugins.PluginExecution)5 TableViewState (au.gov.asd.tac.constellation.views.tableview.state.TableViewState)5 ReadableGraph (au.gov.asd.tac.constellation.graph.ReadableGraph)4 Plugin (au.gov.asd.tac.constellation.plugins.Plugin)4 UpdateStatePlugin (au.gov.asd.tac.constellation.views.tableview.plugins.UpdateStatePlugin)4 List (java.util.List)4 Collectors (java.util.stream.Collectors)4 AttributeValueMonitor (au.gov.asd.tac.constellation.graph.monitor.AttributeValueMonitor)3 GraphElement (au.gov.asd.tac.constellation.views.mapview.utilities.GraphElement)3 HashMap (java.util.HashMap)3 Map (java.util.Map)3 GraphElementType (au.gov.asd.tac.constellation.graph.GraphElementType)2 GraphManager (au.gov.asd.tac.constellation.graph.manager.GraphManager)2 AttributeCountMonitor (au.gov.asd.tac.constellation.graph.monitor.AttributeCountMonitor)2 GlobalMonitor (au.gov.asd.tac.constellation.graph.monitor.GlobalMonitor)2 StructureMonitor (au.gov.asd.tac.constellation.graph.monitor.StructureMonitor)2