package org.limewire.ui.swing.wizard;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import org.jdesktop.swingx.JXButton;
import org.limewire.ui.swing.action.UrlAction;
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;
import org.limewire.ui.swing.util.I18n;
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 String getForwardButtonText() {
return I18n.tr("Continue");
}
protected boolean hasBackButton() {
return true;
}
protected JLabel createAndDecorateHeader(String text) {
JLabel label = new JLabel("<html>"+text+"</html>");
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 JLabel createAndDecorateMultiLine(String text) {
JLabel label = new MultiLineLabel(text, 500);
decorator.decorateNormalText(label);
return label;
}
protected JLabel createAndDecorateLabel(String text) {
JLabel label = new JLabel(text);
decorator.decorateNormalText(label);
return label;
}
protected JLabel 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;
}
protected HyperlinkButton createAndDecorateHyperlink(final String url, String text) {
UrlAction urlAction = new UrlAction(text, url);
HyperlinkButton hyperlinkButton = new HyperlinkButton(urlAction);
decorator.decorateLink(hyperlinkButton);
return hyperlinkButton;
}
protected JXButton createAndDecorateButton(String text) {
JXButton button = new JXButton(text);
decorator.decorateGreyButton(button);
return button;
}
}