/* * #%L * Bio-Formats Plugins for ImageJ: a collection of ImageJ plugins including the * Bio-Formats Importer, Bio-Formats Exporter, Bio-Formats Macro Extensions, * Data Browser and Stack Slicer. * %% * Copyright (C) 2006 - 2015 Open Microscopy Environment: * - Board of Regents of the University of Wisconsin-Madison * - Glencoe Software, Inc. * - University of Dundee * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as * published by the Free Software Foundation, either version 2 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this program. If not, see * <http://www.gnu.org/licenses/gpl-2.0.html>. * #L% */ package loci.plugins.in; import ij.IJ; import ij.Prefs; import ij.gui.GenericDialog; import loci.formats.UpgradeChecker; import loci.plugins.BF; import loci.plugins.Updater; import loci.plugins.prefs.Option; /** * Bio-Formats Importer upgrade checker dialog box. */ public class UpgradeDialog extends ImporterDialog { // -- Static fields -- /** Whether an upgrade check has already been performed this session. */ private static boolean checkPerformed = false; // -- Constructor -- /** Creates an upgrade checker dialog for the Bio-Formats Importer. */ public UpgradeDialog(ImportProcess process) { super(process); } // -- ImporterDialog methods -- @Override protected boolean needPrompt() { return !options.isQuiet() && !process.isWindowless(); } @Override protected GenericDialog constructDialog() { return null; } /** * Asks user whether Bio-Formats should automatically check for upgrades, * and if so, checks for an upgrade and prompts user to install it. * * @return status of operation */ @Override protected boolean displayDialog(GenericDialog gd) { if (checkPerformed) return true; if (!options.isQuiet() && options.isFirstTime()) { // present user with one-time dialog box gd = new GenericDialog("Bio-Formats Upgrade Checker"); gd.addMessage("One-time notice: The Bio-Formats plugins for ImageJ can " + "automatically check for upgrades\neach time they are run. If you " + "wish to disable this feature, uncheck the box below.\nYou can " + "toggle this behavior later in the Bio-Formats Plugins Configuration's " + "\"Upgrade\" tab."); addCheckbox(gd, ImporterOptions.KEY_UPGRADE_CHECK); gd.showDialog(); if (gd.wasCanceled()) return false; // save choice final boolean checkForUpgrades = gd.getNextBoolean(); options.setUpgradeCheck(checkForUpgrades); if (!checkForUpgrades) return true; } if (options.doUpgradeCheck()) { UpgradeChecker checker = new UpgradeChecker(); checkPerformed = true; BF.status(false, "Checking for new stable version..."); // check for Fiji here instead of earlier in the method so that we // still have a chance of keeping OME.registry up to date if (checker.newVersionAvailable("ImageJ") && !Updater.isFiji()) { boolean doUpgrade = IJ.showMessageWithCancel("", "A new stable version of Bio-Formats is available.\n" + "Click 'OK' to upgrade now, or 'Cancel' to skip for now."); if (doUpgrade) { Updater.install(UpgradeChecker.STABLE_BUILD + UpgradeChecker.TOOLS); } } } return true; } @Override protected boolean harvestResults(GenericDialog gd) { return true; } }