/*
* @(#)InitialLayoutDockDemo.java 6/5/2005
*
* Copyright 2002 - 2005 JIDE Software Inc. All rights reserved.
*/
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.io.IOException;
import java.util.Collection;
import java.util.Iterator;
import javax.swing.*;
import javax.xml.parsers.ParserConfigurationException;
import com.jidesoft.docking.*;
import com.jidesoft.swing.JideTabbedPane;
import org.xml.sax.SAXException;
import com.jidesoft.swing.JideSwingUtilities;
/**
*
Required jar files: jide-common.jar, jide-dock.jar
Required L&F: any L&F
*/
public class InitialLayoutDockDemo extends JFrame {
private static final long serialVersionUID = -8591461681019408554L;
// private DockableHolderPanel _panel;
private DockableHolderPanel _panel;
public InitialLayoutDockDemo() {
setTitle("Tab button Test");
setLayout(new BorderLayout());
getContentPane().add(getOptionsPanel(), BorderLayout.WEST);
getContentPane().add(getDemoPanel(), BorderLayout.CENTER);
// setSize(new Dimension(900,700));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
pack();
}
public Component getOptionsPanel() {
JPanel panel = new JPanel(new GridLayout(3, 1, 3, 3));
panel.add(new JButton(new AbstractAction("Load Edit Layout") {
public void actionPerformed(ActionEvent e) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
loadInitialLayout("edit.ilayout");
Collection coll = _panel.getDockingManager().getAllFrames();
Iterator it_coll = coll.iterator();
while (it_coll.hasNext()) {
String object = (String) it_coll.next();
DockableFrame df = _panel.getDockingManager().getFrame(object);
// System.out.println("df name"+df.getSize());
}
_panel.getDockingManager().activateWorkspace();
_panel.getDockingManager().activateWorkspace();
_panel.getDockingManager().activateFrame("Output");
validate();
repaint();
pack();
}
});
}
}));
return panel;
}
public Component getDemoPanel() {
_panel = new DockableHolderPanel() {
@Override
protected DockingManager createDockingManager(RootPaneContainer container) {
return new DefaultDockingManager(container, this) {
@Override
public FrameContainer createFrameContainer() {
FrameContainer frameContainer = new FrameContainerTest(this);
customizeFrameContainer(frameContainer);
return frameContainer;
}
};
}
};
setHolderPanelSettings();
_panel.getDockingManager().setDockableFrameFactory(new com.jidesoft.docking.DockableFrameFactory() {
public DockableFrame create(String key) {
DockableFrame frame = new DockableFrame(key);
frame.getContentPane().add(new JScrollPane(new JTextArea()));
frame.setPreferredSize(new Dimension(250, 250));
frame.setSize(new Dimension(250, 250));
frame.setMinimumSize(new Dimension(250, 250));
frame.setMaximumSize(new Dimension(250, 250));
frame.setDefaultCloseAction(DockableFrame.CLOSE_ACTION_TO_REMOVE);
frame.setVisible(true);
return frame;
}
});
setTabCustomizer();
_panel.setPreferredSize(new Dimension(800, 500));
return _panel;
}
private void setTabCustomizer() {
_panel.getDockingManager().setTabbedPaneCustomizer(new DockingManager.TabbedPaneCustomizer() {
public void customize(JideTabbedPane arg0) {
arg0.setTabPlacement(SwingConstants.TOP);
arg0.setTabShape(JideTabbedPane.SHAPE_OFFICE2003);
arg0.setUseDefaultShowCloseButtonOnTab(true);
arg0.setTabClosableAt(0, true);
arg0.setShowCloseButtonOnTab(true);
}
});
}
private void setHolderPanelSettings() {
System.out.println(_panel.getClass());
System.out.println(_panel.getDockingManager().getClass());
System.out.println(_panel.getDockingManager().getAllFrameNames());
_panel.setOpaque(false);
_panel.setBorder(BorderFactory.createTitledBorder("Test"));
_panel.getDockingManager().getContentContainer().setBackground(Color.GRAY);
_panel.setBackground(Color.BLACK);
_panel.getDockingManager().setShowContextMenu(true);
_panel.getDockingManager().setShowTitleOnOutline(true);
_panel.getDockingManager().setEasyTabDock(true);
_panel.getDockingManager().setShowTitleBar(false);
_panel.getDockingManager().setNestedFloatingAllowed(true);
_panel.getDockingManager().setShowWorkspace(true);
}
private void loadInitialLayout(String resourceName) {
_panel.getDockingManager().switchRootPaneContainer((RootPaneContainer) _panel.getTopLevelAncestor());
try {
_panel.getDockingManager().loadInitialLayout(getClass().getClassLoader().getResourceAsStream(resourceName));
}
catch (ParserConfigurationException e) {
JideSwingUtilities.printException(e);
}
catch (SAXException e) {
JideSwingUtilities.printException(e);
}
catch (IOException e) {
JideSwingUtilities.printException(e);
}
_panel.getDockingManager().resetToDefault();
}
static public void main(String[] s) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new InitialLayoutDockDemo();
}
});
}
}