package net.sourceforge.squirrel_sql.client.gui.builders.dndtabbedpane;
import java.awt.*;
import java.awt.datatransfer.Transferable;
import java.awt.dnd.*;
class DndTabbedPaneDragGestureListener implements DragGestureListener
{
private final Transferable _t;
private final DragSourceListener _dsl;
private DnDTabbedPaneData _dnDTabbedPaneData;
private GhostGlassPane _glassPane;
public DndTabbedPaneDragGestureListener(Transferable t, DragSourceListener dsl, DnDTabbedPaneData dnDTabbedPaneData, GhostGlassPane glassPane)
{
_t = t;
_dsl = dsl;
_dnDTabbedPaneData = dnDTabbedPaneData;
_glassPane = glassPane;
}
@Override
public void dragGestureRecognized(DragGestureEvent e)
{
// if (_dnDTabbedPaneData.getTabbedPane().getTabCount() <= 1)
// {
// return;
// }
Point tabPt = e.getDragOrigin();
_dnDTabbedPaneData.setDragTabIndex(_dnDTabbedPaneData.getTabbedPane().indexAtLocation(tabPt.x, tabPt.y));
//"disabled tab problem".
if (_dnDTabbedPaneData.getDragTabIndex() < 0 || !_dnDTabbedPaneData.getTabbedPane().isEnabledAt(_dnDTabbedPaneData.getDragTabIndex())) return;
DndTabUtils.initGlassPaneLocal(e.getDragOrigin(), _dnDTabbedPaneData, _glassPane);
try
{
e.startDrag(DragSource.DefaultMoveDrop, _t, _dsl);
}
catch (InvalidDnDOperationException idoe)
{
idoe.printStackTrace();
}
}
}