package edu.colostate.vchill.gui;
import edu.colostate.vchill.ScaleManager;
import edu.colostate.vchill.ViewControl;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.util.Collection;
/**
* These Actions are used to create the toolbars and Menus that are used in the
* main window. None of the internal frame menus access these actions. This
* list may still need some serious work to ensure things remain modular.
*
* @author Justin Carlson
* @author Jochen Deyke
* @author Alexander Deyke
* @version 2007-08-15
* @created January 06, 2003
*/
public class ViewActions {
public static final WindowManager wm = WindowManager.getInstance();
public static final ViewControl vc = ViewControl.getInstance();
private final ViewFileBrowserActions vfba = ViewFileBrowser.getInstance().getActions();
//All of the following reference only the main model through singleton
//calls, these actions do nothing themselves, they only pass control to
//the correct areas in the ViewMain part of the view.
//Actions used by the Remote Panel. NOTE: Currently can't be
//changed into a Action[] due to layout issues. May not be needed.
public final Action doNextAction;
public final Action doPrevAction;
public final Action doLastAction;
public final Action doFirstAction;
public final Action doStopAction;
public final Action doFirstRayAction;
public final Action doPrevRayAction;
public final Action doNextRayAction;
public final Action doLastRayAction;
private final Collection<String> types = ScaleManager.getInstance().getTypes();
/**
* Constructor for the ViewActions object
*/
public ViewActions() {
doNextAction =
new AbstractAction("Next") {
/**
*
*/
private static final long serialVersionUID = 2532701619168902002L;
public void actionPerformed(ActionEvent ae) {
vfba.selectNext();
}
};
doPrevAction =
new AbstractAction("Prev") {
/**
*
*/
private static final long serialVersionUID = 7137140978150622160L;
public void actionPerformed(ActionEvent ae) {
vfba.selectPrev();
}
};
doLastAction =
new AbstractAction("Last") {
/**
*
*/
private static final long serialVersionUID = 6476880971754906454L;
public void actionPerformed(ActionEvent ae) {
vfba.selectLast();
}
};
doFirstAction =
new AbstractAction("First") {
/**
*
*/
private static final long serialVersionUID = 7783824171702505442L;
public void actionPerformed(ActionEvent ae) {
vfba.selectFirst();
}
};
doStopAction =
new AbstractAction("Stop") {
/**
*
*/
private static final long serialVersionUID = 3460939122739788620L;
public void actionPerformed(ActionEvent ae) {
vc.stopPlot();
}
};
doFirstRayAction =
new AbstractAction("|<") {
/**
*
*/
private static final long serialVersionUID = 3032844275929918298L;
public void actionPerformed(ActionEvent ae) {
vc.rayFirst();
}
};
doPrevRayAction =
new AbstractAction("<<") {
/**
*
*/
private static final long serialVersionUID = -4853391380146285808L;
public void actionPerformed(ActionEvent ae) {
vc.rayPrev();
}
};
doNextRayAction =
new AbstractAction(">>") {
/**
*
*/
private static final long serialVersionUID = -7261907786214603837L;
public void actionPerformed(ActionEvent ae) {
vc.rayNext();
}
};
doLastRayAction =
new AbstractAction(">|") {
/**
*
*/
private static final long serialVersionUID = 6813861441794895471L;
public void actionPerformed(ActionEvent ae) {
vc.rayLast();
}
};
}
public void connect(String connection) {
vc.connect(connection);
}
public Action[] makeWindowCreationActions() {
Action[] theWindowActions = new Action[this.types.size()];
{
int i = 0;
for (final String type : this.types) {
theWindowActions[i] =
new AbstractAction(type) {
/**
*
*/
private static final long serialVersionUID = 6821822947347147168L;
public void actionPerformed(ActionEvent ae) {
wm.createPlotWindow(type);
}
};
++i;
}
}
return theWindowActions;
}
public Action[] makeAScopeWindowCreationActions() {
Action[] theWindowActions = new Action[this.types.size()];
{
int i = 0;
for (final String type : this.types) {
theWindowActions[i] =
new AbstractAction(type) {
/**
*
*/
private static final long serialVersionUID = -5318191173271453764L;
public void actionPerformed(ActionEvent ae) {
wm.createAScopeWindow(type);
vc.rePlot();
}
};
++i;
}
}
return theWindowActions;
}
public Action[] makeDataManipulationActions() {
Action[] arr = new Action[1];
arr[0] =
new AbstractAction("Replot") {
/**
*
*/
private static final long serialVersionUID = -4278335215193660348L;
public void actionPerformed(ActionEvent ae) {
vc.rePlot();
}
};
arr[0].putValue("Type", "Replot");
arr[0].putValue("Hint", "Causes all of the windows to replot the last sweep.");
return arr;
}
}