Changeset 2924 in josm


Ignore:
Timestamp:
2010-02-02T18:54:51+01:00 (8 years ago)
Author:
Gubaer
Message:

Fixed automatic update policy for plugins.
new: policy for version and time based automatic update can be configured in the preferences, see help

Location:
trunk/src/org/openstreetmap/josm
Files:
1 added
2 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/preferences/PluginPreference.java

    r2864 r2924  
    4141import org.openstreetmap.josm.gui.HelpAwareOptionPane;
    4242import org.openstreetmap.josm.gui.help.HelpUtil;
     43import org.openstreetmap.josm.gui.preferences.plugin.PluginListPanel;
    4344import org.openstreetmap.josm.gui.preferences.plugin.PluginPreferencesModel;
    44 import org.openstreetmap.josm.gui.preferences.plugin.PluginPreferencesPanel;
     45import org.openstreetmap.josm.gui.preferences.plugin.PluginUpdatePolicyPanel;
    4546import org.openstreetmap.josm.gui.widgets.SelectAllOnFocusGainedDecorator;
    4647import org.openstreetmap.josm.plugins.PluginDownloadTask;
     
    9495
    9596    private JTextField tfFilter;
    96     private PluginPreferencesPanel pnlPluginPreferences;
     97    private PluginListPanel pnlPluginPreferences;
    9798    private PluginPreferencesModel model;
    9899    private JScrollPane spPluginPreferences;
     100    private PluginUpdatePolicyPanel pnlPluginUpdatePolicy;
     101
    99102    /**
    100103     * is set to true if this preference pane has been selected
     
    132135    }
    133136
    134     protected JPanel buildContentPane() {
     137    protected JPanel buildPluginListPanel() {
    135138        JPanel pnl = new JPanel(new BorderLayout());
    136139        pnl.add(buildSearchFieldPanel(), BorderLayout.NORTH);
    137140        model  = new PluginPreferencesModel();
    138         spPluginPreferences = new JScrollPane(pnlPluginPreferences = new PluginPreferencesPanel(model));
     141        spPluginPreferences = new JScrollPane(pnlPluginPreferences = new PluginListPanel(model));
    139142        spPluginPreferences.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
    140143        spPluginPreferences.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
     
    157160    }
    158161
     162    protected JPanel buildContentPanel() {
     163        JPanel pnl = new JPanel(new BorderLayout());
     164        JTabbedPane tpPluginPreferences = new JTabbedPane();
     165        tpPluginPreferences.add(buildPluginListPanel());
     166        tpPluginPreferences.add(pnlPluginUpdatePolicy  =new PluginUpdatePolicyPanel());
     167        tpPluginPreferences.setTitleAt(0, tr("Plugins"));
     168        tpPluginPreferences.setTitleAt(1, tr("Plugin update policy"));
     169
     170        pnl.add(tpPluginPreferences, BorderLayout.CENTER);
     171        return pnl;
     172    }
     173
    159174    public void addGui(final PreferenceTabbedPane gui) {
    160175        GridBagConstraints gc = new GridBagConstraints();
     
    163178        gc.anchor = GridBagConstraints.NORTHWEST;
    164179        gc.fill = GridBagConstraints.BOTH;
    165         gui.plugins.add(buildContentPane(), gc);
     180        gui.plugins.add(buildContentPanel(), gc);
    166181        pnlPluginPreferences.refreshView();
    167182        gui.addChangeListener(new PluginPreferenceActivationListener(gui.plugins));
     
    255270        if (! pluginPreferencesActivated)
    256271            return false;
     272        pnlPluginUpdatePolicy.rememberInPreferences();
    257273        if (model.isActivePluginsChanged()) {
    258274            LinkedList<String> l = new LinkedList<String>(model.getSelectedPluginNames());
  • trunk/src/org/openstreetmap/josm/gui/preferences/plugin/PluginListPanel.java

    r2921 r2924  
    2525import org.openstreetmap.josm.tools.OpenBrowser;
    2626
    27 public class PluginPreferencesPanel extends VerticallyScrollablePanel{
    28     private static final Logger logger = Logger.getLogger(PluginPreferencesPanel.class.getName());
     27public class PluginListPanel extends VerticallyScrollablePanel{
     28    private static final Logger logger = Logger.getLogger(PluginListPanel.class.getName());
    2929
    3030    private PluginPreferencesModel model;
    3131
    32     public PluginPreferencesPanel() {
     32    public PluginListPanel() {
    3333        model = new PluginPreferencesModel();
    3434        setLayout(new GridBagLayout());
    3535    }
    3636
    37     public PluginPreferencesPanel(PluginPreferencesModel model) {
     37    public PluginListPanel(PluginPreferencesModel model) {
    3838        this.model = model;
    3939        setLayout(new GridBagLayout());
  • trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java

    r2866 r2924  
    170170                )
    171171                + "</html>";
    172             togglePreferenceKey = "pluginmanager.dontshowagain.version";
     172            togglePreferenceKey = "pluginmanager.version-based-update.policy";
    173173        }  else {
    174174            long tim = System.currentTimeMillis();
    175175            long last = Main.pref.getLong("pluginmanager.lastupdate", 0);
    176             Integer maxTime = Main.pref.getInteger("pluginmanager.warntime", 60);
     176            Integer maxTime = Main.pref.getInteger("pluginmanager.time-based-update.interval", 60);
    177177            long d = (tim - last) / (24 * 60 * 60 * 1000l);
    178178            if ((last <= 0) || (maxTime <= 0)) {
     
    183183                    + tr("Last plugin update more than {0} days ago.", d)
    184184                    + "</html>";
    185                 togglePreferenceKey = "pluginmanager.dontshowagain.time";
     185                togglePreferenceKey = "pluginmanager.time-based-update.policy";
    186186            }
    187187        }
     
    209209        // check whether automatic update at startup was disabled
    210210        //
    211         boolean doAsk = !Main.pref.getBoolean(togglePreferenceKey, false);
    212         if (! doAsk) return false;
    213 
     211        String policy = Main.pref.get(togglePreferenceKey, "ask");
     212        policy = policy.trim().toLowerCase();
     213        if (policy.equals("never")) {
     214            if (togglePreferenceKey.equals("pluginmanager.version-based-update.policy")) {
     215                System.out.println(tr("Skipping plugin update after JOSM upgrade. Automatic update at startup is disabled."));
     216            } else if (togglePreferenceKey.equals("pluginmanager.time-based-update.policy")) {
     217                System.out.println(tr("Skipping plugin update after elapsed update interval. Automatic update at startup is disabled."));
     218            }
     219            return false;
     220        }
     221
     222        if (policy.equals("always")) {
     223            if (togglePreferenceKey.equals("pluginmanager.time-based-update.policy")) {
     224                System.out.println(tr("Running plugin update after JOSM upgrade. Automatic update at startup is enabled."));
     225            } else if (togglePreferenceKey.equals("pluginmanager.time-based-update.policy")) {
     226                System.out.println(tr("Running plugin update after elapsed update interval. Automatic update at startup is disabled."));
     227            }
     228            return true;
     229        }
     230
     231        if (!policy.equals("ask")) {
     232            System.err.println(tr("Unexpected value ''{0}'' for preference ''{1}''. Assuming value ''ask''.", policy, togglePreferenceKey));
     233        }
    214234        int ret = HelpAwareOptionPane.showOptionDialog(
    215235                parent,
     
    220240                options,
    221241                options[0],
    222                 ht("/Plugin/AutomaticUpdate")
    223         );
    224 
    225         pnlMessage.rememberDontShowAgain(togglePreferenceKey);
     242                ht("/Preferences/Plugins#AutomaticUpdate")
     243        );
     244
     245        if (pnlMessage.isRememberDecision()) {
     246            switch(ret) {
     247            case 0:
     248                Main.pref.put(togglePreferenceKey, "always");
     249                break;
     250            case JOptionPane.CLOSED_OPTION:
     251            case 1:
     252                Main.pref.put(togglePreferenceKey, "never");
     253                break;
     254            }
     255        } else {
     256            Main.pref.put(togglePreferenceKey, "ask");
     257        }
    226258        return ret == 0;
    227259    }
     
    888920            gc.fill = GridBagConstraints.HORIZONTAL;
    889921            gc.weighty = 0.0;
    890             add(cbDontShowAgain = new JCheckBox(tr("Do not check and ask again at startup (remembers choice)")), gc);
     922            add(cbDontShowAgain = new JCheckBox(tr("Do not ask again and remember my decision (go to Preferences->Plugins to change it later)")), gc);
    891923            cbDontShowAgain.setFont(cbDontShowAgain.getFont().deriveFont(Font.PLAIN));
    892924        }
     
    901933
    902934        public void initDontShowAgain(String preferencesKey) {
    903             cbDontShowAgain.setSelected(Main.pref.getBoolean(preferencesKey, false));
    904         }
    905 
    906         public void rememberDontShowAgain(String preferenceKey) {
    907             Main.pref.put(preferenceKey, cbDontShowAgain.isSelected());
     935            String policy = Main.pref.get(preferencesKey, "ask");
     936            policy = policy.trim().toLowerCase();
     937            cbDontShowAgain.setSelected(! policy.equals("ask"));
     938        }
     939
     940        public boolean isRememberDecision() {
     941            return cbDontShowAgain.isSelected();
    908942        }
    909943    }
Note: See TracChangeset for help on using the changeset viewer.