001 // This file is part of the Attempto Java Packages.
002 // Copyright 2008, Attempto Group, University of Zurich (see http://attempto.ifi.uzh.ch).
003 //
004 // The Attempto Java Packages is free software: you can redistribute it and/or modify it under the
005 // terms of the GNU Lesser General Public License as published by the Free Software Foundation,
006 // either version 3 of the License, or (at your option) any later version.
007 //
008 // The Attempto Java Packages is distributed in the hope that it will be useful, but WITHOUT ANY
009 // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
010 // PURPOSE. See the GNU Lesser General Public License for more details.
011 //
012 // You should have received a copy of the GNU Lesser General Public License along with the Attempto
013 // Java Packages. If not, see http://www.gnu.org/licenses/.
014
015 package ch.uzh.ifi.attempto.acewiki.gui;
016
017 import ch.uzh.ifi.attempto.echocomp.Label;
018 import ch.uzh.ifi.attempto.echocomp.SolidLabel;
019 import ch.uzh.ifi.attempto.echocomp.Style;
020 import nextapp.echo2.app.Alignment;
021 import nextapp.echo2.app.Color;
022 import nextapp.echo2.app.Extent;
023 import nextapp.echo2.app.Font;
024 import nextapp.echo2.app.Insets;
025 import nextapp.echo2.app.Row;
026 import nextapp.echo2.app.layout.RowLayoutData;
027
028 /**
029 * This class represents a title label which is used for article titles.
030 *
031 * @author Tobias Kuhn
032 */
033 public class Title extends Row {
034
035 private static final long serialVersionUID = 7797492687936611323L;
036
037 private Label titleLabel;
038
039 /**
040 * Creates a new title which has two parts. The second part is shown in gray font.
041 *
042 * @param text The text of the main part of the title.
043 * @param postTitle The text of the second part of the title in gray font.
044 */
045 public Title(String text, String postTitle) {
046 setInsets(new Insets(10, 5, 10, 5));
047 Row row = new Row();
048 row.setCellSpacing(new Extent(5));
049 titleLabel = new Label(text);
050 titleLabel.setFont(new Font(Style.fontTypeface, Font.PLAIN, new Extent(20)));
051 row.add(titleLabel);
052 SolidLabel postTitleLabel = new SolidLabel(postTitle);
053 postTitleLabel.setFont(new Font(Style.fontTypeface, Font.ITALIC, new Extent(20)));
054 postTitleLabel.setForeground(Color.DARKGRAY);
055 RowLayoutData layout = new RowLayoutData();
056 layout.setAlignment(new Alignment(Alignment.CENTER, Alignment.BOTTOM));
057 postTitleLabel.setLayoutData(layout);
058 row.add(postTitleLabel);
059 add(row);
060 }
061
062 /**
063 * Creates a new title.
064 *
065 * @param text The text of the title.
066 * @param italic Defines whether the title text should be displayed in italics.
067 */
068 public Title(String text, boolean italic) {
069 setInsets(new Insets(10, 5, 5, 5));
070 titleLabel = new Label(text);
071 if (italic) {
072 titleLabel.setFont(new Font(Style.fontTypeface, Font.ITALIC, new Extent(20)));
073 } else {
074 titleLabel.setFont(new Font(Style.fontTypeface, Font.PLAIN, new Extent(20)));
075 }
076 add(titleLabel);
077 }
078
079 /**
080 * Creates a new title.
081 *
082 * @param text The title text.
083 */
084 public Title(String text) {
085 this(text, false);
086 }
087
088 /**
089 * Resets the title text.
090 *
091 * @param text The title text.
092 */
093 public void setText(String text) {
094 titleLabel.setText(text);
095 }
096
097 /**
098 * Sets the foreground color of the title text.
099 *
100 * @param color The foreground color.
101 */
102 public void setColor(Color color) {
103 titleLabel.setForeground(color);
104 }
105
106 }