Package com.aelitis.azureus.ui.swt.shells.main

Source Code of com.aelitis.azureus.ui.swt.shells.main.MainMDISetup

package com.aelitis.azureus.ui.swt.shells.main;

import org.gudy.azureus2.core3.config.COConfigurationManager;
import org.gudy.azureus2.core3.config.ParameterListener;
import org.gudy.azureus2.core3.config.impl.ConfigurationChecker;
import org.gudy.azureus2.core3.internat.MessageText;
import org.gudy.azureus2.core3.util.AERunnable;
import org.gudy.azureus2.core3.util.Constants;
import org.gudy.azureus2.ui.swt.Utils;

import com.aelitis.azureus.core.AzureusCore;
import com.aelitis.azureus.core.AzureusCoreFactory;
import com.aelitis.azureus.core.AzureusCoreRunningListener;
import com.aelitis.azureus.core.cnetwork.ContentNetwork;
import com.aelitis.azureus.core.cnetwork.ContentNetworkManagerFactory;
import com.aelitis.azureus.core.util.FeatureAvailability;
import com.aelitis.azureus.ui.UIFunctionsManager;
import com.aelitis.azureus.ui.mdi.*;
import com.aelitis.azureus.ui.swt.feature.FeatureManagerUI;
import com.aelitis.azureus.ui.swt.mdi.BaseMdiEntry;
import com.aelitis.azureus.ui.swt.views.skin.SBC_ActivityTableView;
import com.aelitis.azureus.ui.swt.views.skin.SBC_PlusFTUX;
import com.aelitis.azureus.ui.swt.views.skin.SB_Transfers;
import com.aelitis.azureus.ui.swt.views.skin.sidebar.SideBar;
import com.aelitis.azureus.util.ConstantsVuze;
import com.aelitis.azureus.util.ContentNetworkUtils;

public class MainMDISetup
{
  public static void setupSideBar(final MultipleDocumentInterface mdi, final MdiListener l) {
    if (Utils.isAZ2UI()) {
      setupSidebarClassic(mdi);
    } else {
      setupSidebarVuze(mdi);
    }

    Utils.execSWTThreadLater(0, new AERunnable() {
      public void runSupport() {
        final String CFG_STARTTAB = "v3.StartTab";
        String startTab;
        boolean showWelcome = COConfigurationManager.getBooleanParameter("v3.Show Welcome");
        if (ConfigurationChecker.isNewVersion()) {
          showWelcome = true;
        }

        ContentNetwork startupCN = ContentNetworkManagerFactory.getSingleton().getStartupContentNetwork();
        if (!startupCN.isServiceSupported(ContentNetwork.SERVICE_WELCOME)) {
          showWelcome = false;
        }

        if (showWelcome) {
          startTab = SideBar.SIDEBAR_SECTION_WELCOME;
        } else {
          if (!COConfigurationManager.hasParameter(CFG_STARTTAB, true)) {
            COConfigurationManager.setParameter(CFG_STARTTAB,
                SideBar.SIDEBAR_SECTION_LIBRARY);
          }
          startTab = COConfigurationManager.getStringParameter(CFG_STARTTAB);
          MultipleDocumentInterface mdi = UIFunctionsManager.getUIFunctions().getMDI();

          if (mdi == null || mdi.getEntry(startTab) == null) {
            startTab = SideBar.SIDEBAR_SECTION_LIBRARY;
          }
        }
        if (startTab.equals(MultipleDocumentInterface.SIDEBAR_SECTION_PLUS)) {
          SBC_PlusFTUX.setSourceRef("lastview");
        }
        mdi.showEntryByID(startTab);
        if (l != null) {
          mdi.addListener(l);
        }
      }
    });
   
    COConfigurationManager.addAndFireParameterListener(
        "Beta Programme Enabled", new ParameterListener() {
          public void parameterChanged(String parameterName) {
            boolean enabled = COConfigurationManager.getBooleanParameter("Beta Programme Enabled");
            if (enabled) {
              mdi.showEntryByID(MultipleDocumentInterface.SIDEBAR_SECTION_BETAPROGRAM);
            }
          }
    });
   
    mdi.registerEntry(MultipleDocumentInterface.SIDEBAR_SECTION_BETAPROGRAM,
        new MdiEntryCreationListener() {
          public MdiEntry createMDiEntry(String id) {
            MdiEntry entry = mdi.createEntryFromSkinRef(
                MultipleDocumentInterface.SIDEBAR_HEADER_VUZE,
                MultipleDocumentInterface.SIDEBAR_SECTION_BETAPROGRAM,
                "main.area.beta", "{Sidebar.beta.title}",
                null, null, true, MultipleDocumentInterface.SIDEBAR_POS_FIRST);
            return entry;
          }
        });

    //    System.out.println("Activate sidebar " + startTab + " took "
    //        + (SystemTime.getCurrentTime() - startTime) + "ms");
    //    startTime = SystemTime.getCurrentTime();
  }
 
