Package com.aelitis.azureus.ui.swt.browser.listener

Source Code of com.aelitis.azureus.ui.swt.browser.listener.ConfigListener

/**
* Copyright (C) 2007 Aelitis, 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; 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, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* AELITIS, SAS au capital de 63.529,40 euros
* 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
*
*/

package com.aelitis.azureus.ui.swt.browser.listener;

import java.util.Map;

import org.eclipse.swt.browser.Browser;

import org.gudy.azureus2.core3.config.COConfigurationManager;
import org.gudy.azureus2.core3.util.AEDiagnostics;
import org.gudy.azureus2.core3.util.AEDiagnosticsLogger;
import org.gudy.azureus2.core3.util.Constants;
import org.gudy.azureus2.ui.swt.update.UpdateMonitor;

import com.aelitis.azureus.core.AzureusCore;
import com.aelitis.azureus.core.AzureusCoreRunningListener;
import com.aelitis.azureus.core.AzureusCoreFactory;
import com.aelitis.azureus.core.messenger.browser.BrowserMessage;
import com.aelitis.azureus.core.messenger.browser.listeners.AbstractBrowserMessageListener;
import com.aelitis.azureus.ui.swt.UIFunctionsManagerSWT;
import com.aelitis.azureus.ui.swt.UIFunctionsSWT;
import com.aelitis.azureus.util.ConstantsVuze;
import com.aelitis.azureus.util.MapUtils;
import com.aelitis.net.magneturi.MagnetURIHandler;

/**
* @author TuxPaper
* @created Mar 30, 2007
*
*/
public class ConfigListener
  extends AbstractBrowserMessageListener
{
  public static final String DEFAULT_LISTENER_ID = "config";

  public static final String OP_GET_VERSION = "get-version";

  public static final String OP_NEW_INSTALL = "is-new-install";

  public static final String OP_CHECK_FOR_UPDATES = "check-for-updates";
 
  public static final String OP_GET_MAGNET_PORT = "get-magnet-port";
 
  public static final String OP_LOG_DIAGS = "log-diags";

  public static final String OP_LOG = "log";

  public ConfigListener(String id, Browser browser) {
    super(id);
  }

  /**
   *
   */
  public ConfigListener(Browser browser) {
    this(DEFAULT_LISTENER_ID, browser);
  }

  // @see com.aelitis.azureus.ui.swt.browser.msg.AbstractMessageListener#handleMessage(com.aelitis.azureus.ui.swt.browser.msg.BrowserMessage)
  public void handleMessage(BrowserMessage message) {
    try {
      String opid = message.getOperationId();

      if (OP_GET_VERSION.equals(opid)) {
        Map decodedMap = message.getDecodedMap();
        String callback = MapUtils.getMapString(decodedMap, "callback", null);
        if (callback != null) {
          context.executeInBrowser(callback + "('" + Constants.AZUREUS_VERSION + "')");
        } else {
          message.debug("bad or no callback param");
        }
      } else if (OP_NEW_INSTALL.equals(opid)) {
        Map decodedMap = message.getDecodedMap();
        String callback = MapUtils.getMapString(decodedMap, "callback", null);
        if (callback != null) {
          context.executeInBrowser(callback + "(" + COConfigurationManager.isNewInstall() + ")");
        } else {
          message.debug("bad or no callback param");
        }
      } else if (OP_CHECK_FOR_UPDATES.equals(opid)) {
       
        checkForUpdates();
       
      } else if (OP_GET_MAGNET_PORT.equals(opid)) {
       
        Map decodedMap = message.getDecodedMap();

        String callback = MapUtils.getMapString(decodedMap, "callback", null);
       
        if (callback != null) {
         
          context.executeInBrowser(callback + "('" + MagnetURIHandler.getSingleton().getPort() + "')");
         
        } else {
         
          message.debug("bad or no callback param");
        }
      }else if ( OP_LOG_DIAGS.equals( opid )){
       
        logDiagnostics();
      } else if ( OP_LOG.equals(opid)) {
        Map decodedMap = message.getDecodedMap();
        String loggerName = MapUtils.getMapString(decodedMap, "log-name",
            "browser");
        String text = MapUtils.getMapString(decodedMap, "text", "");
       
        AEDiagnosticsLogger diag_logger = AEDiagnostics.getLogger(loggerName);
        diag_logger.log(text);
        if (ConstantsVuze.DIAG_TO_STDOUT) {
          System.out.println(Thread.currentThread().getName() + "|"
              + System.currentTimeMillis() + "] " + text);
        }
      }
    } catch (Throwable t) {
      message.debug("handle Config message", t);
    }
  }

  public static void
  logDiagnostics()
  {
    AEDiagnostics.dumpThreads();
  }
 
  /**
   *
   *
   * @since 3.0.5.3
   */
  public static void checkForUpdates() {
    UIFunctionsSWT uiFunctions = UIFunctionsManagerSWT.getUIFunctionsSWT();
    if (uiFunctions != null) {
      uiFunctions.bringToFront();
    }
    AzureusCoreFactory.addCoreRunningListener(new AzureusCoreRunningListener() {
      public void azureusCoreRunning(AzureusCore core) {
        UpdateMonitor.getSingleton(core).performCheck(true, false, false, null);
      }
    });
  }
}
TOP

Related Classes of com.aelitis.azureus.ui.swt.browser.listener.ConfigListener

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.