View Javadoc

1   /*
2    *  soapUI, copyright (C) 2004-2010 eviware.com 
3    *
4    *  soapUI is free software; you can redistribute it and/or modify it under the 
5    *  terms of version 2.1 of the GNU Lesser General Public License as published by 
6    *  the Free Software Foundation.
7    *
8    *  soapUI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 
9    *  even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
10   *  See the GNU Lesser General Public License for more details at gnu.org.
11   */
12  
13  package com.eviware.soapui.support.swing;
14  
15  import java.awt.event.KeyAdapter;
16  import java.awt.event.KeyEvent;
17  
18  import javax.swing.JList;
19  
20  import com.eviware.soapui.model.ModelItem;
21  import com.eviware.soapui.support.action.swing.ActionList;
22  import com.eviware.soapui.support.action.swing.ActionListBuilder;
23  
24  public abstract class ModelItemListKeyListener extends KeyAdapter
25  {
26  	public void keyPressed( KeyEvent e )
27  	{
28  		int[] ix = ( ( JList )e.getSource() ).getSelectedIndices();
29  		if( ix.length == 0 )
30  			return;
31  
32  		if( ix.length == 1 )
33  		{
34  			ModelItem modelItem = getModelItemAt( ix[0] );
35  		ActionList actions = ActionListBuilder.buildActions( modelItem );
36  		if( actions != null )
37  			actions.dispatchKeyEvent( e );
38  	}
39  		else
40  		{
41  			ModelItem[] modelItems = new ModelItem[ix.length];
42  
43  			for( int c = 0; c < ix.length; c++ )
44  				modelItems[c] = getModelItemAt( ix[c] );
45  
46  			ActionList actions = ActionListBuilder.buildMultiActions( modelItems );
47  			if( actions != null )
48  				actions.dispatchKeyEvent( e );
49  		}
50  	}
51  
52  	public abstract ModelItem getModelItemAt( int ix );
53  }