Class DownloadDialog
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- java.awt.Window
-
- java.awt.Dialog
-
- javax.swing.JDialog
-
- org.openstreetmap.josm.gui.download.DownloadDialog
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,javax.accessibility.Accessible
,javax.swing.RootPaneContainer
,javax.swing.WindowConstants
public class DownloadDialog extends javax.swing.JDialog
Dialog displayed to the user to download mapping data.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) class
DownloadDialog.CancelAction
Action that is executed when the cancel button is pressed.(package private) class
DownloadDialog.DownloadAction
Action that is executed when the download button is pressed.private static class
DownloadDialog.DownloadDialogSplitPane
A special split pane that acts according to aDownloadSourceSizingPolicy
It attempts to size the top tab content correctly.private class
DownloadDialog.DownloadSourceTabs
A special tabbed pane forAbstractDownloadSourcePanel
s(package private) class
DownloadDialog.WindowEventHandler
-
Nested classes/interfaces inherited from class javax.swing.JDialog
javax.swing.JDialog.AccessibleJDialog
-
Nested classes/interfaces inherited from class java.awt.Dialog
java.awt.Dialog.AccessibleAWTDialog, java.awt.Dialog.ModalExclusionType, java.awt.Dialog.ModalityType
-
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type
-
-
Field Summary
-
Fields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabled
-
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
-
Constructor Summary
Constructors Constructor Description DownloadDialog(java.awt.Component parent)
Constructs a newDownloadDialog
.DownloadDialog(java.awt.Component parent, java.lang.String helpTopic)
Constructs a newDownloadDialog
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
addDownloadAreaListener(DownloadSelection selection)
Add a listener to get events from the DownloadSelection windowvoid
addDownloadAreaSelector(javax.swing.JPanel selector, java.lang.String displayName)
Adds a new download area selector to the download dialog.static <T> void
addDownloadSource(DownloadSource<T> downloadSource)
Adds a new download source to the download dialog if it is not added.protected <T> void
addNewDownloadSourceTab(DownloadSource<T> downloadSource)
Adds the download source to the download sources tab.static void
autostartIfNeeded()
Automatically opens the download dialog, if autorun is enabled.void
boundingBoxChanged(Bounds b, DownloadSelection eventSource)
Distributes a "bounding box changed" from one DownloadSelection object to the others, so they may update or clear their input fields.protected javax.swing.JPanel
buildButtonPanel()
Builds the button pane of the dialog.protected javax.swing.JPanel
buildMainPanel()
Builds the main panel of the dialog.DownloadSettings
getDownloadSettings(boolean newLayer)
Gets the global settings of the download dialog.private javax.swing.event.ChangeListener
getDownloadSourceTabChangeListener()
Creates a listener that reacts on tab switches fordownloadSourcesTab
in order to adjust proper division of the dialog according to user saved preferences or minimal size of the panel.private ExpertToggleAction.ExpertModeChangeListener
getExpertModeListenerForDownloadSources()
Creates listener that removes/adds download sources from/todownloadSourcesTab
depending on the current mode.static DownloadDialog
getInstance()
Replies the unique instance of the download dialogstatic Bounds
getSavedDownloadBounds()
Returns the previously saved bounding box from preferences.java.util.Optional<Bounds>
getSelectedDownloadArea()
Returns anOptional
of the currently selected download area.static boolean
isAutorunEnabled()
Determines if the dialog autorun is enabled in preferences.boolean
isCanceled()
Replies true if the dialog was canceledboolean
isZoomToDownloadedDataRequired()
Replies true if the user requires to zoom to new downloaded datavoid
mapCursorChanged(ILatLon latLon)
Updates the coordinates after moving the mouse cursorvoid
refreshTileSources()
Refreshes the tile sources.void
rememberSettings()
Remembers the current settings in the download dialog.boolean
removeDownloadAreaListener(DownloadSelection selection)
Remove a listener that was getting events from the DownloadSelection windowstatic boolean
removeDownloadSource(DownloadSource<?> downloadSource)
Remove a download source from the download dialogvoid
restoreSettings()
Restores the previous settings in the download dialog.protected void
setCanceled(boolean canceled)
void
setVisible(boolean visible)
void
startDownload()
Starts download.void
startDownload(Bounds b)
Starts download for the given bounding box-
Methods inherited from class javax.swing.JDialog
addImpl, createRootPane, dialogInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
-
Methods inherited from class java.awt.Dialog
addNotify, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, setBackground, setModal, setModalityType, setOpacity, setResizable, setShape, setTitle, setUndecorated, show, toBack
-
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeNotify, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImage, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, toFront
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTree
-
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
DOWNLOAD_TAB
private static final IntegerProperty DOWNLOAD_TAB
-
DOWNLOAD_SOURCE_TAB
private static final StringProperty DOWNLOAD_SOURCE_TAB
-
DOWNLOAD_AUTORUN
private static final BooleanProperty DOWNLOAD_AUTORUN
-
DOWNLOAD_ZOOMTODATA
private static final BooleanProperty DOWNLOAD_ZOOMTODATA
-
instance
private static DownloadDialog instance
the unique instance of the download dialog
-
downloadSourcesListeners
private static final ListenerList<DownloadSourceListener> downloadSourcesListeners
-
downloadSources
private static final java.util.List<DownloadSource<?>> downloadSources
-
downloadSelections
protected final transient java.util.List<DownloadSelection> downloadSelections
-
tpDownloadAreaSelectors
protected final javax.swing.JTabbedPane tpDownloadAreaSelectors
-
downloadSourcesTab
protected final DownloadDialog.DownloadSourceTabs downloadSourcesTab
-
latText
private final ImageLabel latText
-
lonText
private final ImageLabel lonText
-
bboxText
private final ImageLabel bboxText
-
cbStartup
protected javax.swing.JCheckBox cbStartup
-
cbZoomToDownloadedData
protected javax.swing.JCheckBox cbZoomToDownloadedData
-
slippyMapChooser
protected SlippyMapChooser slippyMapChooser
-
mainPanel
protected javax.swing.JPanel mainPanel
-
dialogSplit
protected DownloadDialog.DownloadDialogSplitPane dialogSplit
-
expertListener
protected final transient ExpertToggleAction.ExpertModeChangeListener expertListener
-
currentBounds
protected transient Bounds currentBounds
-
canceled
protected boolean canceled
-
btnDownload
protected javax.swing.JButton btnDownload
-
btnDownloadNewLayer
protected javax.swing.JButton btnDownloadNewLayer
-
btnCancel
protected javax.swing.JButton btnCancel
-
btnHelp
protected javax.swing.JButton btnHelp
-
-
Constructor Detail
-
DownloadDialog
public DownloadDialog(java.awt.Component parent)
Constructs a newDownloadDialog
.- Parameters:
parent
- the parent component
-
DownloadDialog
public DownloadDialog(java.awt.Component parent, java.lang.String helpTopic)
Constructs a newDownloadDialog
.- Parameters:
parent
- the parent componenthelpTopic
- the help topic to assign
-
-
Method Detail
-
getInstance
public static DownloadDialog getInstance()
Replies the unique instance of the download dialog- Returns:
- the unique instance of the download dialog
-
buildMainPanel
protected final javax.swing.JPanel buildMainPanel()
Builds the main panel of the dialog.- Returns:
- The panel of the dialog.
-
buildButtonPanel
protected final javax.swing.JPanel buildButtonPanel()
Builds the button pane of the dialog.- Returns:
- The button panel of the dialog.
-
boundingBoxChanged
public void boundingBoxChanged(Bounds b, DownloadSelection eventSource)
Distributes a "bounding box changed" from one DownloadSelection object to the others, so they may update or clear their input fields. Also informs download sources about the change, so they can react on it.- Parameters:
b
- new current boundseventSource
- - the DownloadSelection object that fired this notification.
-
mapCursorChanged
public void mapCursorChanged(ILatLon latLon)
Updates the coordinates after moving the mouse cursor- Parameters:
latLon
- the coordinates under the mouse cursor
-
startDownload
public void startDownload(Bounds b)
Starts download for the given bounding box- Parameters:
b
- bounding box to download
-
startDownload
public void startDownload()
Starts download.
-
isZoomToDownloadedDataRequired
public boolean isZoomToDownloadedDataRequired()
Replies true if the user requires to zoom to new downloaded data- Returns:
- true if the user requires to zoom to new downloaded data
- Since:
- 11658
-
isAutorunEnabled
public static boolean isAutorunEnabled()
Determines if the dialog autorun is enabled in preferences.- Returns:
true
if the download dialog must be open at startup,false
otherwise.
-
addDownloadAreaSelector
public void addDownloadAreaSelector(javax.swing.JPanel selector, java.lang.String displayName)
Adds a new download area selector to the download dialog.- Parameters:
selector
- the download are selector.displayName
- the display name of the selector.
-
addDownloadAreaListener
public boolean addDownloadAreaListener(DownloadSelection selection)
Add a listener to get events from the DownloadSelection window- Parameters:
selection
- The DownloadSelection object to send the Bounds to- Returns:
- See
List.add(E)
- Since:
- 16684
-
removeDownloadAreaListener
public boolean removeDownloadAreaListener(DownloadSelection selection)
Remove a listener that was getting events from the DownloadSelection window- Parameters:
selection
- The DownloadSelection object to not send the Bounds to- Returns:
- See
List.remove(java.lang.Object)
- Since:
- 16684
-
addDownloadSource
public static <T> void addDownloadSource(DownloadSource<T> downloadSource)
Adds a new download source to the download dialog if it is not added.- Type Parameters:
T
- The type of the download data.- Parameters:
downloadSource
- The download source to be added.- Throws:
JosmRuntimeException
- If the download source is already added. Note, download sources are compared by their reference.- Since:
- 12878
-
removeDownloadSource
public static boolean removeDownloadSource(DownloadSource<?> downloadSource)
Remove a download source from the download dialog- Parameters:
downloadSource
- The download source to be removed.- Returns:
- see
List.remove(java.lang.Object)
- Since:
- 15542
-
refreshTileSources
public final void refreshTileSources()
Refreshes the tile sources.- Since:
- 6364
-
rememberSettings
public void rememberSettings()
Remembers the current settings in the download dialog.
-
restoreSettings
public void restoreSettings()
Restores the previous settings in the download dialog.
-
getSavedDownloadBounds
public static Bounds getSavedDownloadBounds()
Returns the previously saved bounding box from preferences.- Returns:
- The bounding box saved in preferences if any,
null
otherwise. - Since:
- 6509
-
autostartIfNeeded
public static void autostartIfNeeded()
Automatically opens the download dialog, if autorun is enabled.- See Also:
isAutorunEnabled()
-
getSelectedDownloadArea
public java.util.Optional<Bounds> getSelectedDownloadArea()
Returns anOptional
of the currently selected download area.- Returns:
- An
Optional
of the currently selected download area. - Since:
- 12574 Return type changed to optional
-
setVisible
public void setVisible(boolean visible)
- Overrides:
setVisible
in classjava.awt.Dialog
-
isCanceled
public boolean isCanceled()
Replies true if the dialog was canceled- Returns:
- true if the dialog was canceled
-
getDownloadSettings
public DownloadSettings getDownloadSettings(boolean newLayer)
Gets the global settings of the download dialog.- Parameters:
newLayer
- The flag defining if a new layer must be created for the downloaded data.- Returns:
- The
DownloadSettings
object that describes the current state of the download dialog.
-
setCanceled
protected void setCanceled(boolean canceled)
-
addNewDownloadSourceTab
protected <T> void addNewDownloadSourceTab(DownloadSource<T> downloadSource)
Adds the download source to the download sources tab.- Type Parameters:
T
- The type of the download data.- Parameters:
downloadSource
- The download source to be added.
-
getExpertModeListenerForDownloadSources
private ExpertToggleAction.ExpertModeChangeListener getExpertModeListenerForDownloadSources()
Creates listener that removes/adds download sources from/todownloadSourcesTab
depending on the current mode.- Returns:
- The expert mode listener.
-
getDownloadSourceTabChangeListener
private javax.swing.event.ChangeListener getDownloadSourceTabChangeListener()
Creates a listener that reacts on tab switches fordownloadSourcesTab
in order to adjust proper division of the dialog according to user saved preferences or minimal size of the panel.- Returns:
- A listener to adjust dialog division.
-
-