org.jdesktop.swingx.plaf.basic.BasicTaskPaneContainerUI Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of swingx-all Show documentation
Show all versions of swingx-all Show documentation
A Maven project to aggregate all modules into a single artifact.
/*
* $Id: BasicTaskPaneContainerUI.java 3475 2009-08-28 08:30:47Z kleopatra $
*
* Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle,
* Santa Clara, California 95054, U.S.A. All rights reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
package org.jdesktop.swingx.plaf.basic;
import java.awt.LayoutManager;
import javax.swing.JComponent;
import javax.swing.LookAndFeel;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.UIResource;
import org.jdesktop.swingx.JXTaskPaneContainer;
import org.jdesktop.swingx.VerticalLayout;
import org.jdesktop.swingx.plaf.LookAndFeelAddons;
import org.jdesktop.swingx.plaf.TaskPaneContainerUI;
/**
* Base implementation of the JXTaskPaneContainer
UI.
*
* @author Frederic Lavigne
* @author Karl Schaefer
*/
public class BasicTaskPaneContainerUI extends TaskPaneContainerUI {
/**
* A {@code UIResource} implementation of {@code VerticalLayout}.
*
* @author Karl George Schaefer
*/
protected class VerticalLayoutUIResource extends VerticalLayout implements UIResource {
/**
* The default layout.
*/
public VerticalLayoutUIResource() {
super();
}
/**
* Defines a layout with the specified gap.
*
* @param gap
* the gap between components
*/
public VerticalLayoutUIResource(int gap) {
super(gap);
}
}
/**
* Returns a new instance of BasicTaskPaneContainerUI.
* BasicTaskPaneContainerUI delegates are allocated one per
* JXTaskPaneContainer.
*
* @return A new TaskPaneContainerUI implementation for the Basic look and
* feel.
*/
public static ComponentUI createUI(JComponent c) {
return new BasicTaskPaneContainerUI();
}
/**
* The task pane container managed by this UI delegate.
*/
protected JXTaskPaneContainer taskPane;
/**
* {@inheritDoc}
*/
@Override
public void installUI(JComponent c) {
super.installUI(c);
taskPane = (JXTaskPaneContainer)c;
installDefaults();
LayoutManager manager = taskPane.getLayout();
if (manager == null || manager instanceof UIResource) {
taskPane.setLayout(createDefaultLayout());
}
}
/**
* Installs the default colors, border, and painter of the task pane
* container.
*/
protected void installDefaults() {
LookAndFeel.installColors(taskPane, "TaskPaneContainer.background",
"TaskPaneContainer.foreground");
LookAndFeel.installBorder(taskPane, "TaskPaneContainer.border");
LookAndFeelAddons.installBackgroundPainter(taskPane,
"TaskPaneContainer.backgroundPainter");
LookAndFeel.installProperty(taskPane, "opaque", Boolean.TRUE);
}
/**
* Constructs a layout manager to be used by the Look and Feel.
* @return the layout manager for the current Look and Feel
*/
protected LayoutManager createDefaultLayout() {
return new VerticalLayoutUIResource(14);
}
/**
* {@inheritDoc}
*/
@Override
public void uninstallUI(JComponent c) {
uninstallDefaults();
super.uninstallUI(c);
}
/**
* Uninstalls the default colors, border, and painter of the task pane
* container.
*/
protected void uninstallDefaults() {
LookAndFeel.uninstallBorder(taskPane);
LookAndFeelAddons.uninstallBackgroundPainter(taskPane);
}
}