View Javadoc

1   /*
2    *  soapUI, copyright (C) 2004-2007 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.dnd;
14  
15  import java.awt.datatransfer.DataFlavor;
16  import java.awt.datatransfer.Transferable;
17  import java.awt.datatransfer.UnsupportedFlavorException;
18  
19  import com.eviware.soapui.model.ModelItem;
20  
21  public class ModelItemTransferable implements Transferable
22  {
23  	public static final DataFlavor MODELITEM_DATAFLAVOR = new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType, "SoapUIModelItem");
24  
25  	private ModelItem		modelItem;
26  
27  	private DataFlavor[]	_flavors = 
28  							{
29  								MODELITEM_DATAFLAVOR
30  							};
31  	
32  	/***
33  	* Constructs a transferrable tree path object for the specified path.
34  	*/
35  	public ModelItemTransferable(ModelItem path)
36  	{
37  		modelItem = path;
38  	}
39  	
40  	// Transferable interface methods...
41  	public DataFlavor[] getTransferDataFlavors()
42  	{
43  		return _flavors;
44  	}
45  	
46  	public ModelItem getModelItem()
47  	{
48  		return modelItem;
49  	}
50  	
51  	public boolean isDataFlavorSupported(DataFlavor flavor)
52  	{
53  		return java.util.Arrays.asList(_flavors).contains(flavor);
54  	}
55  	
56  	public synchronized Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException
57  	{
58  		if (flavor.isMimeTypeEqual(MODELITEM_DATAFLAVOR.getMimeType())) // DataFlavor.javaJVMLocalObjectMimeType))
59  			return modelItem;
60  		else
61  			throw new UnsupportedFlavorException(flavor);	
62  	}
63  }