001    package com.sptci.rwt.webui;
002    
003    import nextapp.echo2.app.Component;
004    import nextapp.echo2.app.event.ActionEvent;
005    
006    import echopointng.PopUp;
007    
008    import com.sptci.echo2.Listener;
009    import com.sptci.rwt.ConnectionParameters;
010    
011    /**
012     * Action listener for saving the connection in {@link ConnectionDialogue}
013     * to the application persistent storage area.
014     *
015     * <p>&copy; Copyright 2007 <a href='http://sptci.com/' target='_new'>Sans Pareil Technologies, Inc.</a></p>
016     * @author Rakesh Vidyadharan 2007-10-14
017     * @version $Id: SaveConnectionListener.java 4123 2008-05-25 21:49:01Z rakesh $
018     */
019    public class SaveConnectionListener extends Listener<MainController>
020    {
021      /**
022       * Create a new instance of the listener using the specified controller.
023       *
024       * @param controller The controller to use to interact with the
025       *   application.
026       */
027      public SaveConnectionListener( final MainController controller )
028      {
029        super( controller );
030      }
031    
032      /**
033       * The action listener implementation.  Saves the connection to
034       * application persistent storage.
035       *
036       * @see MainController#getParameters
037       * @see com.sptci.rwt.Connections#add
038       * @see MainController#resetMenu
039       * @param event The event that triggers the save process.
040       */
041      public void actionPerformed( ActionEvent event )
042      {
043        SaveConnectionComponent dest = (SaveConnectionComponent)
044          controller.getParentView( (Component) event.getSource() );
045        PopUp popup = (PopUp) dest.getParent();
046    
047        ConnectionDialogue view =
048          (ConnectionDialogue) controller.getParentView( popup );
049        ConnectionParameters parameters = controller.getParameters( view );
050    
051        controller.getConnections().add( dest.getName(), parameters );
052        controller.resetMenu();
053        popup.setExpanded( false );
054      }
055    }