package org.docear.plugin.services.components.dialog;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.TreeMap;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import org.docear.plugin.core.Version;
import org.docear.plugin.services.features.UpdateCheck;
import org.freeplane.core.resources.ResourceController;
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 JPanel {
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 JComboBox optionsComboBox;
private TreeMap<String, Option> optionsMap = new TreeMap<String, Option>();
/**
* Create the dialog.
*/
public UpdateCheckerDialogPanel(String selectedOption, String runningVersionString, String latestVersionString, String status) {
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,}));
JLabel lblMessage = new JLabel(TextUtils.getText("docear.update_checker.message"));
add(lblMessage, "1, 1, 3, 1, fill, top");
lblMessage.setVerticalAlignment(SwingConstants.TOP);
try {
JLabel lblYouCanDownload = new JLabel(TextUtils.getText("docear.update_checker.you_can_download"));
add(lblYouCanDownload, "1, 3");
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));
add(hyperlink, "3, 3");
} catch (URISyntaxException e) {
LogUtils.warn(e);
}
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 lblNotify = new JLabel(TextUtils.getText("docear.update_checker.notify"));
add(lblNotify, "1, 9");
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")));
optionsComboBox = new JComboBox(new Option[] {
optionsMap.get(UpdateCheck.DOCEAR_UPDATE_CHECKER_MAJOR),
optionsMap.get(UpdateCheck.DOCEAR_UPDATE_CHECKER_MIDDLE),
optionsMap.get(UpdateCheck.DOCEAR_UPDATE_CHECKER_MINOR),
optionsMap.get(UpdateCheck.DOCEAR_UPDATE_CHECKER_BETA),
optionsMap.get(UpdateCheck.DOCEAR_UPDATE_CHECKER_ALL),
optionsMap.get(UpdateCheck.DOCEAR_UPDATE_CHECKER_DISABLE)
});
optionsComboBox.setEditable(false);
String choice = ResourceController.getResourceController().getProperty("docear.update_checker.options");
try {
optionsComboBox.setSelectedItem(optionsMap.get(choice));
}
catch (Exception e) {
LogUtils.warn(e);
}
add(optionsComboBox, "3, 9, fill, default");
}
public String getChoice() {
Option o = (Option) optionsComboBox.getSelectedItem();
return o.getKey();
}
}