org.jets3t.apps.cockpitlite
Class CockpitLite

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Panel
              extended by java.applet.Applet
                  extended by javax.swing.JApplet
                      extended by org.jets3t.apps.cockpitlite.CockpitLite
All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.ListSelectionListener, javax.swing.RootPaneContainer, org.apache.commons.httpclient.auth.CredentialsProvider, HyperlinkActivatedListener, S3ServiceEventListener

public class CockpitLite
extends javax.swing.JApplet
implements S3ServiceEventListener, java.awt.event.ActionListener, javax.swing.event.ListSelectionListener, HyperlinkActivatedListener, org.apache.commons.httpclient.auth.CredentialsProvider

CockpitLite is a graphical Java application for viewing and managing the contents of an Amazon S3 account, where the S3 account is not owned by the application's user directly but is made available by a service provider. The service provider uses the Gatekeeper application to mediate the user's access to the S3 account, authorizing each of the user's interactions before it can be executed.

CockpitLite Guide.

This is the CockpitLite application class; it may be run as a stand-alone application or as an Applet.

Author:
jmurty
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JApplet
javax.swing.JApplet.AccessibleJApplet
 
Nested classes/interfaces inherited from class java.applet.Applet
java.applet.Applet.AccessibleApplet
 
Nested classes/interfaces inherited from class java.awt.Panel
java.awt.Panel.AccessibleAWTPanel
 
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
static java.lang.String APPLICATION_DESCRIPTION
           
static java.lang.String APPLICATION_TITLE
           
static int HTTP_CONNECTION_TIMEOUT
           
static int MAX_CONNECTION_RETRIES
           
static int SOCKET_CONNECTION_TIMEOUT
           
 
Fields inherited from class javax.swing.JApplet
accessibleContext, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface org.apache.commons.httpclient.auth.CredentialsProvider
PROVIDER
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
CockpitLite()
          Constructor to run this application as an Applet.
CockpitLite(javax.swing.JFrame ownerFrame, java.util.Properties standAloneArgumentProperties)
          Constructor to run this application in a stand-alone window.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent event)
          Event handler for this application, handles all menu items.
 void followHyperlink(java.net.URL url, java.lang.String target)
          Follows hyperlinks clicked on by a user.
static java.lang.String getAclDescription(AccessControlList acl)
           
 org.apache.commons.httpclient.Credentials getCredentials(org.apache.commons.httpclient.auth.AuthScheme authscheme, java.lang.String host, int port, boolean proxy)
          Implementation method for the CredentialsProvider interface.
 void init()
          Prepares application to run as a GUI by finding/creating a root owner JFrame, creating an un-authenticated RestS3Service and loading properties files.
static void main(java.lang.String[] args)
          Runs Cockpit as a stand-alone application.
 void s3ServiceEventPerformed(CopyObjectsEvent event)
           
 void s3ServiceEventPerformed(CreateBucketsEvent event)
           
 void s3ServiceEventPerformed(CreateObjectsEvent event)
          This method is an S3ServiceEventListener action method that is invoked when this application's S3ServiceMulti triggers a CreateObjectsEvent.
 void s3ServiceEventPerformed(DeleteObjectsEvent event)
          This method is an S3ServiceEventListener action method that is invoked when this application's S3ServiceMulti triggers a DeleteObjectsEvent.
 void s3ServiceEventPerformed(DeleteVersionedObjectsEvent event)
           
 void s3ServiceEventPerformed(DownloadObjectsEvent event)
          This method is an S3ServiceEventListener action method that is invoked when this application's S3ServiceMulti triggers a DownloadObjectsEvent.
 void s3ServiceEventPerformed(GetObjectHeadsEvent event)
          This method is an S3ServiceEventListener action method that is invoked when this application's S3ServiceMulti triggers a GetObjectHeadsEvent.
 void s3ServiceEventPerformed(GetObjectsEvent event)
          This method is an S3ServiceEventListener action method that is invoked when this application's S3ServiceMulti triggers a GetObjectsEvent.
 void s3ServiceEventPerformed(ListObjectsEvent event)
          This method is an S3ServiceEventListener action method that is invoked when this application's S3ServiceMulti triggers a ListObjectsEvent.
 void s3ServiceEventPerformed(LookupACLEvent event)
          This method is an S3ServiceEventListener action method that is invoked when this application's S3ServiceMulti triggers a LookupACLEvent.
 void s3ServiceEventPerformed(UpdateACLEvent event)
          This method is an S3ServiceEventListener action method that is invoked when this application's S3ServiceMulti triggers a UpdateACLEvent.
