Class OAuthAuthorizationWizard

  • All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

    public class OAuthAuthorizationWizard
    extends javax.swing.JDialog
    This wizard walks the user to the necessary steps to retrieve an OAuth Access Token which allows JOSM to access the OSM API on the users behalf.
    Since:
    2746
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      (package private) class  OAuthAuthorizationWizard.AcceptAccessTokenAction  
      (package private) class  OAuthAuthorizationWizard.CancelAction  
      (package private) class  OAuthAuthorizationWizard.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
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      (package private) static void authorize​(boolean startRemoteControl, java.util.function.Consumer<java.util.Optional<IOAuthToken>> callback, java.lang.String apiUrl, OAuthVersion oAuthVersion, IOAuthParameters oAuthParameters)
      Perform the oauth dance
      protected void build()
      builds the UI
      protected javax.swing.JPanel buildButtonRow()
      Builds the row with the action buttons
      protected javax.swing.JPanel buildHeaderInfoPanel()
      Builds the panel with general information in the header
      IOAuthToken getAccessToken()
      Replies the Access Token entered using the wizard
      protected AbstractAuthorizationUI getCurrentAuthorisationUI()  
      IOAuthParameters getOAuthParameters()
      Replies the current OAuth parameters.
      void initFromPreferences()
      Initializes the dialog with values from the preferences
      boolean isCanceled()
      Replies true if the dialog was canceled
      boolean isSaveAccessTokenToPreferences()
      Replies true if the currently selected Access Token shall be saved to the preferences.
      static void obtainAccessToken​(java.net.URL serverUrl)
      Obtains an OAuth access token for the connection.
      protected void refreshAuthorisationProcedurePanel()
      Refreshes the view of the authorisation panel, depending on the authorisation procedure currently selected
      protected void setCanceled​(boolean canceled)  
      void setVisible​(boolean visible)  
      void showDialog​(java.util.function.Consumer<java.util.Optional<IOAuthToken>> callback)
      • 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

      • OAuthAuthorizationWizard

        public OAuthAuthorizationWizard​(java.awt.Component parent,
                                        AuthorizationProcedure procedure,
                                        java.lang.String apiUrl,
                                        java.util.concurrent.Executor executor,
                                        OAuthVersion oAuthVersion,
                                        IOAuthParameters advancedParameters)
        Creates the wizard.
        Parameters:
        parent - the component relative to which the dialog is displayed
        procedure - the authorization procedure to use
        apiUrl - the API URL. Must not be null.
        executor - the executor used for running the HTTP requests for the authorization
        oAuthVersion - The OAuth version this wizard is for
        advancedParameters - The OAuth parameters to initialize the wizard with
        Throws:
        java.lang.IllegalArgumentException - if apiUrl is null
    • Method Detail

      • authorize

        static void authorize​(boolean startRemoteControl,
                              java.util.function.Consumer<java.util.Optional<IOAuthToken>> callback,
                              java.lang.String apiUrl,
                              OAuthVersion oAuthVersion,
                              IOAuthParameters oAuthParameters)
        Perform the oauth dance
        Parameters:
        startRemoteControl - true to start remote control if it is not already running
        callback - The callback to use to notify that the OAuth dance succeeded
        apiUrl - The API URL to get the token for
        oAuthVersion - The OAuth version that the authorization dance is force
        oAuthParameters - The OAuth parameters to use
      • buildButtonRow

        protected javax.swing.JPanel buildButtonRow()
        Builds the row with the action buttons
        Returns:
        panel with buttons
      • buildHeaderInfoPanel

        protected javax.swing.JPanel buildHeaderInfoPanel()
        Builds the panel with general information in the header
        Returns:
        panel with information display
      • refreshAuthorisationProcedurePanel

        protected void refreshAuthorisationProcedurePanel()
        Refreshes the view of the authorisation panel, depending on the authorisation procedure currently selected
      • build

        protected final void build()
        builds the UI
      • isCanceled

        public boolean isCanceled()
        Replies true if the dialog was canceled
        Returns:
        true if the dialog was canceled
      • getAccessToken

        public IOAuthToken getAccessToken()
        Replies the Access Token entered using the wizard
        Returns:
        the access token. May be null if the wizard was canceled.
      • isSaveAccessTokenToPreferences

        public boolean isSaveAccessTokenToPreferences()
        Replies true if the currently selected Access Token shall be saved to the preferences.
        Returns:
        true if the currently selected Access Token shall be saved to the preferences
      • initFromPreferences

        public void initFromPreferences()
        Initializes the dialog with values from the preferences
      • setVisible

        public void setVisible​(boolean visible)
        Overrides:
        setVisible in class java.awt.Dialog
      • setCanceled

        protected void setCanceled​(boolean canceled)
      • obtainAccessToken

        public static void obtainAccessToken​(java.net.URL serverUrl)
                                      throws java.lang.reflect.InvocationTargetException,
                                             java.lang.InterruptedException
        Obtains an OAuth access token for the connection. Afterwards, the token is accessible via OAuthAccessTokenHolder.
        Parameters:
        serverUrl - the URL to OSM server
        Throws:
        java.lang.InterruptedException - if we're interrupted while waiting for the event dispatching thread to finish OAuth authorization task
        java.lang.reflect.InvocationTargetException - if an exception is thrown while running OAuth authorization task
        Since:
        12803