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.Query;
010
011 /**
012 * Action listener for saving the query in {@link QueryExecutorView} to
013 * the application persistent storage area.
014 *
015 * <p>© Copyright 2007 <a href='http://sptci.com/' target='_new'>Sans Pareil Technologies, Inc.</a></p>
016 * @author Rakesh Vidyadharan 2007-10-05
017 * @version $Id: SaveQueryListener.java 4123 2008-05-25 21:49:01Z rakesh $
018 */
019 public class SaveQueryListener 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 SaveQueryListener( final MainController controller )
028 {
029 super( controller );
030 }
031
032 /**
033 * The action listener implementation. Saves the query to application
034 * persistent storage.
035 *
036 * @see com.sptci.rwt.Queries#add
037 * @see MainController#resetMenu
038 * @param event The event that triggers the save process.
039 */
040 public void actionPerformed( ActionEvent event )
041 {
042 SaveQueryComponent dest = (SaveQueryComponent)
043 controller.getParentView( (Component) event.getSource() );
044 PopUp popup = (PopUp) dest.getParent();
045 ExecutorView view = (ExecutorView) controller.getParentView( popup );
046
047 Query query = new Query( dest.getName(), view.getQuery() );
048 controller.getQueries().add( dest.getCategory(), query );
049 controller.resetMenu();
050 popup.setExpanded( false );
051 }
052 }