package de.unisiegen.gtitool.ui.swing.dnd;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;
/**
* Transferable for {@link JGTITabbedPaneComponent}.
*
* @author Christian Fehler
* @version $Id: JGTIListModelRowsTransferable.java 728 2008-04-04 12:28:48Z
* fehler $
*/
public final class JGTITabbedPaneTransferable implements Transferable
{
/**
* The {@link DataFlavor}.
*/
public static final DataFlavor dataFlavor;
static
{
try
{
dataFlavor = new DataFlavor ( DataFlavor.javaJVMLocalObjectMimeType
+ ";class=" //$NON-NLS-1$
+ JGTITabbedPaneComponent.class.getCanonicalName () );
}
catch ( ClassNotFoundException e )
{
throw new RuntimeException ( e );
}
}
/**
* The {@link JGTITabbedPaneComponent}.
*
* @see #getJGTITabbedPaneComponent()
*/
private final JGTITabbedPaneComponent jGTITabbedPaneComponent;
/**
* Allocates a new {@link JGTITabbedPaneTransferable} for the specified rows.
*
* @param jGTITabbedPaneComponent The {@link JGTITabbedPaneComponent} to
* transfer.
* @throws NullPointerException if <code>rows</code> is <code>null</code>.
*/
public JGTITabbedPaneTransferable (
JGTITabbedPaneComponent jGTITabbedPaneComponent )
{
if ( jGTITabbedPaneComponent == null )
{
throw new NullPointerException ( "tabbed pane component can not be null" ); //$NON-NLS-1$
}
this.jGTITabbedPaneComponent = jGTITabbedPaneComponent;
}
/**
* Returns the {@link JGTITabbedPaneComponent}.
*
* @return The {@link JGTITabbedPaneComponent}.
*/
public final JGTITabbedPaneComponent getJGTITabbedPaneComponent ()
{
return this.jGTITabbedPaneComponent;
}
/**
* {@inheritDoc}
*
* @see Transferable#getTransferData(DataFlavor)
*/
@SuppressWarnings ( "unused" )
public final Object getTransferData ( DataFlavor flavor )
throws UnsupportedFlavorException, IOException
{
if ( isDataFlavorSupported ( flavor ) )
{
return this.jGTITabbedPaneComponent;
}
throw new UnsupportedFlavorException ( flavor );
}
/**
* {@inheritDoc}
*
* @see Transferable#getTransferDataFlavors()
*/
public final DataFlavor [] getTransferDataFlavors ()
{
return new DataFlavor []
{ dataFlavor };
}
/**
* {@inheritDoc}
*
* @see Transferable#isDataFlavorSupported(DataFlavor)
*/
public final boolean isDataFlavorSupported ( DataFlavor checkDataFlavor )
{
for ( DataFlavor supportedFlavor : getTransferDataFlavors () )
{
if ( supportedFlavor.equals ( checkDataFlavor ) )
{
return true;
}
}
return false;
}
}