001: /*
002: * Copyright (c) 2004 JETA Software, Inc. All rights reserved.
003: *
004: * Redistribution and use in source and binary forms, with or without modification,
005: * are permitted provided that the following conditions are met:
006: *
007: * o Redistributions of source code must retain the above copyright notice,
008: * this list of conditions and the following disclaimer.
009: *
010: * o Redistributions in binary form must reproduce the above copyright notice,
011: * this list of conditions and the following disclaimer in the documentation
012: * and/or other materials provided with the distribution.
013: *
014: * o Neither the name of JETA Software nor the names of its contributors may
015: * be used to endorse or promote products derived from this software without
016: * specific prior written permission.
017: *
018: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
019: * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
020: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
021: * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
022: * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
023: * INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
024: * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
025: * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
026: * INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
027: * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
028: */
029:
030: package com.jeta.forms.components.border;
031:
032: import java.awt.Color;
033: import java.awt.Font;
034:
035: import javax.swing.JComponent;
036: import javax.swing.UIManager;
037: import javax.swing.border.TitledBorder;
038:
039: import com.jeta.open.i18n.I18N;
040:
041: /**
042: * A component that simulates the top part of a TitledBorder. This component is
043: * useful when flattening layouts. It allows a titled border to be used to
044: * separate components, while allowing those components to stay in the same row
045: * or column of the form. This allows components to have the same x,y, width, or
046: * height, yet have differnt title borders. This is not possible when using
047: * standard TitledBorder.
048: *
049: * @author Jeff Tassin
050: */
051: public class TitledBorderLabel extends JComponent {
052: /**
053: * The text for the label
054: */
055: private String m_title = I18N.getLocalizedMessage("Title");
056:
057: /**
058: * The font for the label
059: */
060: private Font m_font;
061:
062: /**
063: * The text color
064: */
065: private Color m_title_color;
066:
067: /**
068: * The justification for the title (see TitledBorder justification)
069: */
070: private int m_justification = TitledBorder.DEFAULT_JUSTIFICATION;
071:
072: /**
073: * ctor
074: */
075: public TitledBorderLabel() {
076: updateUI();
077: }
078:
079: /**
080: * Returns the title text.
081: */
082: public String getText() {
083: return m_title;
084: }
085:
086: /**
087: * Returns the title text color.
088: */
089: public Color getTitleColor() {
090: Color c = m_title_color;
091: if (c == null)
092: c = UIManager.getColor("TitledBorder.titleColor");
093: return c;
094: }
095:
096: /**
097: * Returns the justfication of the title (see TitledBorder justification)
098: */
099: public int getTitleJustification() {
100: return m_justification;
101: }
102:
103: /**
104: * Returns the title font
105: */
106: public Font getFont() {
107: Font f = m_font;
108: if (f == null)
109: f = UIManager.getFont("TitledBorder.font");
110:
111: return f;
112: }
113:
114: /**
115: * Resets the UI property to a value from the current look and feel.
116: *
117: * @see JComponent#updateUI
118: */
119: public void updateUI() {
120: setUI(new TitledBorderLabelUI());
121: }
122:
123: /**
124: * Sets the title text
125: */
126: public void setText(String title) {
127: m_title = title;
128: }
129:
130: /**
131: * Sets the title color.
132: */
133: public void setTitleColor(Color c) {
134: m_title_color = c;
135: }
136:
137: /**
138: * Sets the title font.
139: */
140: public void setFont(Font font) {
141: m_font = font;
142: }
143:
144: /**
145: * Sets the title justification (see TitledBorder justfication).
146: */
147: public void setTitleJustification(int justification) {
148: m_justification = justification;
149: }
150:
151: }
|