Package org.openstreetmap.josm.gui.oauth
Class OAuthAuthorizationWizard
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- java.awt.Window
-
- java.awt.Dialog
-
- javax.swing.JDialog
-
- org.openstreetmap.josm.gui.oauth.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
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.String
apiUrl
private boolean
canceled
private java.util.concurrent.Executor
executor
private OAuthVersion
oAuthVersion
private FullyAutomaticAuthorizationUI
pnlFullyAutomaticAuthorisationUI
private ManualAuthorizationUI
pnlManualAuthorisationUI
private AuthorizationProcedure
procedure
private javax.swing.JScrollPane
spAuthorisationProcedureUI
-
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 OAuthAuthorizationWizard(java.awt.Component parent, AuthorizationProcedure procedure, java.lang.String apiUrl, java.util.concurrent.Executor executor, OAuthVersion oAuthVersion, IOAuthParameters advancedParameters)
Creates the wizard.
-
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 danceprotected void
build()
builds the UIprotected javax.swing.JPanel
buildButtonRow()
Builds the row with the action buttonsprotected javax.swing.JPanel
buildHeaderInfoPanel()
Builds the panel with general information in the headerIOAuthToken
getAccessToken()
Replies the Access Token entered using the wizardprotected AbstractAuthorizationUI
getCurrentAuthorisationUI()
IOAuthParameters
getOAuthParameters()
Replies the current OAuth parameters.void
initFromPreferences()
Initializes the dialog with values from the preferencesboolean
isCanceled()
Replies true if the dialog was canceledboolean
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 selectedprotected void
setCanceled(boolean canceled)
void
setVisible(boolean visible)
void
showDialog(java.util.function.Consumer<java.util.Optional<IOAuthToken>> callback)
Launches the wizard,OAuthAccessTokenHolder.setAccessToken(String, IOAuthToken)
sets the token andsaves to preferences
.-
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
-
canceled
private boolean canceled
-
procedure
private final AuthorizationProcedure procedure
-
apiUrl
private final java.lang.String apiUrl
-
oAuthVersion
private final OAuthVersion oAuthVersion
-
pnlFullyAutomaticAuthorisationUI
private FullyAutomaticAuthorizationUI pnlFullyAutomaticAuthorisationUI
-
pnlManualAuthorisationUI
private ManualAuthorizationUI pnlManualAuthorisationUI
-
spAuthorisationProcedureUI
private javax.swing.JScrollPane spAuthorisationProcedureUI
-
executor
private final transient java.util.concurrent.Executor executor
-
-
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 displayedprocedure
- the authorization procedure to useapiUrl
- the API URL. Must not be null.executor
- the executor used for running the HTTP requests for the authorizationoAuthVersion
- The OAuth version this wizard is foradvancedParameters
- The OAuth parameters to initialize the wizard with- Throws:
java.lang.IllegalArgumentException
- if apiUrl is null
-
-
Method Detail
-
showDialog
public void showDialog(java.util.function.Consumer<java.util.Optional<IOAuthToken>> callback) throws UserCancelException
Launches the wizard,OAuthAccessTokenHolder.setAccessToken(String, IOAuthToken)
sets the token andsaves to preferences
.- Parameters:
callback
- Callback to run when authorization is finished- Throws:
UserCancelException
- if user cancels the operation
-
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 runningcallback
- The callback to use to notify that the OAuth dance succeededapiUrl
- The API URL to get the token foroAuthVersion
- The OAuth version that the authorization dance is forceoAuthParameters
- 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
-
getCurrentAuthorisationUI
protected AbstractAuthorizationUI getCurrentAuthorisationUI()
-
getAccessToken
public IOAuthToken getAccessToken()
Replies the Access Token entered using the wizard- Returns:
- the access token. May be null if the wizard was canceled.
-
getOAuthParameters
public IOAuthParameters getOAuthParameters()
Replies the current OAuth parameters.- Returns:
- the current OAuth parameters.
-
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 classjava.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 viaOAuthAccessTokenHolder
.- 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 taskjava.lang.reflect.InvocationTargetException
- if an exception is thrown while running OAuth authorization task- Since:
- 12803
-
-