001 package org.springframework.richclient.application.setup;
002
003 import java.awt.Color;
004 import java.awt.Dimension;
005 import java.awt.Font;
006 import java.awt.Graphics;
007 import java.awt.Graphics2D;
008 import java.awt.Insets;
009 import java.awt.RenderingHints;
010
011 import javax.swing.JComponent;
012 import javax.swing.JLabel;
013 import javax.swing.JPanel;
014
015 import org.springframework.richclient.layout.GridBagLayoutBuilder;
016 import org.springframework.richclient.util.LabelUtils;
017 import org.springframework.richclient.wizard.AbstractWizardPage;
018
019 /**
020 * @author cro
021 */
022 public class SetupIntroWizardPage extends AbstractWizardPage {
023 private static final Color TITLE_COLOR = new Color(48, 48, 48);
024
025 public SetupIntroWizardPage() {
026 super("intro");
027 }
028
029 protected JComponent createControl() {
030 GridBagLayoutBuilder builder = new GridBagLayoutBuilder();
031
032 builder.setDefaultInsets(new Insets(10, 20, 0, 0));
033
034 builder.append(createWelcomeToLabel(), 1, 1, true, false);
035 builder.nextLine();
036 builder.append(createTitleLabel(), 1, 1, true, false, new Insets(10, 20, 15, 0));
037
038 builder.nextLine();
039 builder.append(createDescriptionLabel(), 1, 1, true, false);
040
041 builder.nextLine();
042 builder.append(createSpacer(0, 0), 1, 1, true, true);
043
044 JPanel control = builder.getPanel();
045 control.setOpaque(false);
046 return control;
047 }
048
049 protected JLabel createTitleLabel() {
050 JLabel bigTitleLabel = new JLabel(getMessage("setup.intro.title")) {
051 public void paintComponent(Graphics g) {
052 Graphics2D g2 = (Graphics2D)g;
053 g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
054 super.paintComponent(g2);
055 }
056 };
057 Font font = new Font(bigTitleLabel.getFont().getFontName(), Font.BOLD, 22);
058 bigTitleLabel.setFont(font);
059 bigTitleLabel.setForeground(TITLE_COLOR);
060 return bigTitleLabel;
061 }
062
063 private JLabel createWelcomeToLabel() {
064 JLabel welcomeToLabel = new JLabel(this.getMessage("setup.intro.welcomeTo"));
065 Font font = new Font(welcomeToLabel.getFont().getFontName(), Font.BOLD, welcomeToLabel.getFont().getSize());
066
067 welcomeToLabel.setFont(font);
068 welcomeToLabel.setForeground(TITLE_COLOR);
069
070 return welcomeToLabel;
071 }
072
073 private JLabel createDescriptionLabel() {
074 return new JLabel(LabelUtils.htmlBlock(getMessage("setup.intro.description")));
075 }
076
077 private JComponent createSpacer(final int x, final int y) {
078 JPanel spacer = new JPanel() {
079 public Dimension getPreferredSize() {
080 return new Dimension(x, y);
081 }
082 };
083 spacer.setOpaque(false);
084 return spacer;
085 }
086 }