01: /*
02: * $Id: JGraphpadHeaderPanel.java,v 1.1.1.1 2005/08/04 11:21:58 gaudenz Exp $
03: * Copyright (c) 2001-2005, Gaudenz Alder
04: *
05: * All rights reserved.
06: *
07: * See LICENSE file for license details. If you are unable to locate
08: * this file please contact info (at) jgraph (dot) com.
09: */
10: package com.jgraph.pad.dialog;
11:
12: import java.awt.BorderLayout;
13: import java.awt.Color;
14: import java.awt.Font;
15:
16: import javax.swing.BorderFactory;
17: import javax.swing.ImageIcon;
18: import javax.swing.JLabel;
19: import javax.swing.JPanel;
20: import javax.swing.JTextArea;
21:
22: /**
23: * Panel with a right-aligned icon, title and optional subtitle with a gradient
24: * background.
25: */
26: public class JGraphpadHeaderPanel extends JGraphpadGradientPanel {
27:
28: /**
29: * Constructs a new header panel with no subtitle.
30: *
31: * @param icon
32: * The icon to be displayed.
33: * @param title
34: * The title to be displayed.
35: */
36: public JGraphpadHeaderPanel(ImageIcon icon, String title) {
37: this (icon, title, null);
38: }
39:
40: /**
41: * Constructs a new header panel. If substitle is null then the no text area
42: * will be added. Using the textarea allows the subtitle to contain special
43: * characters, such as newlines (\n) and tabs (\t).
44: *
45: * @param icon
46: * The icon to be displayed.
47: * @param title
48: * The title to be displayed.
49: * @param subtitle
50: * The subtitle to be displayed.
51: */
52: public JGraphpadHeaderPanel(ImageIcon icon, String title,
53: String subtitle) {
54: super (Color.white);
55: setBorder(BorderFactory.createCompoundBorder(BorderFactory
56: .createMatteBorder(0, 0, 1, 0, Color.GRAY),
57: BorderFactory.createEmptyBorder(8, 8, 8, 8)));
58: setLayout(new BorderLayout());
59: setOpaque(false);
60:
61: // Adds icon
62: JLabel iconLabel = new JLabel(icon);
63: iconLabel.setOpaque(false);
64: add(iconLabel, BorderLayout.EAST);
65:
66: // Adds title/subtitle panel
67: JPanel textPanel = new JPanel(new BorderLayout());
68: textPanel.setOpaque(false);
69: add(textPanel, BorderLayout.CENTER);
70:
71: // Adds title
72: JLabel titleLabel = new JLabel(title);
73: titleLabel.setBorder(BorderFactory
74: .createEmptyBorder(4, 0, 0, 0));
75: titleLabel.setFont(titleLabel.getFont().deriveFont(Font.BOLD));
76: titleLabel.setOpaque(false);
77: textPanel.add(titleLabel, BorderLayout.NORTH);
78:
79: // Adds optional subtitle
80: if (subtitle != null) {
81: JTextArea textArea = new JTextArea(subtitle);
82: textArea.setOpaque(false);
83: textArea.setBorder(BorderFactory.createEmptyBorder(4, 18,
84: 0, 0));
85: textArea.setEditable(false);
86: textPanel.add(textArea, BorderLayout.CENTER);
87: }
88:
89: }
90:
91: }
|