Changeset 2924 in josm


Ignore:
Timestamp:
Feb 2, 2010 6:54:51 PM (3 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.