/** * Created on Jul 2, 2008 * * Copyright 2008 Vuze, Inc. 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; version 2 of the License only. * * 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 */ package com.aelitis.azureus.ui.swt.views.skin; import org.gudy.azureus2.core3.config.COConfigurationManager; import org.gudy.azureus2.ui.swt.Utils; import com.aelitis.azureus.activities.VuzeActivitiesEntry; import com.aelitis.azureus.activities.VuzeActivitiesManager; import com.aelitis.azureus.core.messenger.config.PlatformVuzeActivitiesMessenger; import com.aelitis.azureus.ui.UIFunctionsManager; import com.aelitis.azureus.ui.mdi.MdiEntry; import com.aelitis.azureus.ui.mdi.MultipleDocumentInterface; import com.aelitis.azureus.ui.skin.SkinConstants; import com.aelitis.azureus.ui.swt.skin.SWTSkinButtonUtility; import com.aelitis.azureus.ui.swt.skin.SWTSkinObject; import com.aelitis.azureus.ui.swt.views.skin.sidebar.SideBar; /** * @author TuxPaper * @created Jul 2, 2008 * */ public class SBC_ActivityView extends SkinView { public final static String ID = "activity-list"; public final static int MODE_BIGTABLE = -1; public final static int MODE_SMALLTABLE = 0; public final static int MODE_DEFAULT = MODE_SMALLTABLE; private final static String[] modeViewIDs = { //SkinConstants.VIEWID_SIDEBAR_ACTIVITY_BIG, SkinConstants.VIEWID_SIDEBAR_ACTIVITY_SMALL, }; private final static String[] modeIDs = { //"activity.table.big", "activity.table.small", }; private int viewMode = -1; private SWTSkinButtonUtility btnSmallTable; private SWTSkinButtonUtility btnBigTable; private SWTSkinObject soListArea; // @see com.aelitis.azureus.ui.swt.views.skin.SkinView#showSupport(com.aelitis.azureus.ui.swt.skin.SWTSkinObject, java.lang.Object) public Object skinObjectInitialShow(SWTSkinObject skinObject, Object params) { soListArea = getSkinObject(ID + "-area"); SWTSkinObject so; so = getSkinObject(ID + "-button-smalltable"); if (so != null) { btnSmallTable = new SWTSkinButtonUtility(so); btnSmallTable.addSelectionListener(new SWTSkinButtonUtility.ButtonListenerAdapter() { public void pressed(SWTSkinButtonUtility buttonUtility, SWTSkinObject skinObject, int stateMask) { setViewMode(MODE_SMALLTABLE, true); } }); } so = getSkinObject(ID + "-button-bigtable"); if (so != null) { btnBigTable = new SWTSkinButtonUtility(so); btnBigTable.addSelectionListener(new SWTSkinButtonUtility.ButtonListenerAdapter() { public void pressed(SWTSkinButtonUtility buttonUtility, SWTSkinObject skinObject, int stateMask) { setViewMode(MODE_BIGTABLE, true); } }); } so = getSkinObject(ID + "-button-right"); if (so != null) { so.setVisible(true); SWTSkinButtonUtility btnReadAll = new SWTSkinButtonUtility(so); btnReadAll.setTextID("v3.activity.button.readall"); btnReadAll.addSelectionListener(new SWTSkinButtonUtility.ButtonListenerAdapter() { public void pressed(SWTSkinButtonUtility buttonUtility, SWTSkinObject skinObject, int stateMask) { VuzeActivitiesEntry[] allEntries = VuzeActivitiesManager.getAllEntries(); for (int i = 0; i < allEntries.length; i++) { VuzeActivitiesEntry entry = allEntries[i]; entry.setRead(true); } } }); } setViewMode(COConfigurationManager.getIntParameter(ID + ".viewmode", MODE_DEFAULT), false); return null; } public Object skinObjectShown(SWTSkinObject skinObject, Object params) { VuzeActivitiesManager.pullActivitiesNow(0, "shown", true); return super.skinObjectShown(skinObject, params); } public int getViewMode() { return viewMode; } public void setViewMode(int viewMode, boolean save) { if (viewMode >= modeViewIDs.length || viewMode < 0) { viewMode = MODE_DEFAULT; } if (viewMode == this.viewMode) { return; } int oldViewMode = this.viewMode; this.viewMode = viewMode; soListArea = getSkinObject(ID + "-area"); soListArea.getControl().setData("ViewMode", new Long(viewMode)); if (oldViewMode >= 0 && oldViewMode < modeViewIDs.length) { SWTSkinObject soOldViewArea = getSkinObject(modeViewIDs[oldViewMode]); if (soOldViewArea != null) { soOldViewArea.setVisible(false); } } SWTSkinObject soViewArea = getSkinObject(modeViewIDs[viewMode]); if (soViewArea == null) { soViewArea = skin.createSkinObject(modeIDs[viewMode], modeIDs[viewMode], soListArea); skin.layout(); soViewArea.setVisible(true); soViewArea.getControl().setLayoutData(Utils.getFilledFormData()); } else { soViewArea.setVisible(true); } if (btnSmallTable != null) { btnSmallTable.getSkinObject().switchSuffix( viewMode == MODE_SMALLTABLE ? "-selected" : ""); } if (btnBigTable != null) { btnBigTable.getSkinObject().switchSuffix( viewMode == MODE_BIGTABLE ? "-selected" : ""); } if (save) { COConfigurationManager.setParameter(ID + ".viewmode", viewMode); } MultipleDocumentInterface mdi = UIFunctionsManager.getUIFunctions().getMDI(); MdiEntry entry = mdi.getEntry(SideBar.SIDEBAR_SECTION_ACTIVITIES); if (entry != null) { entry.setLogID(SideBar.SIDEBAR_SECTION_ACTIVITIES + "-" + viewMode); } } protected void removeSelected() { SBC_ActivityTableView tv = (SBC_ActivityTableView) SkinViewManager.getBySkinObjectID(modeIDs[viewMode]); if (tv != null) { tv.removeSelected(); } } public int getNumSelected() { SBC_ActivityTableView tv = (SBC_ActivityTableView) SkinViewManager.getBySkinObjectID(modeIDs[viewMode]); if (tv != null) { return tv.getView().getSelectedRowsSize(); } return 0; } }