org.openstreetmap.josm.gui.oauth
Class FullyAutomaticAuthorizationUI

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by org.openstreetmap.josm.gui.widgets.VerticallyScrollablePanel
                      extended by org.openstreetmap.josm.gui.oauth.AbstractAuthorizationUI
                          extended by org.openstreetmap.josm.gui.oauth.FullyAutomaticAuthorizationUI
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.Scrollable

public class FullyAutomaticAuthorizationUI
extends AbstractAuthorizationUI

This is an UI which supports a JOSM user to get an OAuth Access Token in a fully automatic process.

Since:
2746
See Also:
Serialized Form

Nested Class Summary
(package private)  class FullyAutomaticAuthorizationUI.BackAction
          Action to go back to step 1 in the process
(package private)  class FullyAutomaticAuthorizationUI.FullyAutomaticAuthorisationTask
           
private static class FullyAutomaticAuthorizationUI.PasswordValidator
           
(package private)  class FullyAutomaticAuthorizationUI.RunAuthorisationAction
          Starts the authorisation process
(package private)  class FullyAutomaticAuthorizationUI.TestAccessTokenAction
          Action to test an access token.
private static class FullyAutomaticAuthorizationUI.UserNameValidator
           
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
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
 
Field Summary
private  AccessTokenInfoPanel pnlAccessTokenInfo
           
private  javax.swing.JPanel pnlActionButtonsPanel
           
private  OsmPrivilegesPanel pnlOsmPrivileges
           
private  javax.swing.JPanel pnlPropertiesPanel
           
private  javax.swing.JPanel pnlResult
           
private  javax.swing.JPasswordField tfPassword
           
private  javax.swing.JTextField tfUserName
           
private  FullyAutomaticAuthorizationUI.PasswordValidator valPassword
           
private  FullyAutomaticAuthorizationUI.UserNameValidator valUserName
           
 
Fields inherited from class org.openstreetmap.josm.gui.oauth.AbstractAuthorizationUI
ACCESS_TOKEN_PROP
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
FullyAutomaticAuthorizationUI(java.lang.String apiUrl)
          Constructs a new FullyAutomaticAuthorizationUI for the given API URL.
 
Method Summary
protected  void build()
           
protected  javax.swing.JPanel buildActionButtonPanel()
          Builds the panel with the action button for starting the authorisation
protected  VerticallyScrollablePanel buildGrantsPanel()
          Builds the panel with the three privileges the user can grant JOSM
protected  javax.swing.JPanel buildPropertiesPanel()
           
protected  javax.swing.JPanel buildResultsPanel()
          Builds the panel which displays the generated Access Token.
protected  VerticallyScrollablePanel buildUserNamePasswordPanel()
          Builds the panel for entering the username and password
protected  java.lang.String getOsmPassword()
           
protected  java.lang.String getOsmUserName()
           
 void initFromPreferences(Preferences pref)
          Initializes the panel with values from the preferences
 boolean isSaveAccessTokenToPreferences()
          Replies whether the user has chosen to save the Access Token in the JOSM preferences or not.
protected  void prepareUIForEnteringRequest()
          Prepares the UI for the first step in the automatic process: entering the authentication and authorisation parameters.
protected  void prepareUIForResultDisplay()
          Prepares the UI for the second step in the automatic process: displaying the access token
protected  void setAccessToken(OAuthToken accessToken)
          Sets the current Access Token.
 
Methods inherited from class org.openstreetmap.josm.gui.oauth.AbstractAuthorizationUI
fireAccessTokenChanged, getAccessToken, getAdvancedPropertiesPanel, getApiUrl, getOAuthParameters, hasAccessToken, setApiUrl
 
Methods inherited from class org.openstreetmap.josm.gui.widgets.VerticallyScrollablePanel
embed, getPreferredScrollableViewportSize, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, 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, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

tfUserName

private javax.swing.JTextField tfUserName

tfPassword

private javax.swing.JPasswordField tfPassword

valUserName

private FullyAutomaticAuthorizationUI.UserNameValidator valUserName

valPassword

private FullyAutomaticAuthorizationUI.PasswordValidator valPassword

pnlAccessTokenInfo

private AccessTokenInfoPanel pnlAccessTokenInfo

pnlOsmPrivileges

private OsmPrivilegesPanel pnlOsmPrivileges

pnlPropertiesPanel

private javax.swing.JPanel pnlPropertiesPanel

pnlActionButtonsPanel

private javax.swing.JPanel pnlActionButtonsPanel

pnlResult

private javax.swing.JPanel pnlResult
Constructor Detail

FullyAutomaticAuthorizationUI

public FullyAutomaticAuthorizationUI(java.lang.String apiUrl)
Constructs a new FullyAutomaticAuthorizationUI for the given API URL.

Parameters:
apiUrl - The OSM API URL
Since:
5422
Method Detail

buildGrantsPanel

protected VerticallyScrollablePanel buildGrantsPanel()
Builds the panel with the three privileges the user can grant JOSM

Returns:

buildUserNamePasswordPanel

protected VerticallyScrollablePanel buildUserNamePasswordPanel()
Builds the panel for entering the username and password

Returns:

buildPropertiesPanel

protected javax.swing.JPanel buildPropertiesPanel()

initFromPreferences

public void initFromPreferences(Preferences pref)
Initializes the panel with values from the preferences

Overrides:
initFromPreferences in class AbstractAuthorizationUI
Parameters:
pref - the preferences. Must not be null.

buildActionButtonPanel

protected javax.swing.JPanel buildActionButtonPanel()
Builds the panel with the action button for starting the authorisation

Returns:

buildResultsPanel

protected javax.swing.JPanel buildResultsPanel()
Builds the panel which displays the generated Access Token.

Returns:

build

protected void build()

prepareUIForEnteringRequest

protected void prepareUIForEnteringRequest()
Prepares the UI for the first step in the automatic process: entering the authentication and authorisation parameters.


prepareUIForResultDisplay

protected void prepareUIForResultDisplay()
Prepares the UI for the second step in the automatic process: displaying the access token


getOsmUserName

protected java.lang.String getOsmUserName()

getOsmPassword

protected java.lang.String getOsmPassword()

isSaveAccessTokenToPreferences

public boolean isSaveAccessTokenToPreferences()
Description copied from class: AbstractAuthorizationUI
Replies whether the user has chosen to save the Access Token in the JOSM preferences or not.

Specified by:
isSaveAccessTokenToPreferences in class AbstractAuthorizationUI
Returns:
true if the user has chosen to save the Access Token

setAccessToken

protected void setAccessToken(OAuthToken accessToken)
Description copied from class: AbstractAuthorizationUI
Sets the current Access Token. This will fire a property change event for AbstractAuthorizationUI.ACCESS_TOKEN_PROP if the access token has changed

Overrides:
setAccessToken in class AbstractAuthorizationUI
Parameters:
accessToken - the new access token. null, to clear the current access token


JOSM