final boolean spl = tabbedPane.getParent () instanceof WebSplitPane;
final boolean hor =
spl && ( ( WebSplitPane ) tabbedPane.getParent () ).getOrientation () == WebSplitPane.HORIZONTAL_SPLIT;
// Creating popup menu
final PopupMenuGenerator pmg = new PopupMenuGenerator ( "document-pane-menu" );
pmg.setIconSettings ( PaneData.class, "icons/menu/", ".png" );
pmg.setLanguagePrefix ( "weblaf.ex.docpane" );
pmg.addItem ( "close", "close", Hotkey.CTRL_W, csb, new ActionListener ()
{
@Override
public void actionPerformed ( final ActionEvent e )
{
close ( get ( index ) );
}
} );
pmg.addItem ( "closeOthers", "closeOthers", ocsb, new ActionListener ()
{
@Override
public void actionPerformed ( final ActionEvent e )
{
closeOthers ( get ( index ) );
}
} );
pmg.addSeparator ();
pmg.addItem ( "left", "left", spb, new ActionListener ()
{
@Override
public void actionPerformed ( final ActionEvent e )
{
split ( document, LEFT );
}
} );
pmg.addItem ( "right", "right", spb, new ActionListener ()
{
@Override
public void actionPerformed ( final ActionEvent e )
{
split ( document, RIGHT );
}
} );
pmg.addItem ( "top", "top", spb, new ActionListener ()
{
@Override
public void actionPerformed ( final ActionEvent e )
{
split ( document, TOP );
}
} );
pmg.addItem ( "bottom", "bottom", spb, new ActionListener ()
{
@Override
public void actionPerformed ( final ActionEvent e )
{
split ( document, BOTTOM );
}
} );
pmg.addSeparator ();
pmg.addItem ( "rotate", "rotate", spl, new ActionListener ()
{
@Override
public void actionPerformed ( final ActionEvent e )
{
rotate ();
}
} );
pmg.addItem ( hor ? "swapHor" : "swapVer", "swap", spl, new ActionListener ()
{
@Override
public void actionPerformed ( final ActionEvent e )
{
swap ();
}
} );
pmg.addItem ( hor ? "unsplitHor" : "unsplitVer", "unsplit", spl, new ActionListener ()
{
@Override
public void actionPerformed ( final ActionEvent e )
{
merge ();
}
} );
pmg.addItem ( "unsplit", "unsplitall", spl, new ActionListener ()
{
@Override
public void actionPerformed ( final ActionEvent e )
{
mergeAll ();
}
} );
// Displaying popup menu
final WebPopupMenu menu = pmg.getMenu ();
final Dimension mps = menu.getPreferredSize ();
final Rectangle bounds = tabbedPane.getBoundsAt ( index );
menu.show ( tabbedPane, bounds.x + bounds.width / 2 - mps.width / 2,
bounds.y + bounds.height - menu.getShadeWidth () + 5 );
}