

/*
 * @(#)FrameContainerTest.java 3/19/2012
 *
 * Copyright 2002 - 2012 JIDE Software Inc. All rights reserved.
 */

import java.awt.Color;
import java.awt.Dimension;

import javax.swing.BorderFactory;
import javax.swing.SwingConstants;
import javax.swing.border.Border;

import com.jidesoft.docking.DockableFrame;
import com.jidesoft.docking.DockingManager;
import com.jidesoft.docking.DockingManager.TabbedPaneCustomizer;
import com.jidesoft.docking.FrameContainer;
import com.jidesoft.plaf.basic.BasicJideTabbedPaneUI;
import com.jidesoft.swing.JideTabbedPane;

public class FrameContainerTest extends FrameContainer{

    public FrameContainerTest(DockingManager dockingManager) {
        super(dockingManager);
        initialize();
    }

    public FrameContainerTest(DockingManager dockingManager, int tabPlacement, int tabLayoutPolicy) {
        super(dockingManager, tabPlacement, tabLayoutPolicy);
        initialize();
    }

    private void initialize() {
		
		setBorder(BorderFactory.createLineBorder(Color.yellow,5));

		setBackground(Color.green);
		setVisible(true);
	}

    @Override
    public void updateUI() {
        super.updateUI();
        setUI(new BasicJideTabbedPaneUI() {
            @Override
            public void installColorTheme() {
                super.installColorTheme();
                _selectColor1 = Color.red;
                _unselectColor1 = Color.red;
            }
        });
    }

    @Override
    public void insertTab(DockableFrame frame, int index, boolean suppressEvents) {
        super.insertTab(frame, index, suppressEvents);
        setBackgroundAt(index, Color.gray);
    }

    @Override
	public NoFocusButton createNoFocusButton(int arg0) {
		return new ExtendedNoFocusButton(arg0);
	}

	public class ExtendedNoFocusButton extends NoFocusButton {

        public ExtendedNoFocusButton(int type) {
            super(type);
        }

        @Override
		public void setOpaque(boolean isOpaque) {

			super.setOpaque(true);
		}

		@Override
		public void setBorder(Border border) {

			super.setBorder(BorderFactory.createLineBorder(Color.ORANGE, 2));
		}

		@Override
		protected Color getForegroundColor() {
			return Color.GREEN;
		}

		@Override
		protected Color getShadowColor() {

			return Color.BLACK;
		}

		@Override
		protected Color getPressedShadowColor() {

			return Color.BLACK;
		}
		@Override
		public void setBackground(Color bg) {
		
			super.setBackground(Color.BLUE);
		}
	}

}