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    }