/* * This file is part of muCommander, http://www.mucommander.com * Copyright (C) 2002-2016 Maxence Bernard * * muCommander 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 3 of the License, or * (at your option) any later version. * * muCommander 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, see <http://www.gnu.org/licenses/>. */ package com.mucommander.ui.main.quicklist; import java.awt.Dimension; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import javax.swing.Icon; import com.mucommander.text.Translator; import com.mucommander.ui.action.ActionProperties; import com.mucommander.ui.action.impl.ShowTabsQLAction; import com.mucommander.ui.icon.EmptyIcon; import com.mucommander.ui.icon.IconManager; import com.mucommander.ui.main.FolderPanel; import com.mucommander.ui.main.tabs.FileTableTab; import com.mucommander.ui.main.tabs.FileTableTabHeader; import com.mucommander.ui.main.tabs.PrintableFileTableTabFactory; import com.mucommander.ui.quicklist.QuickListWithIcons; import com.mucommander.ui.tabs.TabFactory; /** * This quick list shows the tabs contained in the FolderPanel. * * @author Arik Hadas */ public class TabsQL extends QuickListWithIcons<FileTableTab> { /** The FolderPanel that contains the tabs */ private FolderPanel folderPanel; private TabFactory<FileTableTab, FileTableTab> tabsFactory = new PrintableFileTableTabFactory(); Icon lockedTabIcon = IconManager.getIcon(IconManager.COMMON_ICON_SET, FileTableTabHeader.LOCKED_ICON_NAME); Icon unlockedTabIcon = new EmptyIcon(8, 9); public TabsQL(FolderPanel folderPanel) { super(folderPanel, ActionProperties.getActionLabel(ShowTabsQLAction.Descriptor.ACTION_ID), Translator.get("tabs_quick_list.empty_message")); this.folderPanel = folderPanel; } @Override protected Icon getImageIconOfItemImp(final FileTableTab item, final Dimension preferredSize) { return itemToIcon(item); } @Override protected Icon itemToIcon(FileTableTab item) { return item.isLocked() ? lockedTabIcon : unlockedTabIcon; } @Override protected FileTableTab[] getData() { List<FileTableTab> tabsList = new ArrayList<FileTableTab>(); Iterator<FileTableTab> tabsIterator = folderPanel.getTabs().iterator(); while(tabsIterator.hasNext()) tabsList.add(tabsFactory.createTab(tabsIterator.next())); // Remove the selected tab from the list tabsList.remove(folderPanel.getTabs().getSelectedIndex()); return tabsList.toArray(new FileTableTab[0]); } @Override protected void acceptListItem(FileTableTab item) { folderPanel.getTabs().selectTab(item); } }