import java.awt.Container;

import javax.swing.RootPaneContainer;

import com.jidesoft.docking.DefaultDockingManager;
import com.jidesoft.docking.FrameContainer;

public class DockingManager_Test extends DefaultDockingManager {

	public JideTabbedPaneTest tp;
	public JideTabbedPaneTest.ExtendedNoFocusButton t;

	public DockingManager_Test(RootPaneContainer holderpanel, Container arg1) {
		super(holderpanel, arg1);

	}

	@Override
	public FrameContainer createFrameContainer() {

		super.createFrameContainer();
		FrameContainer framecontainer_instance = new FrameContainer(this) {
			@Override
			public NoFocusButton createNoFocusButton(int arg0) {
				tp = new JideTabbedPaneTest();
				t = tp.new ExtendedNoFocusButton();
				return t;
			}
		};
		framecontainer_instance.setVisible(true);
		customizeFrameContainer(framecontainer_instance);
		return framecontainer_instance;

	}

	public void setExternalCustomizer(){
		tp = new JideTabbedPaneTest();
		TabCust_Test cust_Test = new TabCust_Test(tp);
		cust_Test.customize(tp);
		setTabbedPaneCustomizer(cust_Test);
	}

	@Override
	public void setTabbedPaneCustomizer(TabbedPaneCustomizer arg0) {
		super.setTabbedPaneCustomizer(arg0);
	}
}
------------------------------------------------------------------

import javax.swing.SwingConstants;

import com.jidesoft.docking.DockingManager.TabbedPaneCustomizer;
import com.jidesoft.swing.JideTabbedPane;


public class TabCust_Test implements TabbedPaneCustomizer{

	private JideTabbedPane saved_tabpane = null;

	public TabCust_Test(JideTabbedPane savedjide) {
		this.saved_tabpane = savedjide;
	}

	public void customize(JideTabbedPane arg0) {

		arg0.setTabPlacement(SwingConstants.TOP);
		arg0.setTabShape(JideTabbedPane.SHAPE_OFFICE2003);
		arg0.setUseDefaultShowCloseButtonOnTab(true);
		arg0.setTabClosableAt(0, true);
		arg0.setShowCloseButtonOnTab(true);

	}

}
-------------------------------------------------------------------------------

import java.awt.Component;
import java.awt.Container;

import javax.swing.JLayeredPane;
import javax.swing.RootPaneContainer;

import com.jidesoft.docking.DockableHolderPanel;
import com.jidesoft.docking.DockingManager;

public class test_holderpanel extends DockableHolderPanel implements RootPaneContainer{

	/**
	 *
	 */
	private static final long serialVersionUID = 1L;

	private DockingManager_Test extendedDockingManager;

	Container holder_container = null;

	public test_holderpanel(Container hold_dock_container) {

		setContentPane(hold_dock_container);
	 setVisible(true);

	}


	protected DockingManager createDockingManager(Container contentContainer) {

		extendedDockingManager = new DockingManager_Test(this, holder_container);
		return extendedDockingManager;
	}

	@Override
	public DockingManager getDockingManager() {
		return extendedDockingManager;
	}

	public void setContentPane(Container contentPane) {
		this.holder_container = contentPane;
		System.out.println("setcontentpane");
	}

	public Container getContentPane() {
		return holder_container;
	}

	public void setLayeredPane(JLayeredPane layeredPane) {
		// TODO Auto-generated method stub

	}

	public JLayeredPane getLayeredPane() {
		// TODO Auto-generated method stub
		return null;
	}

	public void setGlassPane(Component glassPane) {
		// TODO Auto-generated method stub

	}

	public Component getGlassPane() {
		// TODO Auto-generated method stub
		return null;
	}



}
--------------------------------------------------------------
