001 /* 002 * Copyright (C) 2008-2010 by Holger Arndt 003 * 004 * This file is part of the Universal Java Matrix Package (UJMP). 005 * See the NOTICE file distributed with this work for additional 006 * information regarding copyright ownership and licensing. 007 * 008 * UJMP is free software; you can redistribute it and/or modify 009 * it under the terms of the GNU Lesser General Public License as 010 * published by the Free Software Foundation; either version 2 011 * of the License, or (at your option) any later version. 012 * 013 * UJMP is distributed in the hope that it will be useful, 014 * but WITHOUT ANY WARRANTY; without even the implied warranty of 015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 016 * GNU Lesser General Public License for more details. 017 * 018 * You should have received a copy of the GNU Lesser General Public 019 * License along with UJMP; if not, write to the 020 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 021 * Boston, MA 02110-1301 USA 022 */ 023 024 package org.ujmp.gui.actions; 025 026 import java.util.ArrayList; 027 028 import javax.swing.JComponent; 029 import javax.swing.JMenu; 030 import javax.swing.JMenuItem; 031 import javax.swing.JSeparator; 032 033 import org.ujmp.core.interfaces.GUIObject; 034 import org.ujmp.gui.MatrixGUIObject; 035 036 public class MatrixActions extends ArrayList<JComponent> { 037 private static final long serialVersionUID = -8960033736161810590L; 038 039 public MatrixActions(JComponent c, MatrixGUIObject m, GUIObject v) { 040 add(new JMenuItem(new NewMatrixAction(c, m))); 041 add(new JMenuItem(new SaveMatrixAction(c, m))); 042 add(new JSeparator()); 043 add(new JMenuItem(new DuplicateAction(c, m, v))); 044 add(new JMenuItem(new ConvertAction(c, m, v))); 045 add(new JMenuItem(new SelectAction(c, m, v))); 046 add(new JMenuItem(new DeleteAction(c, m, v))); 047 add(new JSeparator()); 048 add(new AnnotationMenu(c, m, v)); 049 add(new JSeparator()); 050 add(new ContentMenu(c, m, v)); 051 add(new TransformMenu(c, m, v)); 052 add(new JSeparator()); 053 add(new TrigonometricMenu(c, m, v)); 054 add(new HyperbolicMenu(c, m, v)); 055 add(new JSeparator()); 056 add(new StatisticsMenu(c, m, v)); 057 add(new DecompositionMenu(c, m, v)); 058 add(new MissingValuesMenu(c, m, v)); 059 add(new JSeparator()); 060 add(new TextMenu(c, m, v)); 061 } 062 063 class ContentMenu extends JMenu { 064 private static final long serialVersionUID = 6816708899205796125L; 065 066 public ContentMenu(JComponent c, MatrixGUIObject m, GUIObject v) { 067 super("Set Content"); 068 add(new JMenuItem(new ClearMatrixAction(c, m, v))); 069 add(new JSeparator()); 070 add(new JMenuItem(new EyeAction(c, m, v))); 071 add(new JMenuItem(new OnesAction(c, m, v))); 072 add(new JMenuItem(new ZerosAction(c, m, v))); 073 add(new JMenuItem(new FillAction(c, m, v))); 074 add(new JMenuItem(new RandAction(c, m, v))); 075 add(new JMenuItem(new RandnAction(c, m, v))); 076 } 077 } 078 079 class StatisticsMenu extends JMenu { 080 private static final long serialVersionUID = 6246586375135512937L; 081 082 public StatisticsMenu(JComponent c, MatrixGUIObject m, GUIObject v) { 083 super("Statistics"); 084 add(new JMenuItem(new MinAction(c, m, v))); 085 add(new JMenuItem(new MaxAction(c, m, v))); 086 add(new JMenuItem(new SumAction(c, m, v))); 087 add(new JMenuItem(new MeanAction(c, m, v))); 088 add(new JMenuItem(new VarianceAction(c, m, v))); 089 add(new JMenuItem(new StandardDeviationAction(c, m, v))); 090 add(new JMenuItem(new UniqueValueCountAction(c, m, v))); 091 add(new JSeparator()); 092 add(new JMenuItem(new DiffAction(c, m, v))); 093 add(new JMenuItem(new ProdAction(c, m, v))); 094 add(new JMenuItem(new CumSumAction(c, m, v))); 095 add(new JMenuItem(new CumProdAction(c, m, v))); 096 add(new JSeparator()); 097 add(new JMenuItem(new CovarianceAction(c, m, v))); 098 add(new JMenuItem(new CorrcoefAction(c, m, v))); 099 add(new JMenuItem(new MutualinfAction(c, m, v))); 100 add(new JMenuItem(new PairedTTestAction(c, m, v))); 101 } 102 } 103 104 class TransformMenu extends JMenu { 105 private static final long serialVersionUID = 883946296012278076L; 106 107 public TransformMenu(JComponent c, MatrixGUIObject m, GUIObject v) { 108 super("Transform"); 109 add(new JMenuItem(new TransposeAction(c, m, v))); 110 add(new JMenuItem(new ReshapeAction(c, m, v))); 111 add(new JMenuItem(new SqueezeAction(c, m, v))); 112 add(new JMenuItem(new FlipdimAction(c, m, v))); 113 add(new JSeparator()); 114 add(new JMenuItem(new PlusAction(c, m, v))); 115 add(new JMenuItem(new MinusAction(c, m, v))); 116 add(new JMenuItem(new MultiplyAction(c, m, v))); 117 add(new JMenuItem(new DivideAction(c, m, v))); 118 add(new JSeparator()); 119 add(new JMenuItem(new PowerAction(c, m, v))); 120 add(new JMenuItem(new SqrtAction(c, m, v))); 121 add(new JMenuItem(new SignAction(c, m, v))); 122 add(new JMenuItem(new ExpAction(c, m, v))); 123 add(new JMenuItem(new LogAction(c, m, v))); 124 add(new JMenuItem(new Log10Action(c, m, v))); 125 add(new JMenuItem(new Log2Action(c, m, v))); 126 add(new JSeparator()); 127 add(new JMenuItem(new SortrowsAction(c, m, v))); 128 add(new JMenuItem(new ShuffleAction(c, m, v))); 129 add(new JMenuItem(new UniqueAction(c, m, v))); 130 add(new JMenuItem(new BootstrapAction(c, m, v))); 131 add(new JSeparator()); 132 add(new JMenuItem(new CenterAction(c, m, v))); 133 add(new JMenuItem(new StandardizeAction(c, m, v))); 134 add(new JMenuItem(new NormalizeAction(c, m, v))); 135 add(new JMenuItem(new FadeInAction(c, m, v))); 136 add(new JMenuItem(new FadeOutAction(c, m, v))); 137 add(new JSeparator()); 138 add(new JMenuItem(new AbsAction(c, m, v))); 139 add(new JMenuItem(new RoundAction(c, m, v))); 140 add(new JMenuItem(new CeilAction(c, m, v))); 141 add(new JMenuItem(new FloorAction(c, m, v))); 142 add(new JSeparator()); 143 add(new JMenuItem(new DiscretizeAction(c, m, v))); 144 } 145 } 146 147 class MissingValuesMenu extends JMenu { 148 private static final long serialVersionUID = 4966321671368633082L; 149 150 public MissingValuesMenu(JComponent c, MatrixGUIObject m, GUIObject v) { 151 super("Missing Values"); 152 add(new JMenuItem(new AddMissingValuesAction(c, m, v))); 153 add(new JSeparator()); 154 add(new JMenuItem(new ReplaceByMeanAction(c, m, v))); 155 add(new JMenuItem(new ReplaceByNearestNeighborAction(c, m, v))); 156 } 157 } 158 159 class DecompositionMenu extends JMenu { 160 private static final long serialVersionUID = 3877560425228015085L; 161 162 public DecompositionMenu(JComponent c, MatrixGUIObject m, GUIObject v) { 163 super("Decomposition"); 164 add(new JMenuItem(new InvAction(c, m, v))); 165 add(new JMenuItem(new PinvAction(c, m, v))); 166 add(new JMenuItem(new GinvAction(c, m, v))); 167 add(new JSeparator()); 168 add(new JMenuItem(new CholAction(c, m, v))); 169 add(new JMenuItem(new EigAction(c, m, v))); 170 add(new JMenuItem(new LUAction(c, m, v))); 171 add(new JMenuItem(new QRAction(c, m, v))); 172 add(new JMenuItem(new SVDAction(c, m, v))); 173 add(new JSeparator()); 174 add(new JMenuItem(new PrincompAction(c, m, v))); 175 } 176 } 177 178 class AnnotationMenu extends JMenu { 179 private static final long serialVersionUID = 7243016348847260111L; 180 181 public AnnotationMenu(JComponent c, MatrixGUIObject m, GUIObject v) { 182 super("Annotation"); 183 add(new JMenuItem(new SetLabelAction(c, m))); 184 } 185 } 186 187 class TrigonometricMenu extends JMenu { 188 private static final long serialVersionUID = 5800051912623058943L; 189 190 public TrigonometricMenu(JComponent c, MatrixGUIObject m, GUIObject v) { 191 super("Trigonometric"); 192 add(new JMenuItem(new SinAction(c, m, v))); 193 add(new JMenuItem(new CosAction(c, m, v))); 194 add(new JMenuItem(new TanAction(c, m, v))); 195 } 196 } 197 198 class HyperbolicMenu extends JMenu { 199 private static final long serialVersionUID = 4420801549072051385L; 200 201 public HyperbolicMenu(JComponent c, MatrixGUIObject m, GUIObject v) { 202 super("Hyperbolic"); 203 add(new JMenuItem(new SinhAction(c, m, v))); 204 add(new JMenuItem(new CoshAction(c, m, v))); 205 add(new JMenuItem(new TanhAction(c, m, v))); 206 } 207 } 208 209 class TextMenu extends JMenu { 210 private static final long serialVersionUID = 3061912494435216531L; 211 212 public TextMenu(JComponent c, MatrixGUIObject m, GUIObject v) { 213 super("Text"); 214 add(new JMenuItem(new LowerCaseAction(c, m, v))); 215 add(new JMenuItem(new UpperCaseAction(c, m, v))); 216 add(new JMenuItem(new ReplaceRegexAction(c, m, v))); 217 add(new JMenuItem(new RemovePunctuationAction(c, m, v))); 218 add(new JMenuItem(new RemoveStopWordsAction(c, m, v))); 219 add(new JMenuItem(new TfIdfAction(c, m, v))); 220 } 221 } 222 }