protected  void startProgressPanel(java.lang.Object operationId, java.lang.String statusMessage, int maxCount, CancelEventTrigger cancelEventTrigger)
           
protected  void stopProgressPanel(java.lang.Object operationId)
           
protected  void updateProgressPanel(java.lang.Object operationId, java.lang.String statusMessage, int currentCount)
           
 void valueChanged(javax.swing.event.ListSelectionEvent e)
          Handles list selection events for this application.
 
Methods inherited from class javax.swing.JApplet
addImpl, createRootPane, getAccessibleContext, getContentPane, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isRootPaneCheckingEnabled, paramString, remove, repaint, setContentPane, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.applet.Applet
destroy, getAppletContext, getAppletInfo, getAudioClip, getAudioClip, getCodeBase, getDocumentBase, getImage, getImage, getLocale, getParameter, getParameterInfo, isActive, newAudioClip, play, play, resize, resize, setStub, showStatus, start, stop
 
Methods inherited from class java.awt.Panel
addNotify
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getInsets, getLayout, getListeners, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, processEvent, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusCycleRoot, 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, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, 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, requestFocusInWindow, requestFocusInWindow, reshape, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, 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

APPLICATION_DESCRIPTION

public static final java.lang.String APPLICATION_DESCRIPTION
See Also:
Constant Field Values

APPLICATION_TITLE

public static final java.lang.String APPLICATION_TITLE
See Also:
Constant Field Values

HTTP_CONNECTION_TIMEOUT

public static final int HTTP_CONNECTION_TIMEOUT
See Also:
Constant Field Values

SOCKET_CONNECTION_TIMEOUT

public static final int SOCKET_CONNECTION_TIMEOUT
See Also:
Constant Field Values

MAX_CONNECTION_RETRIES

public static final int MAX_CONNECTION_RETRIES
See Also:
Constant Field Values
Constructor Detail

CockpitLite

public CockpitLite()
Constructor to run this application as an Applet.


CockpitLite

public CockpitLite(javax.swing.JFrame ownerFrame,
                   java.util.Properties standAloneArgumentProperties)
            throws S3ServiceException
Constructor to run this application in a stand-alone window.

Parameters:
ownerFrame - the frame the application will be displayed in
Throws:
S3ServiceException
Method Detail

init

public void init()
Prepares application to run as a GUI by finding/creating a root owner JFrame, creating an un-authenticated RestS3Service and loading properties files.

Overrides:
init in class java.applet.Applet

startProgressPanel

protected void startProgressPanel(java.lang.Object operationId,
                                  java.lang.String statusMessage,
                                  int maxCount,
                                  CancelEventTrigger cancelEventTrigger)

updateProgressPanel

protected void updateProgressPanel(java.lang.Object operationId,
                                   java.lang.String statusMessage,
                                   int currentCount)

stopProgressPanel

protected void stopProgressPanel(java.lang.Object operationId)

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent event)
Event handler for this application, handles all menu items.

Specified by:
actionPerformed in interface java.awt.event.ActionListener

valueChanged

public void valueChanged(javax.swing.event.ListSelectionEvent e)
Handles list selection events for this application.

Specified by:
valueChanged in interface javax.swing.event.ListSelectionListener

s3ServiceEventPerformed

public void s3ServiceEventPerformed(GetObjectsEvent event)
This method is an S3ServiceEventListener action method that is invoked when this application's S3ServiceMulti triggers a GetObjectsEvent.

This never happens in this application as downloads are performed by S3ServiceMulti.downloadObjects(S3Bucket, DownloadPackage[]) instead.

Specified by:
s3ServiceEventPerformed in interface S3ServiceEventListener
Parameters:
event -

s3ServiceEventPerformed

public void s3ServiceEventPerformed(ListObjectsEvent event)
This method is an S3ServiceEventListener action method that is invoked when this application's S3ServiceMulti triggers a ListObjectsEvent.

