package org.limewire.ui.swing.wizard;
import java.awt.Component;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import org.limewire.ui.swing.components.HyperlinkButton;
import org.limewire.ui.swing.components.MultiLineLabel;
import org.limewire.ui.swing.components.ToggleExtenderListener;
import org.limewire.ui.swing.options.LearnMoreButton;
public abstract class WizardPage extends JPanel {
private final SetupComponentDecorator decorator;
public WizardPage(SetupComponentDecorator decorator) {
this.decorator = decorator;
}
public abstract void applySettings();
public abstract String getLine1();
public abstract String getLine2();
public abstract String getFooter();
protected JLabel createAndDecorateHeader(String text) {
JLabel label = new JLabel(text);
decorator.decorateHeadingText(label);
return label;
}
protected JLabel createAndDecorateMultiLine(String text, JCheckBox checkBox) {
JLabel label = new MultiLineLabel(text, 500);
label.addMouseListener(new ToggleExtenderListener(checkBox));
decorator.decorateNormalText(label);
return label;
}
protected Component createAndDecorateMultiLine(String text) {
JLabel label = new MultiLineLabel(text, 500);
decorator.decorateNormalText(label);
return label;
}
protected Component createAndDecorateSubHeading(String text) {
JLabel label = new MultiLineLabel(text, 500);
decorator.decorateSubHeading(label);
return label;
}
protected JCheckBox createAndDecorateCheckBox(boolean isSelected) {
JCheckBox checkBox = new JCheckBox();
checkBox.setSelected(isSelected);
decorator.decorateLargeCheckBox(checkBox);
return checkBox;
}
protected HyperlinkButton createAndDecorateHyperlink(final String url) {
HyperlinkButton learnMoreButton = new LearnMoreButton(url);
decorator.decorateLink(learnMoreButton);
return learnMoreButton;
}
}