001    // This file is part of the Attempto Java Packages.
002    // Copyright 2008-2009, 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    }