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", MessageText.getString("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 = MessageText.getString(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_DVD, MultipleDocumentInterface.SIDEBAR_HEADER_DEVICES, MultipleDocumentInterface.SIDEBAR_HEADER_SUBSCRIPTIONS, 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, MessageText.getString("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", MessageText.getString("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", MessageText.getString("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", MessageText.getString("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); } }