Class WorldMapView

  • All Implemented Interfaces:
    javafx.css.Styleable, javafx.event.EventTarget, javafx.scene.control.Skinnable

    public class WorldMapView
    extends javafx.scene.control.Control
    A simple map view showing either the entire world or a list of countries. The view is not capable of displaying detailed map information. The view is based on simple SVG data found in a properties file of the ControlsFX distribution. A big advantage of this approach is the fact that the view can be run without a network connection. In addition to showing countries or the world the view can also show locations. The map can be customized by specifying custom factories for the country and location views.

    Example: Country View Factory

    The code snippet below shows how a custom country view factory can be used to assign individual styles to all countries. In this example the style is used to color the countries differently. worldMapView.setCountryViewFactory(country -> { CountryView view = new CountryView(country); if (showColorsProperty.get()) { view.getStyleClass().add("country" + ((country.ordinal() % 8) + 1)); } return view; });

    Example: Location View Factory

    Each location can be visualized with its own node. The default location view factory creates a simple circle shape.

    worldMapView.setLocationViewFactory(location -> { Circle circle = new Circle(); circle.getStyleClass().add("location"); circle.setRadius(4); circle.setTranslateX(-4); // translate to center node on location circle.setTranslateY(-4); // translate to center node on location return circle; }); Shown below is a screenshot of the world map view:

    Screenshot of WorldMapView
    • Property Summary

      Properties 
      Type Property Description
      javafx.beans.property.ListProperty<WorldMapView.Country> countries
      A property used to store the list of countries that should be shown by the map.
      javafx.beans.property.ObjectProperty<WorldMapView.SelectionMode> countrySelectionMode
      A property used to store the selection mode that will be applied for the selection of countries.
      javafx.beans.property.ObjectProperty<javafx.util.Callback<WorldMapView.Country,​WorldMapView.CountryView>> countryViewFactory
      A property used to store a factory callback for creating new country views.
      javafx.beans.property.ObjectProperty<WorldMapView.SelectionMode> locationSelectionMode
      A property used to store the selection mode that will be applied for the selection of locations.
      javafx.beans.property.ListProperty<WorldMapView.Location> locations
      A property used to store the list of locations shown by the map.
      javafx.beans.property.ObjectProperty<javafx.util.Callback<WorldMapView.Location,​javafx.scene.Node>> locationViewFactory
      A property used to store a factory callback for creating new location views (nodes).
      javafx.beans.property.ListProperty<WorldMapView.Country> selectedCountries
      A property used for storing the list of selected countries (aka "the selection model").
      javafx.beans.property.ListProperty<WorldMapView.Location> selectedLocations
      A property used for storing the list of selected locations (aka "the selection model").
      javafx.beans.property.BooleanProperty showLocations
      A property used to control whether locations will be shown by the map or not.
      javafx.beans.property.DoubleProperty zoomFactor
      A property used to store the current zoom factor, a value between 1 and 10.
      • Properties inherited from class javafx.scene.control.Control

        contextMenu, skin, tooltip
      • Properties inherited from class javafx.scene.layout.Region

        background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, width
      • Properties inherited from class javafx.scene.Parent

        needsLayout
      • Properties inherited from class javafx.scene.Node

        accessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, hover, id, inputMethodRequests, layoutBounds, layoutX, layoutY, localToParentTransform, localToSceneTransform, managed, mouseTransparent, nodeOrientation, onContextMenuRequested, onDragDetected, onDragDone, onDragDropped, onDragEntered, onDragExited, onDragOver, onInputMethodTextChanged, onKeyPressed, onKeyReleased, onKeyTyped, onMouseClicked, onMouseDragEntered, onMouseDragExited, onMouseDragged, onMouseDragOver, onMouseDragReleased, onMouseEntered, onMouseExited, onMouseMoved, onMousePressed, onMouseReleased, onRotate, onRotationFinished, onRotationStarted, onScrollFinished, onScroll, onScrollStarted, onSwipeDown, onSwipeLeft, onSwipeRight, onSwipeUp, onTouchMoved, onTouchPressed, onTouchReleased, onTouchStationary, onZoomFinished, onZoom, onZoomStarted, opacity, parent, pickOnBounds, pressed, rotate, rotationAxis, scaleX, scaleY, scaleZ, scene, style, translateX, translateY, translateZ, viewOrder, visible
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  WorldMapView.Country
      An enumerator listing all countries of the world.
      static class  WorldMapView.CountryView
      A view used to visualize the bounds of a country via SVG.
      static class  WorldMapView.Location
      An object using latitude and longitude information to specify a location in the real world.
      static class  WorldMapView.SelectionMode
      The selection modes supported by the view.
    • Field Summary

      • Fields inherited from class javafx.scene.layout.Region

        USE_COMPUTED_SIZE, USE_PREF_SIZE
      • Fields inherited from class javafx.scene.Node

        BASELINE_OFFSET_SAME_AS_HEIGHT
    • Constructor Summary

      Constructors 
      Constructor Description
      WorldMapView()
      Constructs a new map view with an initially empty list of countries which will result in the entire world to be shown.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      javafx.beans.property.ListProperty<WorldMapView.Country> countriesProperty()
      A property used to store the list of countries that should be shown by the map.
      javafx.beans.property.ObjectProperty<WorldMapView.SelectionMode> countrySelectionModeProperty()
      A property used to store the selection mode that will be applied for the selection of countries.
      javafx.beans.property.ObjectProperty<javafx.util.Callback<WorldMapView.Country,​WorldMapView.CountryView>> countryViewFactoryProperty()
      A property used to store a factory callback for creating new country views.
      protected javafx.scene.control.Skin<?> createDefaultSkin()  
      javafx.collections.ObservableList<WorldMapView.Country> getCountries()
      Returns the list of countries that will be shown by the map.
      WorldMapView.SelectionMode getCountrySelectionMode()
      Returns the value of countrySelectionModeProperty()
      javafx.util.Callback<WorldMapView.Country,​WorldMapView.CountryView> getCountryViewFactory()
      Returns the value of countryViewFactoryProperty().
      javafx.collections.ObservableList<WorldMapView.Location> getLocations()
      Returns the list of locations shown by the map.
      WorldMapView.SelectionMode getLocationSelectionMode()
      Returns the value of locationSelectionModeProperty()
      javafx.util.Callback<WorldMapView.Location,​javafx.scene.Node> getLocationViewFactory()
      Returns the value of locationViewFactoryProperty().
      javafx.collections.ObservableList<WorldMapView.Country> getSelectedCountries()
      Returns the list of currently selected countries.
      javafx.collections.ObservableList<WorldMapView.Location> getSelectedLocations()
      Returns the list of currently selected locations.
      java.lang.String getUserAgentStylesheet()  
      protected java.lang.String getUserAgentStylesheet​(java.lang.Class<?> clazz, java.lang.String fileName)
      A helper method that ensures that the resource based lookup of the user agent stylesheet only happens once.
      double getZoomFactor()
      Returns the value of zoomFactorProperty().
      boolean isShowLocations()
      Returns the value of showLocationsProperty().
      javafx.beans.property.ObjectProperty<WorldMapView.SelectionMode> locationSelectionModeProperty()
      A property used to store the selection mode that will be applied for the selection of locations.
      javafx.beans.property.ListProperty<WorldMapView.Location> locationsProperty()
      A property used to store the list of locations shown by the map.
      javafx.beans.property.ObjectProperty<javafx.util.Callback<WorldMapView.Location,​javafx.scene.Node>> locationViewFactoryProperty()
      A property used to store a factory callback for creating new location views (nodes).
      javafx.beans.property.ListProperty<WorldMapView.Country> selectedCountriesProperty()
      A property used for storing the list of selected countries (aka "the selection model").
      javafx.beans.property.ListProperty<WorldMapView.Location> selectedLocationsProperty()
      A property used for storing the list of selected locations (aka "the selection model").
      void setCountries​(javafx.collections.ObservableList<WorldMapView.Country> countries)
      Sets the list of countries that will be shown by the map.
      void setCountrySelectionMode​(WorldMapView.SelectionMode mode)
      void setCountryViewFactory​(javafx.util.Callback<WorldMapView.Country,​WorldMapView.CountryView> factory)
      Sets the value of countryViewFactoryProperty().
      void setLocations​(javafx.collections.ObservableList<WorldMapView.Location> locations)
      Sets the list of locations shown by the map.
      void setLocationSelectionMode​(WorldMapView.SelectionMode mode)
      void setLocationViewFactory​(javafx.util.Callback<WorldMapView.Location,​javafx.scene.Node> factory)
      void setSelectedCountries​(javafx.collections.ObservableList<WorldMapView.Country> countries)
      Sets the list of currently selected countries.
      void setSelectedLocations​(javafx.collections.ObservableList<WorldMapView.Location> locations)
      Sets the list of currently selected locations.
      void setShowLocations​(boolean show)
      Sets the value of showLocationsProperty().
      void setZoomFactor​(double factor)
      Sets the value of zoomFactorProperty().
      javafx.beans.property.BooleanProperty showLocationsProperty()
      A property used to control whether locations will be shown by the map or not.
      javafx.beans.property.DoubleProperty zoomFactorProperty()
      A property used to store the current zoom factor, a value between 1 and 10.
      • Methods inherited from class javafx.scene.control.Control

        computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, contextMenuProperty, executeAccessibleAction, getBaselineOffset, getClassCssMetaData, getContextMenu, getControlCssMetaData, getCssMetaData, getInitialFocusTraversable, getSkin, getTooltip, isResizable, layoutChildren, queryAccessibleAttribute, setContextMenu, setSkin, setTooltip, skinProperty, tooltipProperty
      • Methods inherited from class javafx.scene.layout.Region

        backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, isScaleShape, isSnapToPixel, layoutInArea, layoutInArea, layoutInArea, layoutInArea, maxHeight, maxHeightProperty, maxWidth, maxWidthProperty, minHeight, minHeightProperty, minWidth, minWidthProperty, opaqueInsetsProperty, paddingProperty, positionInArea, positionInArea, prefHeight, prefHeightProperty, prefWidth, prefWidthProperty, resize, scaleShapeProperty, setBackground, setBorder, setCacheShape, setCenterShape, setHeight, setMaxHeight, setMaxSize, setMaxWidth, setMinHeight, setMinSize, setMinWidth, setOpaqueInsets, setPadding, setPrefHeight, setPrefSize, setPrefWidth, setScaleShape, setShape, setSnapToPixel, setWidth, shapeProperty, snappedBottomInset, snappedLeftInset, snappedRightInset, snappedTopInset, snapPosition, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, snapToPixelProperty, widthProperty
      • Methods inherited from class javafx.scene.Parent

        getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, requestLayout, requestParentLayout, setNeedsLayout, updateBounds
      • Methods inherited from class javafx.scene.Node

        accessibleHelpProperty, accessibleRoleDescriptionProperty, accessibleRoleProperty, accessibleTextProperty, addEventFilter, addEventHandler, applyCss, autosize, blendModeProperty, boundsInLocalProperty, boundsInParentProperty, buildEventDispatchChain, cacheHintProperty, cacheProperty, clipProperty, computeAreaInScreen, contains, contains, cursorProperty, depthTestProperty, disabledProperty, disableProperty, effectiveNodeOrientationProperty, effectProperty, eventDispatcherProperty, fireEvent, focusedProperty, focusTraversableProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getContentBias, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInputMethodRequests, getLayoutBounds, getLayoutX, getLayoutY, getLocalToParentTransform, getLocalToSceneTransform, getNodeOrientation, getOnContextMenuRequested, getOnDragDetected, getOnDragDone, getOnDragDropped, getOnDragEntered, getOnDragExited, getOnDragOver, getOnInputMethodTextChanged, getOnKeyPressed, getOnKeyReleased, getOnKeyTyped, getOnMouseClicked, getOnMouseDragEntered, getOnMouseDragExited, getOnMouseDragged, getOnMouseDragOver, getOnMouseDragReleased, getOnMouseEntered, getOnMouseExited, getOnMouseMoved, getOnMousePressed, getOnMouseReleased, getOnRotate, getOnRotationFinished, getOnRotationStarted, getOnScroll, getOnScrollFinished, getOnScrollStarted, getOnSwipeDown, getOnSwipeLeft, getOnSwipeRight, getOnSwipeUp, getOnTouchMoved, getOnTouchPressed, getOnTouchReleased, getOnTouchStationary, getOnZoom, getOnZoomFinished, getOnZoomStarted, getOpacity, getParent, getProperties, getPseudoClassStates, getRotate, getRotationAxis, getScaleX, getScaleY, getScaleZ, getScene, getStyle, getStyleableParent, getStyleClass, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, getViewOrder, hasProperties, hoverProperty, idProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, isHover, isManaged, isMouseTransparent, isPickOnBounds, isPressed, isVisible, layoutBoundsProperty, layoutXProperty, layoutYProperty, localToParent, localToParent, localToParent, localToParent, localToParent, localToParentTransformProperty, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToSceneTransformProperty, localToScreen, localToScreen, localToScreen, localToScreen, localToScreen, lookupAll, managedProperty, mouseTransparentProperty, nodeOrientationProperty, notifyAccessibleAttributeChanged, onContextMenuRequestedProperty, onDragDetectedProperty, onDragDoneProperty, onDragDroppedProperty, onDragEnteredProperty, onDragExitedProperty, onDragOverProperty, onInputMethodTextChangedProperty, onKeyPressedProperty, onKeyReleasedProperty, onKeyTypedProperty, onMouseClickedProperty, onMouseDragEnteredProperty, onMouseDragExitedProperty, onMouseDraggedProperty, onMouseDragOverProperty, onMouseDragReleasedProperty, onMouseEnteredProperty, onMouseExitedProperty, onMouseMovedProperty, onMousePressedProperty, onMouseReleasedProperty, onRotateProperty, onRotationFinishedProperty, onRotationStartedProperty, onScrollFinishedProperty, onScrollProperty, onScrollStartedProperty, onSwipeDownProperty, onSwipeLeftProperty, onSwipeRightProperty, onSwipeUpProperty, onTouchMovedProperty, onTouchPressedProperty, onTouchReleasedProperty, onTouchStationaryProperty, onZoomFinishedProperty, onZoomProperty, onZoomStartedProperty, opacityProperty, parentProperty, parentToLocal, parentToLocal, parentToLocal, parentToLocal, parentToLocal, pickOnBoundsProperty, pressedProperty, pseudoClassStateChanged, relocate, removeEventFilter, removeEventHandler, requestFocus, resizeRelocate, rotateProperty, rotationAxisProperty, scaleXProperty, scaleYProperty, scaleZProperty, sceneProperty, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, screenToLocal, screenToLocal, screenToLocal, setAccessibleHelp, setAccessibleRole, setAccessibleRoleDescription, setAccessibleText, setBlendMode, setCache, setCacheHint, setClip, setCursor, setDepthTest, setDisable, setDisabled, setEffect, setEventDispatcher, setEventHandler, setFocused, setFocusTraversable, setHover, setId, setInputMethodRequests, setLayoutX, setLayoutY, setManaged, setMouseTransparent, setNodeOrientation, setOnContextMenuRequested, setOnDragDetected, setOnDragDone, setOnDragDropped, setOnDragEntered, setOnDragExited, setOnDragOver, setOnInputMethodTextChanged, setOnKeyPressed, setOnKeyReleased, setOnKeyTyped, setOnMouseClicked, setOnMouseDragEntered, setOnMouseDragExited, setOnMouseDragged, setOnMouseDragOver, setOnMouseDragReleased, setOnMouseEntered, setOnMouseExited, setOnMouseMoved, setOnMousePressed, setOnMouseReleased, setOnRotate, setOnRotationFinished, setOnRotationStarted, setOnScroll, setOnScrollFinished, setOnScrollStarted, setOnSwipeDown, setOnSwipeLeft, setOnSwipeRight, setOnSwipeUp, setOnTouchMoved, setOnTouchPressed, setOnTouchReleased, setOnTouchStationary, setOnZoom, setOnZoomFinished, setOnZoomStarted, setOpacity, setPickOnBounds, setPressed, setRotate, setRotationAxis, setScaleX, setScaleY, setScaleZ, setStyle, setTranslateX, setTranslateY, setTranslateZ, setUserData, setViewOrder, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, viewOrderProperty, visibleProperty
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface javafx.css.Styleable

        getStyleableNode