Package org.gudy.azureus2.ui.swt.update

Source Code of org.gudy.azureus2.ui.swt.update.SilentInstallUI

/*
* Created on Mar 6, 2009
* Created by Paul Gardner
*
* Copyright 2009 Vuze, Inc.  All rights reserved.
*
* 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; version 2 of the License only.
*
* 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, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*/


package org.gudy.azureus2.ui.swt.update;


import org.gudy.azureus2.core3.util.AEThread2;
import org.gudy.azureus2.core3.util.Debug;
import org.gudy.azureus2.plugins.update.Update;
import org.gudy.azureus2.plugins.update.UpdateCheckInstance;
import org.gudy.azureus2.plugins.utils.resourcedownloader.ResourceDownloader;


public class
SilentInstallUI
{
  private UpdateMonitor      monitor;
  private  UpdateCheckInstance    instance;
 
  private  boolean        cancelled;
 
  protected
  SilentInstallUI(
    UpdateMonitor      _monitor,
    UpdateCheckInstance    _instance )
  {
    monitor    = _monitor;
    instance  = _instance;
   
    try{
      monitor.addDecisionHandler(_instance );
         
      new AEThread2( "SilentInstallerUI", true )
      {
        public void
        run()
        {
          try{
            Update[] updates = instance.getUpdates();

            for ( Update update: updates ){
                           
              ResourceDownloader[] downloaders = update.getDownloaders();
             
              for ( ResourceDownloader downloader: downloaders ){
               
                synchronized( SilentInstallUI.this ){
                 
                  if ( cancelled ){
                   
                    return;
                  }                 
                }
               
                downloader.download();
              }
            }
           
            boolean  restart_required = false;
           
            for (int i=0;i<updates.length;i++){
     
              if ( updates[i].getRestartRequired() == Update.RESTART_REQUIRED_YES ){
               
                restart_required = true;
              }
            }
           
            if ( restart_required ){
             
              monitor.handleRestart();
            }
          }catch( Throwable e ){
           
            Debug.out( "Install failed", e );
           
            instance.cancel();
          }
        }
      }.start();
     
    }catch( Throwable e ){
     
      Debug.out( e );
     
      instance.cancel();
    }
  }
}
TOP

Related Classes of org.gudy.azureus2.ui.swt.update.SilentInstallUI

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.