Class 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 a DownloadSourceSizingPolicy It attempts to size the top tab content correctly.
      private class  DownloadDialog.DownloadSourceTabs
      A special tabbed pane for AbstractDownloadSourcePanels
      (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
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Constructor Summary

      Constructors 
      Constructor Description
      DownloadDialog​(java.awt.Component parent)
      Constructs a new DownloadDialog.
      DownloadDialog​(java.awt.Component parent, java.lang.String helpTopic)
      Constructs a new DownloadDialog.
    • 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 window
      void 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 for downloadSourcesTab 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/to downloadSourcesTab depending on the current mode.
      static DownloadDialog getInstance()
      Replies the unique instance of the download dialog
      static Bounds getSavedDownloadBounds()
      Returns the previously saved bounding box from preferences.
      java.util.Optional<Bounds> getSelectedDownloadArea()
      Returns an Optional 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 canceled
      boolean isZoomToDownloadedDataRequired()
      Replies true if the user requires to zoom to new downloaded data
      void mapCursorChanged​(ILatLon latLon)
      Updates the coordinates after moving the mouse cursor
      void 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 window
      static boolean removeDownloadSource​(DownloadSource<?> downloadSource)
      Remove a download source from the download dialog
      void 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
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • DownloadDialog

        public DownloadDialog​(java.awt.Component parent)
        Constructs a new DownloadDialog.
        Parameters:
        parent - the parent component
      • DownloadDialog

        public DownloadDialog​(java.awt.Component parent,
                              java.lang.String helpTopic)
        Constructs a new DownloadDialog.
        Parameters:
        parent - the parent component
        helpTopic - 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 bounds
        eventSource - - 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
      • 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
      • getSelectedDownloadArea

        public java.util.Optional<BoundsgetSelectedDownloadArea()
        Returns an Optional 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 class java.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.
      • getDownloadSourceTabChangeListener

        private javax.swing.event.ChangeListener getDownloadSourceTabChangeListener()
        Creates a listener that reacts on tab switches for downloadSourcesTab 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.