This never happens in this application as it does not perform multi-threaded object listings.

Specified by:
s3ServiceEventPerformed in interface S3ServiceEventListener
Parameters:
event -

s3ServiceEventPerformed

public void s3ServiceEventPerformed(DeleteVersionedObjectsEvent event)
Specified by:
s3ServiceEventPerformed in interface S3ServiceEventListener

s3ServiceEventPerformed

public void s3ServiceEventPerformed(LookupACLEvent event)
This method is an S3ServiceEventListener action method that is invoked when this application's S3ServiceMulti triggers a LookupACLEvent.

Specified by:
s3ServiceEventPerformed in interface S3ServiceEventListener
Parameters:
event -

s3ServiceEventPerformed

public void s3ServiceEventPerformed(UpdateACLEvent event)
This method is an S3ServiceEventListener action method that is invoked when this application's S3ServiceMulti triggers a UpdateACLEvent.

This method merely updates the progress dialog as ACLs are updated.

Specified by:
s3ServiceEventPerformed in interface S3ServiceEventListener
Parameters:
event -

s3ServiceEventPerformed

public void s3ServiceEventPerformed(DownloadObjectsEvent event)
This method is an S3ServiceEventListener action method that is invoked when this application's S3ServiceMulti triggers a DownloadObjectsEvent.

This method merely updates the progress dialog as objects are downloaded.

Specified by:
s3ServiceEventPerformed in interface S3ServiceEventListener
Parameters:
event -

s3ServiceEventPerformed

public void s3ServiceEventPerformed(CreateObjectsEvent event)
This method is an S3ServiceEventListener action method that is invoked when this application's S3ServiceMulti triggers a CreateObjectsEvent.

This method merely updates the progress dialog as files are uploaded.

Specified by:
s3ServiceEventPerformed in interface S3ServiceEventListener
Parameters:
event -

s3ServiceEventPerformed

public void s3ServiceEventPerformed(DeleteObjectsEvent event)
This method is an S3ServiceEventListener action method that is invoked when this application's S3ServiceMulti triggers a DeleteObjectsEvent.

This method merely updates the progress dialog as objects are deleted.

Specified by:
s3ServiceEventPerformed in interface S3ServiceEventListener
Parameters:
event -

s3ServiceEventPerformed

public void s3ServiceEventPerformed(GetObjectHeadsEvent event)
This method is an S3ServiceEventListener action method that is invoked when this application's S3ServiceMulti triggers a GetObjectHeadsEvent.

This method merely updates the progress dialog as object details (heads) are retrieved.

Specified by:
s3ServiceEventPerformed in interface S3ServiceEventListener
Parameters:
event -

followHyperlink

public void followHyperlink(java.net.URL url,
                            java.lang.String target)
Follows hyperlinks clicked on by a user. This is achieved differently depending on whether Cockpit is running as an applet or as a stand-alone application:

Specified by:
followHyperlink in interface HyperlinkActivatedListener
Parameters:
url - the url to open
target - the target pane to open the url in, eg "_blank". This may be null.

getCredentials

public org.apache.commons.httpclient.Credentials getCredentials(org.apache.commons.httpclient.auth.AuthScheme authscheme,
                                                                java.lang.String host,
                                                                int port,
                                                                boolean proxy)
                                                         throws org.apache.commons.httpclient.auth.CredentialsNotAvailableException
Implementation method for the CredentialsProvider interface.

Based on sample code: InteractiveAuthenticationExample

Specified by:
getCredentials in interface org.apache.commons.httpclient.auth.CredentialsProvider
Throws:
org.apache.commons.httpclient.auth.CredentialsNotAvailableException

s3ServiceEventPerformed

public void s3ServiceEventPerformed(CreateBucketsEvent event)
Specified by:
s3ServiceEventPerformed in interface S3ServiceEventListener

s3ServiceEventPerformed

public void s3ServiceEventPerformed(CopyObjectsEvent event)
Specified by:
s3ServiceEventPerformed in interface S3ServiceEventListener

getAclDescription

public static java.lang.String getAclDescription(AccessControlList acl)

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
Runs Cockpit as a stand-alone application.

Parameters:
args -
Throws:
java.lang.Exception