Package org.gudy.azureus2.ui.swt.config.wizard

Source Code of org.gudy.azureus2.ui.swt.config.wizard.ConfigureWizard

/*
* File    : ConfigureWizard.java
* Created : 12 oct. 2003 16:06:44
* By      : Olivier
*
* Azureus - a Java Bittorrent client
*
* 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.
*
* 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 ( see the LICENSE file ).
*
* 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.config.wizard;

import org.gudy.azureus2.core3.config.COConfigurationManager;
import org.gudy.azureus2.core3.internat.MessageText;
import org.gudy.azureus2.ui.swt.shells.MessageBoxShell;
import org.gudy.azureus2.ui.swt.wizard.IWizardPanel;
import org.gudy.azureus2.ui.swt.wizard.Wizard;

import com.aelitis.azureus.ui.UserPrompterResultListener;

/**
* @author Olivier
*
*/
public class ConfigureWizard extends Wizard {

    public static final int WIZARD_MODE_FULL        = 0;
    public static final int WIZARD_MODE_SPEED_TEST_AUTO  = 1;
    public static final int WIZARD_MODE_SPEED_TEST_MANUAL  = 2;
 
  private int wizard_mode;
 
  //Transfer settings

  private int connectionUploadLimit;
  private boolean uploadLimitManual;
  private int uploadLimit;
 
  int maxActiveTorrents;
  int maxDownloads;
 
  //Server / NAT Settings
  int serverTCPListenPort = COConfigurationManager.getIntParameter( "TCP.Listen.Port" );
  int serverUDPListenPort = COConfigurationManager.getIntParameter( "UDP.Listen.Port" );
  //Files / Torrents
  private String   _dataPath;
  private boolean   _dataPathChanged;
  String torrentPath;
 
  boolean completed = false;

  public
  ConfigureWizard(
    boolean   _modal,
    int    _wizard_mode )
  {
    super("configureWizard.title",_modal);
   
    wizard_mode = _wizard_mode;
   
    IWizardPanel panel = wizard_mode==WIZARD_MODE_FULL?new LanguagePanel(this,null):new TransferPanel2( this, null );
    try  {
      torrentPath = COConfigurationManager.getDirectoryParameter("General_sDefaultTorrent_Directory");
    } catch(Exception e) {
      torrentPath = "";
    }
   
    if ( COConfigurationManager.getBooleanParameter( "Use default data dir" )){
   
      _dataPath = COConfigurationManager.getStringParameter( "Default save path" );
     
    }else{
      _dataPath = "";
    }
   
    this.setFirstPanel(panel);
  }
 
  public void onClose() {
    try {
      if !completed &&
          wizard_mode != WIZARD_MODE_SPEED_TEST_AUTO &&
          !COConfigurationManager.getBooleanParameter("Wizard Completed")){
       
        MessageBoxShell mb = new MessageBoxShell(
            MessageText.getString("wizard.close.confirmation"),
            MessageText.getString("wizard.close.message"), new String[] {
              MessageText.getString("Button.yes"),
              MessageText.getString("Button.no")
            }, 0);

        mb.open(new UserPrompterResultListener() {
          public void prompterClosed(int result) {
            if (result == 1) {
              COConfigurationManager.setParameter("Wizard Completed", true);
              COConfigurationManager.save();
            }
          }
        });

      }
    } catch (Exception e) {
      e.printStackTrace();
    }

    super.onClose();
  }
 
  protected String
  getDataPath()
  {
    return( _dataPath );
  }
 
  protected void
  setDataPath(
  String  s )
  {
    _dataPath     = s;
    _dataPathChanged   = true;
  }
 
  protected boolean
  hasDataPathChanged()
  {
    return( _dataPathChanged );
  }
 
  protected void
  setConnectionUploadLimit(
  int    rate,
  boolean  is_manual )
  {
    connectionUploadLimit = rate;
   
    if ( connectionUploadLimit != 0 ){

      uploadLimitManual = is_manual;
     
      uploadLimit = (connectionUploadLimit/5)*4;
     
      uploadLimit = (uploadLimit/1024)*1024;
     
      if ( uploadLimit < 5*1024 ){
       
        uploadLimit = 5*1024;
      }
     
      int nbMaxActive = (int) (Math.pow(uploadLimit/1024,0.34) * 0.92);
      int nbMaxUploads = (int) (Math.pow(uploadLimit/1024,0.25) * 1.68);
      int nbMaxDownloads = (nbMaxActive * 4) / 5;

      if (nbMaxDownloads == 0){
        nbMaxDownloads = 1;
      }
     
      if (nbMaxUploads > 50){
        nbMaxUploads = 50;
      }

      maxActiveTorrents = nbMaxActive;
      maxDownloads = nbMaxDownloads;
     
    }else{   
     
        // reset to defaults
     
      uploadLimitManual  = false;
      uploadLimit     = 0;
      maxActiveTorrents  = 0;
      maxDownloads    = 0;
    }
  }
 
  protected int
  getConnectionUploadLimit()
  {
    return( connectionUploadLimit );
  }
 
  protected int
  getUploadLimit()
  {
    return( uploadLimit );
  }
 
  protected boolean
  isUploadLimitManual()
  {
    return( uploadLimitManual );
  }
 
  protected int
  getWizardMode()
  {
    return( wizard_mode );
  }
}
TOP

Related Classes of org.gudy.azureus2.ui.swt.config.wizard.ConfigureWizard

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.