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 }