  private static void setupSidebarClassic(final MultipleDocumentInterface mdi) {
    mdi.registerEntry(MultipleDocumentInterface.SIDEBAR_SECTION_LIBRARY,
        new MdiEntryCreationListener() {

          public MdiEntry createMDiEntry(String id) {
            boolean uiClassic = COConfigurationManager.getStringParameter("ui").equals(
                "az2");
            String title = uiClassic ? "{MyTorrentsView.mytorrents}"
                : ("{sidebar."
                    + MultipleDocumentInterface.SIDEBAR_SECTION_LIBRARY + "}");
            MdiEntry entry = mdi.createEntryFromSkinRef(null,
                MultipleDocumentInterface.SIDEBAR_SECTION_LIBRARY, "library",
                title, null, null, false,
                MultipleDocumentInterface.SIDEBAR_POS_FIRST);
            entry.setImageLeftID("image.sidebar.library");
            return entry;
          }
        });

    mdi.showEntryByID(MultipleDocumentInterface.SIDEBAR_SECTION_LIBRARY);
  }

 
  private static void setupSidebarVuze(final MultipleDocumentInterface mdi) {
    MdiEntry entry;

    String[] preferredOrder = new String[] {
      MultipleDocumentInterface.SIDEBAR_HEADER_VUZE,
      MultipleDocumentInterface.SIDEBAR_HEADER_TRANSFERS,
      MultipleDocumentInterface.SIDEBAR_HEADER_DEVICES,
      MultipleDocumentInterface.SIDEBAR_HEADER_SUBSCRIPTIONS,
      MultipleDocumentInterface.SIDEBAR_HEADER_DVD,
      MultipleDocumentInterface.SIDEBAR_HEADER_PLUGINS,
    };
    mdi.setPreferredOrder(preferredOrder);

    boolean[] disableCollapses = {
      true,
      true,
      false,
      false,
      false,
      false
    };
    for (int i = 0; i < preferredOrder.length; i++) {
      String id = preferredOrder[i];
      final boolean disableCollapse = disableCollapses[i];
      mdi.registerEntry(id, new MdiEntryCreationListener() {
        public MdiEntry createMDiEntry(String id) {
          MdiEntry entry = mdi.createHeader(id, "sidebar." + id, null);
          if (disableCollapse) {
            entry.setCollapseDisabled(true);
          } else {
            entry.setDefaultExpanded(true);
          }

          if (id.equals(MultipleDocumentInterface.SIDEBAR_HEADER_PLUGINS)) {
            entry.addListener(new MdiChildCloseListener() {
              public void mdiChildEntryClosed(MdiEntry parent, MdiEntry child,
                  boolean user) {
                if (mdi.getChildrenOf(parent.getId()).size() == 0) {
                  parent.close(true);
                }
              }
            });
          }

          return entry;
        }
      });
    }

    mdi.loadEntryByID(MultipleDocumentInterface.SIDEBAR_SECTION_LIBRARY, false);
    mdi.loadEntryByID(
        MultipleDocumentInterface.SIDEBAR_SECTION_LIBRARY_UNOPENED, false);
    mdi.loadEntryByID(MultipleDocumentInterface.SIDEBAR_SECTION_SUBSCRIPTIONS,
        false);
    mdi.loadEntryByID(MultipleDocumentInterface.SIDEBAR_SECTION_DEVICES, false);

    entry = mdi.createEntryFromSkinRef(
        MultipleDocumentInterface.SIDEBAR_HEADER_VUZE,
        ContentNetworkUtils.getTarget(ConstantsVuze.getDefaultContentNetwork()),
        "main.area.browsetab", "{sidebar.VuzeHDNetwork}",
        null, null, false, null);
    entry.setImageLeftID("image.sidebar.vuze");

    /*
    ContentNetworkManager cnm = ContentNetworkManagerFactory.getSingleton();
    if (cnm != null) {
      ContentNetwork[] contentNetworks = cnm.getContentNetworks();
      for (ContentNetwork cn : contentNetworks) {
        if (cn == null) {
          continue;
        }
        if (cn.getID() == ConstantsVuze.getDefaultContentNetwork().getID()) {
          cn.setPersistentProperty(ContentNetwork.PP_ACTIVE, Boolean.TRUE);
          continue;
        }

        Object oIsActive = cn.getPersistentProperty(ContentNetwork.PP_ACTIVE);
        boolean isActive = (oIsActive instanceof Boolean)
            ? ((Boolean) oIsActive).booleanValue() : false;
        if (isActive) {
          mdi.createContentNetworkSideBarEntry(cn);
        }
      }
    }
    */

    if (Constants.isWindows && FeatureAvailability.isGamesEnabled()) {
      mdi.registerEntry(MultipleDocumentInterface.SIDEBAR_SECTION_GAMES,
          new MdiEntryCreationListener() {
            public MdiEntry createMDiEntry(String id) {
              MdiEntry entry = mdi.createEntryFromSkinRef(
                  MultipleDocumentInterface.SIDEBAR_HEADER_VUZE,
                  MultipleDocumentInterface.SIDEBAR_SECTION_GAMES,
                  "main.generic.browse",
                  "{mdi.entry.games}", null, null, true,
                  null);
              ((BaseMdiEntry) entry).setPreferredAfterID(ContentNetworkUtils.getTarget(ConstantsVuze.getDefaultContentNetwork()));
              String url = ConstantsVuze.getDefaultContentNetwork().getSiteRelativeURL(
                  "starts/games.start", false);
              entry.setDatasource(url);
              entry.setImageLeftID("image.sidebar.games");
              return entry;
            }
          });
      mdi.loadEntryByID(MultipleDocumentInterface.SIDEBAR_SECTION_GAMES, false,
          true);
    }

    mdi.registerEntry(MultipleDocumentInterface.SIDEBAR_SECTION_ABOUTPLUGINS,
        new MdiEntryCreationListener() {
          public MdiEntry createMDiEntry(String id) {
            MdiEntry entry = mdi.createEntryFromSkinRef(
                MultipleDocumentInterface.SIDEBAR_HEADER_PLUGINS,
                MultipleDocumentInterface.SIDEBAR_SECTION_ABOUTPLUGINS,
                "main.generic.browse",
                "{mdi.entry.about.plugins}", null, null,
                true, MultipleDocumentInterface.SIDEBAR_POS_FIRST);
            String url = ConstantsVuze.getDefaultContentNetwork().getSiteRelativeURL(
                "plugins", true);
            entry.setDatasource(url);
            entry.setImageLeftID("image.sidebar.plugin");
            return entry;
          }
        });
    //loadEntryByID(MultipleDocumentInterface.SIDEBAR_SECTION_ABOUTPLUGINS, true, false);

    // building plugin views needs UISWTInstance, which needs core.
    final int burnInfoShown = COConfigurationManager.getIntParameter(
        "burninfo.shown", 0);
    if (burnInfoShown == 0) {
      AzureusCoreFactory.addCoreRunningListener(new AzureusCoreRunningListener() {
        public void azureusCoreRunning(AzureusCore core) {
          Utils.execSWTThread(new AERunnable() {
            public void runSupport() {
              if (FeatureManagerUI.enabled) {
                // blah, can't add until plugin initialization is done

                mdi.loadEntryByID(
                    MultipleDocumentInterface.SIDEBAR_SECTION_PLUS, false);

                if (!FeatureManagerUI.hasFullBurn()) {
                  mdi.loadEntryByID(
                      MultipleDocumentInterface.SIDEBAR_SECTION_BURN_INFO,
                      false);
                }

                COConfigurationManager.setParameter("burninfo.shown",
                    burnInfoShown + 1);
              }
            }
          });
        }
      });
    }

    SBC_ActivityTableView.setupSidebarEntry();

    SB_Transfers.setup(mdi);
  }
}
TOP

Related Classes of com.aelitis.azureus.ui.swt.shells.main.MainMDISetup

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.