/* * #%L * gitools-ui-app * %% * Copyright (C) 2013 Universitat Pompeu Fabra - Biomedical Genomics group * %% * 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 3 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, see * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ package org.gitools.ui.app.heatmap.popupmenus; import org.apache.commons.lang.StringUtils; import org.gitools.api.matrix.MatrixDimensionKey; import org.gitools.ui.app.actions.Actions; import org.gitools.ui.app.actions.data.FastSortValueAction; import org.gitools.ui.app.actions.data.GroupSelectionAction; import org.gitools.ui.app.actions.data.HideSelectionAction; import org.gitools.ui.app.actions.data.ShowAllAction; import org.gitools.ui.app.actions.data.analysis.SortByHierarchicalClusteringAction; import org.gitools.ui.app.actions.data.analysis.ViewDendrogramAction; import org.gitools.ui.app.actions.data.analysis.ViewGroupComparisonResultDataAction; import org.gitools.ui.app.actions.edit.*; import org.gitools.ui.core.actions.ActionSet; import org.gitools.ui.core.actions.BaseAction; import org.gitools.ui.core.actions.PopupSectionTitleAction; import org.gitools.ui.platform.icons.IconNames; public class PopupMenuActions { private static ActionSet getHeatmapMenu(MatrixDimensionKey dimensionKey) { String dimensionLabel = StringUtils.capitalize(dimensionKey.getLabel()); return new ActionSet(new BaseAction[]{ // Analysis specific Actions.viewEnrichmentModuleData, new ViewGroupComparisonResultDataAction(), new ViewDendrogramAction(), // Data selection new PopupSectionTitleAction("Selection"), BaseAction.separator, Actions.selectAllAction, Actions.selectLabelHeaderAction, Actions.unselectLabelHeaderAction, new GroupSelectionAction(dimensionKey), Actions.unselectAllAction, new InvertSelectionAction(dimensionKey), Actions.copyToClipboardSelectedLabelHeader, new PopupSectionTitleAction("Visibility"), BaseAction.separator, new ShowAllAction(dimensionKey), Actions.showOnlyHeaderAction, new HideSelectionAction(dimensionKey), Actions.hideThisLabelHeaderAction, Actions.hideGreaterThanHeaderAction, Actions.hideSmallerThanHeaderAction, //Sorting new PopupSectionTitleAction("Sorting"), BaseAction.separator, new SortByHierarchicalClusteringAction(), new FastSortValueAction(dimensionKey == MatrixDimensionKey.ROWS ? MatrixDimensionKey.ROWS : MatrixDimensionKey.COLUMNS), Actions.sortByHeader, Actions.invertOrder, //BaseAction.separator, //new HeatmapSearchAction(dimensionKey), BaseAction.separator, new PopupSectionTitleAction(dimensionLabel + " headers"), new AddHeaderAction(dimensionKey), new EditHeaderAction(dimensionKey, "<html><i>Edit</i> header</html>"), new EditAnnotationValueAction(dimensionKey), new RemoveHeaderAction(dimensionKey, "Remove " + dimensionLabel + " header") }); } public static final ActionSet ROWS = getHeatmapMenu(MatrixDimensionKey.ROWS); public static final ActionSet COLUMNS = getHeatmapMenu(MatrixDimensionKey.COLUMNS); // Details popup menus public static final ActionSet DETAILS_ROWS = new ActionSet(new BaseAction[]{ new EditHeaderAction(MatrixDimensionKey.ROWS, "Edit..."), new ShowHeaderAction(MatrixDimensionKey.ROWS, "Show header"), new HideHeaderAction(MatrixDimensionKey.ROWS, "Hide header"), BaseAction.separator, new MoveUpHeaderAction("Move up (left)", MatrixDimensionKey.ROWS, IconNames.moveUp16), new MoveDownHeaderAction("Move down (right)", MatrixDimensionKey.ROWS, IconNames.moveDown16), BaseAction.separator, new RemoveHeaderAction(MatrixDimensionKey.ROWS, "Remove from heatmap") }); public static final ActionSet DETAILS_COLUMNS = new ActionSet(new BaseAction[]{ new EditHeaderAction(MatrixDimensionKey.COLUMNS, "Edit..."), new ShowHeaderAction(MatrixDimensionKey.COLUMNS, "Show header"), new HideHeaderAction(MatrixDimensionKey.COLUMNS, "Hide header"), BaseAction.separator, new MoveDownHeaderAction("Move up", MatrixDimensionKey.COLUMNS, IconNames.moveUp16), new MoveUpHeaderAction("Move down", MatrixDimensionKey.COLUMNS, IconNames.moveDown16), BaseAction.separator, new RemoveHeaderAction(MatrixDimensionKey.COLUMNS, "Remove from heatmap") }); public static final ActionSet DETAILS_LAYERS = new ActionSet(new BaseAction[]{ new EditLayerAction("Edit..."), BaseAction.separator, new MoveUpLayerAction(), new MoveDownLayerAction(), BaseAction.separator, new RemoveLayerAction(), }); }