java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.control.Control
org.controlsfx.control.WorldMapView
- All Implemented Interfaces:
Styleable,EventTarget,Skinnable
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:
-
Property Summary
PropertiesTypePropertyDescriptionfinal ListProperty<WorldMapView.Country>A property used to store the list of countries that should be shown by the map.A property used to store the selection mode that will be applied for the selection of countries.A property used to store a factory callback for creating new country views.A property used to store the selection mode that will be applied for the selection of locations.A property used to store the list of locations shown by the map.A property used to store a factory callback for creating new location views (nodes).final ListProperty<WorldMapView.Country>A property used for storing the list of selected countries (aka "the selection model").A property used for storing the list of selected locations (aka "the selection model").final BooleanPropertyA property used to control whether locations will be shown by the map or not.final DoublePropertyA property used to store the current zoom factor, a value between 1 and 10.Properties inherited from class javafx.scene.control.Control
contextMenu, skin, tooltipProperties inherited from class javafx.scene.layout.Region
background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, widthProperties inherited from class javafx.scene.Parent
needsLayoutProperties 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 ClassesModifier and TypeClassDescriptionstatic enumAn enumerator listing all countries of the world.static classA view used to visualize the bounds of a country via SVG.static classAn object using latitude and longitude information to specify a location in the real world.static enumThe selection modes supported by the view. -
Field Summary
Fields inherited from class javafx.scene.layout.Region
USE_COMPUTED_SIZE, USE_PREF_SIZEFields inherited from class javafx.scene.Node
BASELINE_OFFSET_SAME_AS_HEIGHT -
Constructor Summary
ConstructorsConstructorDescriptionConstructs a new map view with an initially empty list of countries which will result in the entire world to be shown. -
Method Summary
Modifier and TypeMethodDescriptionfinal ListProperty<WorldMapView.Country>A property used to store the list of countries that should be shown by the map.A property used to store the selection mode that will be applied for the selection of countries.A property used to store a factory callback for creating new country views.protected Skin<?>Returns the list of countries that will be shown by the map.Returns the value ofcountrySelectionModeProperty()Returns the value ofcountryViewFactoryProperty().Returns the list of locations shown by the map.Returns the value oflocationSelectionModeProperty()final Callback<WorldMapView.Location,Node> Returns the value oflocationViewFactoryProperty().Returns the list of currently selected countries.Returns the list of currently selected locations.protected final StringgetUserAgentStylesheet(Class<?> clazz, String fileName) A helper method that ensures that the resource based lookup of the user agent stylesheet only happens once.final doubleReturns the value ofzoomFactorProperty().final booleanReturns the value ofshowLocationsProperty().A property used to store the selection mode that will be applied for the selection of locations.A property used to store the list of locations shown by the map.A property used to store a factory callback for creating new location views (nodes).final ListProperty<WorldMapView.Country>A property used for storing the list of selected countries (aka "the selection model").A property used for storing the list of selected locations (aka "the selection model").final voidsetCountries(ObservableList<WorldMapView.Country> countries) Sets the list of countries that will be shown by the map.final voidSets the value ofcountrySelectionModeProperty().final voidSets the value ofcountryViewFactoryProperty().final voidsetLocations(ObservableList<WorldMapView.Location> locations) Sets the list of locations shown by the map.final voidSets the value oflocationSelectionModeProperty().final voidSets the value oflocationViewFactoryProperty().final voidsetSelectedCountries(ObservableList<WorldMapView.Country> countries) Sets the list of currently selected countries.final voidsetSelectedLocations(ObservableList<WorldMapView.Location> locations) Sets the list of currently selected locations.final voidsetShowLocations(boolean show) Sets the value ofshowLocationsProperty().final voidsetZoomFactor(double factor) Sets the value ofzoomFactorProperty().final BooleanPropertyA property used to control whether locations will be shown by the map or not.final DoublePropertyA 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, tooltipPropertyMethods 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, widthPropertyMethods inherited from class javafx.scene.Parent
getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, requestLayout, requestParentLayout, setNeedsLayout, updateBoundsMethods 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, visiblePropertyMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface javafx.css.Styleable
getStyleableNode
-
Property Details
-
countrySelectionMode
A property used to store the selection mode that will be applied for the selection of countries. -
locationSelectionMode
A property used to store the selection mode that will be applied for the selection of locations. -
zoomFactor
A property used to store the current zoom factor, a value between 1 and 10.- See Also:
-
selectedCountries
A property used for storing the list of selected countries (aka "the selection model"). -
selectedLocations
A property used for storing the list of selected locations (aka "the selection model"). -
countries
A property used to store the list of countries that should be shown by the map. If this list is empty then the view will show the entire world.- See Also:
-
locations
A property used to store the list of locations shown by the map.- See Also:
-
showLocations
A property used to control whether locations will be shown by the map or not.- See Also:
-
locationViewFactory
A property used to store a factory callback for creating new location views (nodes). -
countryViewFactory
public final ObjectProperty<Callback<WorldMapView.Country,WorldMapView.CountryView>> countryViewFactoryPropertyA property used to store a factory callback for creating new country views.
-
-
Constructor Details
-
WorldMapView
public WorldMapView()Constructs a new map view with an initially empty list of countries which will result in the entire world to be shown.
-
-
Method Details
-
createDefaultSkin
- Overrides:
createDefaultSkinin classControl
-
getUserAgentStylesheet
- Overrides:
getUserAgentStylesheetin classRegion
-
countrySelectionModeProperty
A property used to store the selection mode that will be applied for the selection of countries. -
getCountrySelectionMode
Returns the value ofcountrySelectionModeProperty()- Returns:
- the country selection mode
-
setCountrySelectionMode
Sets the value ofcountrySelectionModeProperty().- Parameters:
mode- the country selection mode
-
locationSelectionModeProperty
A property used to store the selection mode that will be applied for the selection of locations. -
getLocationSelectionMode
Returns the value oflocationSelectionModeProperty()- Returns:
- the location selection mode
-
setLocationSelectionMode
Sets the value oflocationSelectionModeProperty().- Parameters:
mode- the location selection mode
-
zoomFactorProperty
A property used to store the current zoom factor, a value between 1 and 10.- See Also:
-
getZoomFactor
public final double getZoomFactor()Returns the value ofzoomFactorProperty().- Returns:
- the zoom factor
-
setZoomFactor
public final void setZoomFactor(double factor) Sets the value ofzoomFactorProperty().- Parameters:
factor- the zoom factor
-
selectedCountriesProperty
A property used for storing the list of selected countries (aka "the selection model"). -
getSelectedCountries
Returns the list of currently selected countries.- Returns:
- the list of selected countries
-
setSelectedCountries
Sets the list of currently selected countries.- Parameters:
countries- the selected countries
-
selectedLocationsProperty
A property used for storing the list of selected locations (aka "the selection model"). -
getSelectedLocations
Returns the list of currently selected locations.- Returns:
- the list of selected locations
-
setSelectedLocations
Sets the list of currently selected locations.- Parameters:
locations- the selected locations
-
countriesProperty
A property used to store the list of countries that should be shown by the map. If this list is empty then the view will show the entire world.- See Also:
-
getCountries
Returns the list of countries that will be shown by the map.- Returns:
- the list of countries shown by the map
-
setCountries
Sets the list of countries that will be shown by the map.- Parameters:
countries- the list of countries shown by the map
-
locationsProperty
A property used to store the list of locations shown by the map.- See Also:
-
getLocations
Returns the list of locations shown by the map.- Returns:
- the list of locations
-
setLocations
Sets the list of locations shown by the map.- Parameters:
locations- the list of locations
-
showLocationsProperty
A property used to control whether locations will be shown by the map or not.- See Also:
-
isShowLocations
public final boolean isShowLocations()Returns the value ofshowLocationsProperty().- Returns:
- true if locations are shown
-
setShowLocations
public final void setShowLocations(boolean show) Sets the value ofshowLocationsProperty().- Parameters:
show- if true then locations are shown
-
locationViewFactoryProperty
A property used to store a factory callback for creating new location views (nodes). -
getLocationViewFactory
Returns the value oflocationViewFactoryProperty().- Returns:
- the location view factory
-
setLocationViewFactory
Sets the value oflocationViewFactoryProperty().- Parameters:
factory- the location view factory
-
countryViewFactoryProperty
public final ObjectProperty<Callback<WorldMapView.Country,WorldMapView.CountryView>> countryViewFactoryProperty()A property used to store a factory callback for creating new country views. -
getCountryViewFactory
Returns the value ofcountryViewFactoryProperty().- Returns:
- the country view factory
-
setCountryViewFactory
public final void setCountryViewFactory(Callback<WorldMapView.Country, WorldMapView.CountryView> factory) Sets the value ofcountryViewFactoryProperty().- Parameters:
factory- the country view factory
-
getUserAgentStylesheet
A helper method that ensures that the resource based lookup of the user agent stylesheet only happens once. Caches the external form of the resource.- Parameters:
clazz- the class used for the resource lookupfileName- the name of the user agent stylesheet- Returns:
- the external form of the user agent stylesheet (the path)
-