java.lang.Object
com.esri.arcgisruntime.mapping.view.geometryeditor.GeometryEditorStyle

public final class GeometryEditorStyle extends Object
Defines the visual appearance of a geometry displayed by the GeometryEditor.

Each GeometryEditorTool has a GeometryEditorStyle which controls the appearance of the different elements of the geometry. You can change the symbology used for vertices, selections, lines and fills. For example, in a Feature editing workflow, you can set the lineSymbolProperty() to match the symbol of a polyline feature in order to provide visual consistency.

When a GeometryEditorTool is created, a consistent set of default symbology appropriate for that tool type is applied to its GeometryEditorTool.styleProperty().

You can change the opacity of the overall style, or alternatively set different opacity (alpha) values on the individual symbols of the style, so that the underlying map components are visible through the geometry being edited.

You can set each symbol to null - consider carefully how this can affect your workflows, as you will not be able to see, select, or otherwise interact with those GeometryEditorElement types.

Since:
200.1.0
See Also:
  • Property Details

  • Constructor Details

    • GeometryEditorStyle

      public GeometryEditorStyle()
      Creates a new GeometryEditorStyle with a consistent set of red symbols, and displays white numbers on vertices.

      Using this constructor results in the same default symbology as the GeometryEditorTool.styleProperty().

      Since:
      200.1.0
  • Method Details

    • boundingBoxHandleSymbolProperty

      public ObjectProperty<Symbol> boundingBoxHandleSymbolProperty()
      The symbol used to draw control handles for interactive scaling when a scalable element is selected in the GeometryEditor and InteractionConfiguration.allowScalingSelectedElementProperty() is true.

      When the GeometryEditor.selectedElementProperty() is scalable, this symbol displays control handles to allow interactive scaling (resizing) of the element. The handles are drawn upon the bounding box (see boundingBoxSymbolProperty()). If the selected element cannot be scaled (see GeometryEditorElement.canScaleProperty()) then this symbol is ignored and no handles are drawn.

      The default symbol is a white square SimpleMarkerSymbol with a black outline. Use either a MarkerSymbol or an appropriate advanced symbol if setting this property.

      Since:
      200.2.0
      See Also:
    • getBoundingBoxHandleSymbol

      public Symbol getBoundingBoxHandleSymbol()
      Gets the value of the property boundingBoxHandleSymbol.
      Property description:
      The symbol used to draw control handles for interactive scaling when a scalable element is selected in the GeometryEditor and InteractionConfiguration.allowScalingSelectedElementProperty() is true.

      When the GeometryEditor.selectedElementProperty() is scalable, this symbol displays control handles to allow interactive scaling (resizing) of the element. The handles are drawn upon the bounding box (see boundingBoxSymbolProperty()). If the selected element cannot be scaled (see GeometryEditorElement.canScaleProperty()) then this symbol is ignored and no handles are drawn.

      The default symbol is a white square SimpleMarkerSymbol with a black outline. Use either a MarkerSymbol or an appropriate advanced symbol if setting this property.

      Since:
      200.2.0
    • setBoundingBoxHandleSymbol

      public void setBoundingBoxHandleSymbol(Symbol boundingBoxHandleSymbol)
      Sets the value of the property boundingBoxHandleSymbol.
      Property description:
      The symbol used to draw control handles for interactive scaling when a scalable element is selected in the GeometryEditor and InteractionConfiguration.allowScalingSelectedElementProperty() is true.

      When the GeometryEditor.selectedElementProperty() is scalable, this symbol displays control handles to allow interactive scaling (resizing) of the element. The handles are drawn upon the bounding box (see boundingBoxSymbolProperty()). If the selected element cannot be scaled (see GeometryEditorElement.canScaleProperty()) then this symbol is ignored and no handles are drawn.

      The default symbol is a white square SimpleMarkerSymbol with a black outline. Use either a MarkerSymbol or an appropriate advanced symbol if setting this property.

      Since:
      200.2.0
    • boundingBoxSymbolProperty

      public ObjectProperty<Symbol> boundingBoxSymbolProperty()
      The symbol used to draw a bounding box when a movable, rotatable, or scalable element is selected in the GeometryEditor and InteractionConfiguration.allowScalingSelectedElementProperty() is true.

      When the GeometryEditor.selectedElementProperty() is movable, rotatable, or scalable, this symbol displays its minimum bounding box. If the selected element cannot be moved (GeometryEditorElement.canMoveProperty()), rotated (GeometryEditorElement.canRotateProperty()), or scaled (GeometryEditorElement.canScaleProperty()) then this symbol is ignored and no box is drawn.

      Control handles for interactively scaling the element are drawn upon the bounding box (see boundingBoxHandleSymbolProperty()).

      The default value is a dashed black SimpleLineSymbol. Use either a LineSymbol, a FillSymbol, or an appropriate advanced symbol if setting this property.

      Since:
      200.2.0
      See Also:
    • getBoundingBoxSymbol

      public Symbol getBoundingBoxSymbol()
      Gets the value of the property boundingBoxSymbol.
      Property description:
      The symbol used to draw a bounding box when a movable, rotatable, or scalable element is selected in the GeometryEditor and InteractionConfiguration.allowScalingSelectedElementProperty() is true.

      When the GeometryEditor.selectedElementProperty() is movable, rotatable, or scalable, this symbol displays its minimum bounding box. If the selected element cannot be moved (GeometryEditorElement.canMoveProperty()), rotated (GeometryEditorElement.canRotateProperty()), or scaled (GeometryEditorElement.canScaleProperty()) then this symbol is ignored and no box is drawn.

      Control handles for interactively scaling the element are drawn upon the bounding box (see boundingBoxHandleSymbolProperty()).

      The default value is a dashed black SimpleLineSymbol. Use either a LineSymbol, a FillSymbol, or an appropriate advanced symbol if setting this property.

      Since:
      200.2.0
    • setBoundingBoxSymbol

      public void setBoundingBoxSymbol(Symbol boundingBoxSymbol)
      Sets the value of the property boundingBoxSymbol.
      Property description:
      The symbol used to draw a bounding box when a movable, rotatable, or scalable element is selected in the GeometryEditor and InteractionConfiguration.allowScalingSelectedElementProperty() is true.

      When the GeometryEditor.selectedElementProperty() is movable, rotatable, or scalable, this symbol displays its minimum bounding box. If the selected element cannot be moved (GeometryEditorElement.canMoveProperty()), rotated (GeometryEditorElement.canRotateProperty()), or scaled (GeometryEditorElement.canScaleProperty()) then this symbol is ignored and no box is drawn.

      Control handles for interactively scaling the element are drawn upon the bounding box (see boundingBoxHandleSymbolProperty()).

      The default value is a dashed black SimpleLineSymbol. Use either a LineSymbol, a FillSymbol, or an appropriate advanced symbol if setting this property.

      Since:
      200.2.0
    • feedbackLineSymbolProperty

      public ObjectProperty<Symbol> feedbackLineSymbolProperty()
      The symbol used to draw the edges currently being changed by an interactive edit, when editing polyline or polygon geometries.

      During an interactive edit, this symbol displays the current location of edges (polylines, or boundaries of polygons) that are changed by the interaction in progress. Unchanged lines remain displayed with lineSymbolProperty().

      The default value is a dotted red SimpleLineSymbol.

      Since:
      200.1.0
      See Also:
    • getFeedbackLineSymbol

      public Symbol getFeedbackLineSymbol()
      Gets the value of the property feedbackLineSymbol.
      Property description:
      The symbol used to draw the edges currently being changed by an interactive edit, when editing polyline or polygon geometries.

      During an interactive edit, this symbol displays the current location of edges (polylines, or boundaries of polygons) that are changed by the interaction in progress. Unchanged lines remain displayed with lineSymbolProperty().

      The default value is a dotted red SimpleLineSymbol.

      Since:
      200.1.0
    • setFeedbackLineSymbol

      public void setFeedbackLineSymbol(Symbol feedbackLineSymbol)
      Sets the value of the property feedbackLineSymbol.
      Property description:
      The symbol used to draw the edges currently being changed by an interactive edit, when editing polyline or polygon geometries.

      During an interactive edit, this symbol displays the current location of edges (polylines, or boundaries of polygons) that are changed by the interaction in progress. Unchanged lines remain displayed with lineSymbolProperty().

      The default value is a dotted red SimpleLineSymbol.

      Since:
      200.1.0
    • feedbackVertexSymbolProperty

      public ObjectProperty<Symbol> feedbackVertexSymbolProperty()
      The symbol used to draw vertices currently being changed by an interactive edit, when editing any geometry type.

      During an interactive edit, this symbol displays the current location of vertices that are changed by the interaction in progress. Unchanged vertices remain displayed with the vertexSymbolProperty().

      Vertex numbers are not displayed for the changed vertices. The default value is the same as the default vertex symbol.

      Since:
      200.1.0
      See Also:
    • getFeedbackVertexSymbol

      public Symbol getFeedbackVertexSymbol()
      Gets the value of the property feedbackVertexSymbol.
      Property description:
      The symbol used to draw vertices currently being changed by an interactive edit, when editing any geometry type.

      During an interactive edit, this symbol displays the current location of vertices that are changed by the interaction in progress. Unchanged vertices remain displayed with the vertexSymbolProperty().

      Vertex numbers are not displayed for the changed vertices. The default value is the same as the default vertex symbol.

      Since:
      200.1.0
    • setFeedbackVertexSymbol

      public void setFeedbackVertexSymbol(Symbol feedbackVertexSymbol)
      Sets the value of the property feedbackVertexSymbol.
      Property description:
      The symbol used to draw vertices currently being changed by an interactive edit, when editing any geometry type.

      During an interactive edit, this symbol displays the current location of vertices that are changed by the interaction in progress. Unchanged vertices remain displayed with the vertexSymbolProperty().

      Vertex numbers are not displayed for the changed vertices. The default value is the same as the default vertex symbol.

      Since:
      200.1.0
    • fillSymbolProperty

      public ObjectProperty<Symbol> fillSymbolProperty()
      The symbol used to fill the current geometry when editing polygon geometries.

      The default value is a red semi-transparent SimpleFillSymbol with a red outline.

      Since:
      200.1.0
      See Also:
    • getFillSymbol

      public Symbol getFillSymbol()
      Gets the value of the property fillSymbol.
      Property description:
      The symbol used to fill the current geometry when editing polygon geometries.

      The default value is a red semi-transparent SimpleFillSymbol with a red outline.

      Since:
      200.1.0
    • setFillSymbol

      public void setFillSymbol(Symbol fillSymbol)
      Sets the value of the property fillSymbol.
      Property description:
      The symbol used to fill the current geometry when editing polygon geometries.

      The default value is a red semi-transparent SimpleFillSymbol with a red outline.

      Since:
      200.1.0
    • lineSymbolProperty

      public ObjectProperty<Symbol> lineSymbolProperty()
      The symbol used to draw the current geometry when editing polyline geometries, and the outline of the geometry when editing polygon geometries.

      The default value is a solid red SimpleLineSymbol.

      Since:
      200.1.0
      See Also:
    • getLineSymbol

      public Symbol getLineSymbol()
      Gets the value of the property lineSymbol.
      Property description:
      The symbol used to draw the current geometry when editing polyline geometries, and the outline of the geometry when editing polygon geometries.

      The default value is a solid red SimpleLineSymbol.

      Since:
      200.1.0
    • setLineSymbol

      public void setLineSymbol(Symbol lineSymbol)
      Sets the value of the property lineSymbol.
      Property description:
      The symbol used to draw the current geometry when editing polyline geometries, and the outline of the geometry when editing polygon geometries.

      The default value is a solid red SimpleLineSymbol.

      Since:
      200.1.0
    • midVertexSymbolProperty

      public ObjectProperty<Symbol> midVertexSymbolProperty()
      The symbol used to draw the mid-vertices of the current geometry when editing polygon or polyline geometries.

      Mid-vertices do not exist in the GeometryEditor.geometryProperty(), but instead exist only in the display, located between vertices in polygon and polyline geometries as a visual cue for interactive editing. When moved interactively, a new vertex is inserted at that location.

      If null, no mid-vertex is displayed. In this case, you can still insert vertices between existing vertices by selecting an existing GeometryEditorVertex and tapping on the map.

      Since:
      200.1.0
      See Also:
    • getMidVertexSymbol

      public Symbol getMidVertexSymbol()
      Gets the value of the property midVertexSymbol.
      Property description:
      The symbol used to draw the mid-vertices of the current geometry when editing polygon or polyline geometries.

      Mid-vertices do not exist in the GeometryEditor.geometryProperty(), but instead exist only in the display, located between vertices in polygon and polyline geometries as a visual cue for interactive editing. When moved interactively, a new vertex is inserted at that location.

      If null, no mid-vertex is displayed. In this case, you can still insert vertices between existing vertices by selecting an existing GeometryEditorVertex and tapping on the map.

      Since:
      200.1.0
    • setMidVertexSymbol

      public void setMidVertexSymbol(Symbol midVertexSymbol)
      Sets the value of the property midVertexSymbol.
      Property description:
      The symbol used to draw the mid-vertices of the current geometry when editing polygon or polyline geometries.

      Mid-vertices do not exist in the GeometryEditor.geometryProperty(), but instead exist only in the display, located between vertices in polygon and polyline geometries as a visual cue for interactive editing. When moved interactively, a new vertex is inserted at that location.

      If null, no mid-vertex is displayed. In this case, you can still insert vertices between existing vertices by selecting an existing GeometryEditorVertex and tapping on the map.

      Since:
      200.1.0
    • opacityProperty

      public FloatProperty opacityProperty()
      The opacity of the GeometryEditor display in the view, a value between 0 (fully transparent) and 1 (fully opaque). Default is 1.

      It can be useful to change opacity of the entire GeometryEditor display to allow features, graphics, or imagery in the underlying map view to show through the geometry editor display, which can help allow precise placement of new vertices relative to those map components.

      Alternatively, you can set opacity separately on each of the symbols used by this style, allowing you to make specific aspects of the geometry editor semi-transparent.

      Since:
      200.1.0
      See Also:
    • getOpacity

      public float getOpacity()
      Gets the value of the property opacity.
      Property description:
      The opacity of the GeometryEditor display in the view, a value between 0 (fully transparent) and 1 (fully opaque). Default is 1.

      It can be useful to change opacity of the entire GeometryEditor display to allow features, graphics, or imagery in the underlying map view to show through the geometry editor display, which can help allow precise placement of new vertices relative to those map components.

      Alternatively, you can set opacity separately on each of the symbols used by this style, allowing you to make specific aspects of the geometry editor semi-transparent.

      Since:
      200.1.0
    • setOpacity

      public void setOpacity(float opacity)
      Sets the value of the property opacity.
      Property description:
      The opacity of the GeometryEditor display in the view, a value between 0 (fully transparent) and 1 (fully opaque). Default is 1.

      It can be useful to change opacity of the entire GeometryEditor display to allow features, graphics, or imagery in the underlying map view to show through the geometry editor display, which can help allow precise placement of new vertices relative to those map components.

      Alternatively, you can set opacity separately on each of the symbols used by this style, allowing you to make specific aspects of the geometry editor semi-transparent.

      Since:
      200.1.0
    • rotateHandleSymbolProperty

      public ObjectProperty<Symbol> rotateHandleSymbolProperty()
      The symbol used to draw a control handle for interactive rotation of the selected element, when a rotatable element is selected in the GeometryEditor and InteractionConfiguration.allowRotatingSelectedElementProperty() is true.

      When the GeometryEditor.selectedElementProperty() is rotatable, this symbol displays a control handle to allow interactive rotation of the element. The handle is drawn above the top of the bounding box (see boundingBoxSymbolProperty()). If the selected element cannot be rotated (see GeometryEditorElement.canRotateProperty()) then this symbol is ignored and no rotation handle is drawn.

      The default symbol is a black circular arrow advanced marker symbol. Use either a MarkerSymbol or an appropriate advanced symbol if setting this property.

      Since:
      200.2.0
      See Also:
    • getRotateHandleSymbol

      public Symbol getRotateHandleSymbol()
      Gets the value of the property rotateHandleSymbol.
      Property description:
      The symbol used to draw a control handle for interactive rotation of the selected element, when a rotatable element is selected in the GeometryEditor and InteractionConfiguration.allowRotatingSelectedElementProperty() is true.

      When the GeometryEditor.selectedElementProperty() is rotatable, this symbol displays a control handle to allow interactive rotation of the element. The handle is drawn above the top of the bounding box (see boundingBoxSymbolProperty()). If the selected element cannot be rotated (see GeometryEditorElement.canRotateProperty()) then this symbol is ignored and no rotation handle is drawn.

      The default symbol is a black circular arrow advanced marker symbol. Use either a MarkerSymbol or an appropriate advanced symbol if setting this property.

      Since:
      200.2.0
    • setRotateHandleSymbol

      public void setRotateHandleSymbol(Symbol rotateHandleSymbol)
      Sets the value of the property rotateHandleSymbol.
      Property description:
      The symbol used to draw a control handle for interactive rotation of the selected element, when a rotatable element is selected in the GeometryEditor and InteractionConfiguration.allowRotatingSelectedElementProperty() is true.

      When the GeometryEditor.selectedElementProperty() is rotatable, this symbol displays a control handle to allow interactive rotation of the element. The handle is drawn above the top of the bounding box (see boundingBoxSymbolProperty()). If the selected element cannot be rotated (see GeometryEditorElement.canRotateProperty()) then this symbol is ignored and no rotation handle is drawn.

      The default symbol is a black circular arrow advanced marker symbol. Use either a MarkerSymbol or an appropriate advanced symbol if setting this property.

      Since:
      200.2.0
    • selectedMidVertexSymbolProperty

      public ObjectProperty<Symbol> selectedMidVertexSymbolProperty()
      The symbol used to draw the currently selected mid-vertex of the current geometry when editing polygon or polyline geometries.

      When a mid-vertex is selected, it is displayed with this symbol instead of midVertexSymbolProperty().

      As soon as a mid-vertex is moved interactively, it is replaced by a vertex that is part of the geometry, and is displayed with the selectedVertexSymbolProperty().

      Since:
      200.1.0
      See Also:
    • getSelectedMidVertexSymbol

      public Symbol getSelectedMidVertexSymbol()
      Gets the value of the property selectedMidVertexSymbol.
      Property description:
      The symbol used to draw the currently selected mid-vertex of the current geometry when editing polygon or polyline geometries.

      When a mid-vertex is selected, it is displayed with this symbol instead of midVertexSymbolProperty().

      As soon as a mid-vertex is moved interactively, it is replaced by a vertex that is part of the geometry, and is displayed with the selectedVertexSymbolProperty().

      Since:
      200.1.0
    • setSelectedMidVertexSymbol

      public void setSelectedMidVertexSymbol(Symbol selectedMidVertexSymbol)
      Sets the value of the property selectedMidVertexSymbol.
      Property description:
      The symbol used to draw the currently selected mid-vertex of the current geometry when editing polygon or polyline geometries.

      When a mid-vertex is selected, it is displayed with this symbol instead of midVertexSymbolProperty().

      As soon as a mid-vertex is moved interactively, it is replaced by a vertex that is part of the geometry, and is displayed with the selectedVertexSymbolProperty().

      Since:
      200.1.0
    • selectedVertexSymbolProperty

      public ObjectProperty<Symbol> selectedVertexSymbolProperty()
      The symbol used to draw the currently selected vertex of the current geometry when editing any geometry type.

      This symbol can be used to emphasize the currently selected vertex, which can be useful if you require extra emphasis in addition to the selection halo, or wish to make the selected vertex a larger target for user interactions.

      Since:
      200.1.0
      See Also:
    • getSelectedVertexSymbol

      public Symbol getSelectedVertexSymbol()
      Gets the value of the property selectedVertexSymbol.
      Property description:
      The symbol used to draw the currently selected vertex of the current geometry when editing any geometry type.

      This symbol can be used to emphasize the currently selected vertex, which can be useful if you require extra emphasis in addition to the selection halo, or wish to make the selected vertex a larger target for user interactions.

      Since:
      200.1.0
    • setSelectedVertexSymbol

      public void setSelectedVertexSymbol(Symbol selectedVertexSymbol)
      Sets the value of the property selectedVertexSymbol.
      Property description:
      The symbol used to draw the currently selected vertex of the current geometry when editing any geometry type.

      This symbol can be used to emphasize the currently selected vertex, which can be useful if you require extra emphasis in addition to the selection halo, or wish to make the selected vertex a larger target for user interactions.

      Since:
      200.1.0
    • vertexSymbolProperty

      public ObjectProperty<Symbol> vertexSymbolProperty()
      The symbol used to draw the vertices of the current geometry when editing any geometry type.

      Setting a larger symbol can help users on touch devices select and work with vertices, especially for field apps where users may wear thick gloves that work with touch screens.

      If null, the vertices of the geometry are not explicitly displayed. By default when using a FreehandTool, this is null, as you work with geometry parts instead of individual vertices. For a VertexTool, consider your workflow carefully before setting this property to null, as you must be able to see vertices in order to select, move, or otherwise interact with them.

      Since:
      200.1.0
      See Also:
    • getVertexSymbol

      public Symbol getVertexSymbol()
      Gets the value of the property vertexSymbol.
      Property description:
      The symbol used to draw the vertices of the current geometry when editing any geometry type.

      Setting a larger symbol can help users on touch devices select and work with vertices, especially for field apps where users may wear thick gloves that work with touch screens.

      If null, the vertices of the geometry are not explicitly displayed. By default when using a FreehandTool, this is null, as you work with geometry parts instead of individual vertices. For a VertexTool, consider your workflow carefully before setting this property to null, as you must be able to see vertices in order to select, move, or otherwise interact with them.

      Since:
      200.1.0
    • setVertexSymbol

      public void setVertexSymbol(Symbol vertexSymbol)
      Sets the value of the property vertexSymbol.
      Property description:
      The symbol used to draw the vertices of the current geometry when editing any geometry type.

      Setting a larger symbol can help users on touch devices select and work with vertices, especially for field apps where users may wear thick gloves that work with touch screens.

      If null, the vertices of the geometry are not explicitly displayed. By default when using a FreehandTool, this is null, as you work with geometry parts instead of individual vertices. For a VertexTool, consider your workflow carefully before setting this property to null, as you must be able to see vertices in order to select, move, or otherwise interact with them.

      Since:
      200.1.0
    • vertexTextSymbolProperty

      public ObjectProperty<Symbol> vertexTextSymbolProperty()
      The symbol used to draw vertex numbers for the current geometry. If null, no numbers are displayed.

      By default when using a FreehandTool, this symbol is null.

      Since:
      200.1.0
      See Also:
    • getVertexTextSymbol

      public Symbol getVertexTextSymbol()
      Gets the value of the property vertexTextSymbol.
      Property description:
      The symbol used to draw vertex numbers for the current geometry. If null, no numbers are displayed.

      By default when using a FreehandTool, this symbol is null.

      Since:
      200.1.0
    • setVertexTextSymbol

      public void setVertexTextSymbol(Symbol vertexTextSymbol)
      Sets the value of the property vertexTextSymbol.
      Property description:
      The symbol used to draw vertex numbers for the current geometry. If null, no numbers are displayed.

      By default when using a FreehandTool, this symbol is null.

      Since:
      200.1.0