Package org.gudy.azureus2.ui.swt.speedtest

Source Code of org.gudy.azureus2.ui.swt.speedtest.SpeedTestSelector

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



import java.util.HashMap;

import org.eclipse.swt.SWT;

import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;

import org.gudy.azureus2.core3.config.COConfigurationManager;
import org.gudy.azureus2.core3.internat.MessageText;
import org.gudy.azureus2.core3.util.Debug;
import org.gudy.azureus2.plugins.PluginInterface;
import org.gudy.azureus2.plugins.ipc.IPCException;
import org.gudy.azureus2.plugins.ipc.IPCInterface;
import org.gudy.azureus2.ui.swt.Messages;
import org.gudy.azureus2.ui.swt.config.wizard.ConfigureWizard;
import org.gudy.azureus2.ui.swt.shells.CoreWaiterSWT;
import org.gudy.azureus2.ui.swt.shells.MessageBoxShell;
import org.gudy.azureus2.ui.swt.wizard.AbstractWizardPanel;
import org.gudy.azureus2.ui.swt.wizard.IWizardPanel;

import com.aelitis.azureus.core.AzureusCore;
import com.aelitis.azureus.core.AzureusCoreFactory;
import com.aelitis.azureus.core.AzureusCoreRunningListener;
import com.aelitis.azureus.ui.UIFunctions;
import com.aelitis.azureus.ui.UIFunctionsManager;
import com.aelitis.azureus.ui.UserPrompterResultListener;

public class
SpeedTestSelector
  extends AbstractWizardPanel<SpeedTestWizard>
{
  private boolean  mlab_test = true;

  public SpeedTestSelector(SpeedTestWizard wizard, IWizardPanel previous) {
    super(wizard, previous);
  }

  public void show() {
    wizard.setTitle(MessageText.getString("speedtest.wizard.select.title"));
    wizard.setCurrentInfo( "" );
    final Composite rootPanel = wizard.getPanel();
    GridLayout layout = new GridLayout();
    layout.numColumns = 1;
    rootPanel.setLayout(layout);

    Composite panel = new Composite(rootPanel, SWT.NULL);
    GridData gridData = new GridData(GridData.FILL_BOTH);
    panel.setLayoutData(gridData);
    layout = new GridLayout();
    layout.numColumns = 1;
    panel.setLayout(layout);

    final Group gRadio = new Group(panel, SWT.NULL);
    Messages.setLanguageText(gRadio, "speedtest.wizard.select.group");
    gRadio.setLayoutData(gridData);
    layout = new GridLayout();
    layout.numColumns = 1;
    gRadio.setLayout( layout );
    gridData = new GridData(GridData.FILL_HORIZONTAL);
    gRadio.setLayoutData(gridData);


    // general test

    Button auto_button = new Button (gRadio, SWT.RADIO);
    Messages.setLanguageText(auto_button, "speedtest.wizard.select.general");
    auto_button.setSelection( true );

    // BT

    final Button manual_button = new Button( gRadio, SWT.RADIO );
    Messages.setLanguageText(manual_button, "speedtest.wizard.select.bt");  

    manual_button.addListener(
        SWT.Selection,
        new Listener()
        {
          public void
          handleEvent(
              Event arg0 )
          {
            mlab_test = !manual_button.getSelection();
          }
        });
  }



  public boolean
  isNextEnabled()
  {
    return( true );
  }

  public boolean
  isPreviousEnabled()
  {
    return( false );
  }

  public IWizardPanel
  getNextPanel()
  {
    if ( mlab_test ){

      wizard.close();

      runMLABTest(true, null);
     
      //new ConfigureWizard( false, ConfigureWizard.WIZARD_MODE_SPEED_TEST_AUTO );
     
      return( null );

    }else{

      return( new SpeedTestPanel( wizard, null ));
    }
  }

  public static void runMLABTest(final boolean allowShaperProbeLogic,
      final Runnable runWhenClosed) {
    CoreWaiterSWT.waitForCoreRunning(new AzureusCoreRunningListener() {
      public void azureusCoreRunning(AzureusCore core) {
        UIFunctionsManager.getUIFunctions().installPlugin("mlab",
            "dlg.install.mlab", new UIFunctions.actionListener() {
              public void actionComplete(Object result) {
                if (result instanceof Boolean) {
                  _runMLABTest(allowShaperProbeLogic, runWhenClosed);
                } else {

                  try {
                    Throwable error = (Throwable) result;

                    Debug.out(error);

                  } finally {
                    if (runWhenClosed != null) {
                      runWhenClosed.run();
                    }
                  }
                }
              }
            });
      }
    });
  }
 
  private static void _runMLABTest(final boolean allowShaperProbeLogic,
      final Runnable runWhenClosed) {
    PluginInterface pi = AzureusCoreFactory.getSingleton().getPluginManager().getPluginInterfaceByID(
        "mlab");
    try {
      HashMap<String, Object> map = new HashMap<String, Object>();
      map.put("allowShaperProbeLogic", Boolean.valueOf(allowShaperProbeLogic));
      pi.getIPC().invoke("runTest", new Object[] {
        map,
        new IPCInterface() {
          public Object invoke(String methodName, Object[] params)
              throws IPCException {
            // we could set SpeedTest Completed when methodName == "results"
            // or ask user if they want to be prompted again if it isn't
            // But, we'd have to pass a param into runMLABTest (so we don't
            // get prompt on menu invocation).

            // For now, show only once, with no reprompt (even if they cancel).
            // They can use the menu
            COConfigurationManager.setParameter("SpeedTest Completed", true);

            if (runWhenClosed != null) {
              runWhenClosed.run();
            }
            return null;
          }

          public boolean canInvoke(String methodName, Object[] params) {
            return true;
          }
        },
        true
      });

    } catch (Throwable e) {

      Debug.out(e);
      if (runWhenClosed != null) {
        runWhenClosed.run();
      }
    }
  }
}
TOP

Related Classes of org.gudy.azureus2.ui.swt.speedtest.SpeedTestSelector

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.