package org.docear.plugin.services.features.update.view; import java.awt.Color; import java.net.URI; import java.net.URISyntaxException; import java.util.TreeMap; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.SwingConstants; import org.docear.plugin.core.Version; import org.docear.plugin.core.ui.wizard.AWizardPage; import org.docear.plugin.core.ui.wizard.WizardSession; import org.docear.plugin.services.features.update.UpdateCheck; import org.freeplane.core.util.LogUtils; import org.freeplane.core.util.TextUtils; import org.swingplus.JHyperlink; import com.jgoodies.forms.factories.FormFactory; import com.jgoodies.forms.layout.ColumnSpec; import com.jgoodies.forms.layout.FormLayout; import com.jgoodies.forms.layout.RowSpec; public class UpdateCheckerDialogPanel extends AWizardPage { class Option { public String key; public String text; public Option(String key, String text) { this.key = key; this.text = text; } public String toString() { return text; } public String getKey() { return key; } } /** * */ private static final long serialVersionUID = 1L; private TreeMap<String, Option> optionsMap = new TreeMap<String, Option>(); /** * Create the dialog. */ public UpdateCheckerDialogPanel(String selectedOption, String runningVersionString, String latestVersionString, String status) { setBackground(Color.WHITE); setBounds(100, 100, 620, 266); setLayout(new FormLayout(new ColumnSpec[] { FormFactory.DEFAULT_COLSPEC, FormFactory.RELATED_GAP_COLSPEC, ColumnSpec.decode("150dlu:grow"),}, new RowSpec[] { FormFactory.DEFAULT_ROWSPEC, FormFactory.RELATED_GAP_ROWSPEC, FormFactory.DEFAULT_ROWSPEC, FormFactory.RELATED_GAP_ROWSPEC, FormFactory.DEFAULT_ROWSPEC, RowSpec.decode("1dlu"), FormFactory.DEFAULT_ROWSPEC, FormFactory.RELATED_GAP_ROWSPEC, FormFactory.DEFAULT_ROWSPEC, FormFactory.RELATED_GAP_ROWSPEC, FormFactory.DEFAULT_ROWSPEC,})); JLabel lblMessage = new JLabel(TextUtils.getText("docear.update_checker.message")); add(lblMessage, "1, 1, 3, 1, fill, top"); lblMessage.setVerticalAlignment(SwingConstants.TOP); JLabel lblYourVersion = new JLabel(TextUtils.getText("docear.update_checker.active_version")); add(lblYourVersion, "1, 5"); JLabel lblLinkold = new JLabel(runningVersionString); add(lblLinkold, "3, 5"); JLabel lblNewAvailableVersion = new JLabel(TextUtils.getText("docear.update_checker.latest_version")); add(lblNewAvailableVersion, "1, 7"); JLabel lblLinkNew = new JLabel(latestVersionString); add(lblLinkNew, "3, 7"); JLabel lblYouCanDownload = new JLabel(TextUtils.getText("docear.update_checker.you_can_download")); add(lblYouCanDownload, "1, 11"); try { String uri = null; if (status.equals(Version.StatusName.devel.name())) { uri = "http://www.docear.org/support/forums/docear-support-forums-group3/experimental-releases-forum8/"; } else { uri = "http://www.docear.org/software/download/"; } JHyperlink hyperlink = new JHyperlink(uri, new URI(uri)); hyperlink.setBackground(Color.WHITE); add(hyperlink, "3, 11"); } catch (URISyntaxException e) { LogUtils.warn(e); } optionsMap.put(UpdateCheck.DOCEAR_UPDATE_CHECKER_MAJOR, new Option(UpdateCheck.DOCEAR_UPDATE_CHECKER_MAJOR, TextUtils.getText("OptionPanel.docear.update_checker.major"))); optionsMap.put(UpdateCheck.DOCEAR_UPDATE_CHECKER_MIDDLE, new Option(UpdateCheck.DOCEAR_UPDATE_CHECKER_MIDDLE, TextUtils.getText("OptionPanel.docear.update_checker.middle"))); optionsMap.put(UpdateCheck.DOCEAR_UPDATE_CHECKER_MINOR, new Option(UpdateCheck.DOCEAR_UPDATE_CHECKER_MINOR, TextUtils.getText("OptionPanel.docear.update_checker.minor"))); optionsMap.put(UpdateCheck.DOCEAR_UPDATE_CHECKER_BETA, new Option(UpdateCheck.DOCEAR_UPDATE_CHECKER_BETA, TextUtils.getText("OptionPanel.docear.update_checker.beta"))); optionsMap.put(UpdateCheck.DOCEAR_UPDATE_CHECKER_ALL, new Option(UpdateCheck.DOCEAR_UPDATE_CHECKER_ALL, TextUtils.getText("OptionPanel.docear.update_checker.all"))); optionsMap.put(UpdateCheck.DOCEAR_UPDATE_CHECKER_DISABLE, new Option(UpdateCheck.DOCEAR_UPDATE_CHECKER_DISABLE, TextUtils.getText("OptionPanel.docear.update_checker.disable"))); } @Override public String getTitle() { return TextUtils.getText("docear.version.check.title"); } @Override public void preparePage(WizardSession context) { context.getNextButton().setText(TextUtils.getText("docear.version.check.download")); context.getNextButton().setEnabled(true); context.getNextButton().setVisible(true); getRootPane().setDefaultButton((JButton) context.getNextButton()); context.getBackButton().setText(TextUtils.getText("docear.update_checker.ignore")); context.getBackButton().setEnabled(true); context.getBackButton().setVisible(true); context.getSkipButton().setText(TextUtils.getText("docear.setup.wizard.controls.cancel")); context.getSkipButton().setEnabled(true); context.getSkipButton().setVisible(true); context.setWizardTitle(getTitle()); } }