/*
* MedusaSimplerFrame.java
*
* Created on November 13, 2008, 5:23 PM
*/
package medusa;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JOptionPane;
import javax.swing.ProgressMonitor;
import javax.swing.Timer;
import java.awt.Cursor;
import java.awt.FileDialog;
import java.awt.Frame;
import java.awt.event.KeyEvent;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JColorChooser;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JSlider;
import javax.swing.KeyStroke;
import javax.swing.border.Border;
import medusa.dataio.DataLoader;
import medusa.display.EditableGraphPanel;
import medusa.georgios.Layouts.Layouts;
import medusa.graph.Graph;
import medusa.graph.Node;
import medusa.graphedit.EditGraphDialog;
import javax.swing.UIManager.*;
import javax.swing.UIManager;
/**
*
* @author Georgios
*/
public class MedusaSimplerFrame extends javax.swing.JFrame {
//---------------------------------------------------------------------------------------------------
MedusaSettings stringSettings;
public static EditableGraphPanel stringletPanel;
static final Color darkBackground = new Color(0.33f, 0.0f, 0.0f);
static final Color foreground = new Color(0.0f, 0.0f, 0.0f);
static double oldScale = 1.0;
static double scale = 1.0;
JLabel startinglabel;
public static final String version = "1.";
public static final Color STRINGCOLOR = new Color(161, 173, 236);
Color background = STRINGCOLOR;
String lastDir = null;
String lastFile = null;
String lastInter = null;
private boolean hideInteractions = false;
public static JScrollPane jScrollPane;
ProgressMonitor loader;
Timer timer;
DataLoader dl;
Frame f = new Frame();
EditGraphDialog egd;
ShowEdgeMultiPanel multiedgepanel = new ShowEdgeMultiPanel();
Border graphBorder = BorderFactory.createRaisedBevelBorder();
//---------------------------------------------------------------------------------------------------
public MedusaSimplerFrame() {
this.setPreferredSize(new java.awt.Dimension(700, 700));
setLnF();
stringSettings = new MedusaSettings();
stringletPanel = new EditableGraphPanel(stringSettings);
stringletPanel.setBasicEdgeColor(java.awt.Color.black);
stringletPanel.setTimeFrameXY(600, 600);
stringletPanel.setBorder(graphBorder);
stringletPanel.setShowBorder(false);
stringletPanel.setArrows(false);
stringletPanel.setCool(true);
jScrollPane = new JScrollPane(stringletPanel);
egd = new EditGraphDialog(this, true);
show_starting_background();
initComponents();
this.add(jScrollPane);
jMenuItem4.setPreferredSize(new java.awt.Dimension(200, 180));
jMenuItem4.add(multiedgepanel);
jMenuItem4.repaint();
SliderZooming slider = new SliderZooming();
jMenuItem1.setPreferredSize(new java.awt.Dimension(slider.getPreferredSize().width + 25, slider.getPreferredSize().height + 5));
jMenuItem1.setLayout(new BorderLayout());
jMenuItem1.add(slider);
jMenuItem1.repaint();
}
public EditableGraphPanel getPanel(){
return stringletPanel;
}
public MedusaSettings getSettings(){
return stringSettings;
}
//---------------------------------------------------------------------------------------------------
private void stringConnection() {
JOptionPane.showConfirmDialog(this, "STRING requires a license and is not\navailable to open source",
"Disabled", JOptionPane.PLAIN_MESSAGE, JOptionPane.INFORMATION_MESSAGE);
}
//---------------------------------------------------------------------------------------------------
private void show_starting_background() {
ImageIcon startingIcon = new ImageIcon(getClass().getResource("/medusa/images/welcome.jpg"));
startinglabel = new JLabel();
startinglabel.setIcon(startingIcon);
stringletPanel.add(startinglabel);
// stringletPanel.setBackgroundColor(new Color(161,173,236));
stringletPanel.repaint();
}
public void hide_starting_background() {
startinglabel.setVisible(false);
stringletPanel.repaint();
}
public static void setLnF() {
try {
for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (Exception e) {
// If Nimbus is not available, fall back to cross-platform
try {
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
} catch (Exception ex) {
// not worth my time
}
}
}
//---------------------------------------------------------------------------------------------------
private void setShapeEvent() {
Object[] shapes = {"circle", "rectangle", "triangle", "diamond"};
int s = JOptionPane.showOptionDialog(this,
"Choose a node shape",
"Shape",
JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
shapes,
"circle");
// If a string was returned, say so.
stringletPanel.setShape(s);
//System.out.println("Green eggs and... " + s + "!");
return;
}
//---------------------------------------------------------------------------------------------------
public void loadImageEvent() {
stringletPanel.stop();
FileDialog fdLoad = new FileDialog(this, "Load image", FileDialog.LOAD);
fdLoad.setVisible(true);
String loadFile = fdLoad.getFile();
String dir = fdLoad.getDirectory();
if (loadFile != null) {
try {
stringletPanel.setImage(dir + loadFile);
} catch (IOException ie) {
JOptionPane.showMessageDialog(this, "The image could not be found or opened",
"Load Error", JOptionPane.ERROR_MESSAGE);
}
}
stringletPanel.repaint();
}
//---------------------------------------------------------------------------------------------------
private void stopAllRelax() {
stringletPanel.stop();
}
//---------------------------------------------------------------------------------------------------
public void clearImageEvent() {
stopAllRelax();
stringletPanel.clearImage();
stringletPanel.repaint();
}
//---------------------------------------------------------------------------------------------------
public void quitApplication() {
stopAllRelax();
System.out.println("Closing application");
try {
saveSettings();
System.out.println("Current settings saved");
} catch (IOException ie) {
System.out.println("...settings not saved due to file problems");
}
remove(stringletPanel);
dispose();
}
//---------------------------------------------------------------------------------------------------
public void scaleOut() {
double scale = 1.0;
stringletPanel.setScale(scale / oldScale);
Dimension d = stringletPanel.getSize();
stringletPanel.setTimeFrameXY(d);
oldScale = scale;
stringletPanel.repaint();
stringletPanel.revalidate();
//jScrollPane.setPreferredSize(stringletPanel.getSize());
//System.out.println(stringletPanel.getSize());
jScrollPane.revalidate();
}
public static void setScale(JSlider src) {
Dimension d = stringletPanel.getSize();
//Dimension d = jScrollPane.getSize();
double scale = (double) src.getValue() / 100;
stringletPanel.setScale(scale / oldScale);
stringletPanel.setTimeFrameXY(d);
oldScale = scale;
stringletPanel.repaint();
stringletPanel.revalidate();
jScrollPane.revalidate();
}
public void setScale(int scaleValue) {
Dimension d = stringletPanel.getSize();
//Dimension d = jScrollPane.getSize();
double scale = (double) scaleValue / 100;
stringletPanel.setScale(scale / oldScale);
//stringletPanel.setScale(scale);
stringletPanel.setTimeFrameXY(d);
oldScale = scale;
stringletPanel.repaint();
stringletPanel.revalidate();
jScrollPane.revalidate();
}
//---------------------------------------------------------------------------------------------------
// this is for saving settings
public void saveSettings() throws IOException {
//System.out.println(lastDir);
if (lastDir != null) {
File saveFile = new File("NetViewSettings.ini");
FileWriter out = new FileWriter(saveFile);
out.write("LASTDIR=");
out.write(lastDir + "\n");
// write interaction file
if (lastInter != null) {
out.write("INTERACT=");
out.write(lastInter + "\n");
}
out.close();
}
}
//---------------------------------------------------------------------------------------------------
private boolean loadSettings() throws IOException {
File loadFile = new File("NetViewSettings.ini");
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(loadFile)));
String inLine = in.readLine();
if (inLine == null) {
System.out.println("Error in NetViewSettings.ini");
return false;
}
// get last dir
Pattern dirPattern = Pattern.compile("LASTDIR=(.+)");
Matcher matcher = dirPattern.matcher(inLine);
//System.out.println(inLine);
if (matcher.find()) {
lastDir = matcher.group(1);
//System.out.println("Reading line "+lastDir);
} else {
//System.out.println("returning false from loadsettings");
return false;
}
// get last interaction file
inLine = in.readLine();
if (inLine != null) {
Pattern interPattern = Pattern.compile("INTERACT=(\\w+)");
matcher = interPattern.matcher(inLine);
if (matcher.find()) {
lastInter = matcher.group(1);
}
}
in.close();
return true;
}
//---------------------------------------------------------------------------------------------------
private String getFixedNodesAsString() {
StringBuffer sb = new StringBuffer();
sb.append("");
java.util.ArrayList nodeArray = stringletPanel.getFixed();
for (java.util.Iterator i = nodeArray.iterator(); i.hasNext();) {
Node n = (Node) i.next();
sb.append(n.getLabel());
sb.append("\n");
}
return sb.toString();
}
//---------------------------------------------------------------------------------------------------
private void proteinInteractionEvent() {
stringSettings.clear();
stringSettings.init();
// updateLegend();
stringletPanel.updateStringSettings(stringSettings);
// legendPanel.repaint();
}
//---------------------------------------------------------------------------------------------------
private void cogInteractionEvent() {
stringSettings.clear();
stringSettings.initCOGS();
// updateLegend();
stringletPanel.updateStringSettings(stringSettings);
// legendPanel.repaint();
}
//---------------------------------------------------------------------------------------------------
private void setEdgeLenEvent() {
int len = (int) stringletPanel.getEdgeLen();
String s = (String) JOptionPane.showInputDialog("Enter desired edge length in pixels:\n" + "Set to 0 for default length",
String.valueOf(len));
if ((s != null) && (s.length() > 0)) {
try {
int newSize = Integer.parseInt(s);
stringletPanel.setEdgeLen(newSize);
} catch (NumberFormatException ne) {
JOptionPane.showMessageDialog(this, "Incorrect input",
"An integer is required for this action",
JOptionPane.ERROR_MESSAGE);
}
}
}
//---------------------------------------------------------------------------------------------------
public void updateInfo() {
String[] result = stringletPanel.getGraphData();
}
//---------------------------------------------------------------------------------------------------
public void waitForLoad(String fileName, int loadType)
throws IOException, DataFormatException {
dl = new DataLoader(600, 600, fileName);
dl.setLoadType(loadType);
timer = new javax.swing.Timer(500, runLoad);
dl.start();
timer.start();
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
}
//---------------------------------------------------------------------------------------------------
private ActionListener runLoad = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
// infoLabel.setText(dl.getStatus() + " " + dl.getProgress());
//loader.setProgress(0);
//System.out.println(dl.getProgress());
if (dl.isDone()) {
timer.stop();
dl.stop();
//loader.close();
//loader.setProgress(0);
// infoLabel.setText("Cleaning graph");
setCursor(null);
stringletPanel.setGraph(dl.getGraph());
updateInfo();
String[] result = stringletPanel.getGraphData();
String display = "nodes: " +
result[0] + "
edges: " + result[1] +
"
" + lastFile + "";
JOptionPane.showMessageDialog(MedusaSimplerFrame.stringletPanel, display);
stringletPanel.repaint();
}
}
};
//---------------------------------------------------------------------------------------------------
// private void hideShowInteractionsEvent() {
// Container content = getContentPane();
// if (!hideInteractions) {
// // content.remove(scalerPanel);
// hideInteractions = true;
// } else {
// // content.add("East", scalerPanel);
// hideInteractions = false;
// }
// validate();
//
// }
//---------------------------------------------------------------------------------------------------
public static void setNodeColorSet(int i) {
stringletPanel.setNodeColorSet(i);
stringletPanel.repaint();
}
//---------------------------------------------------------------------------------------------------
private void loadEvent(int loadType) {
stopAllRelax();
scaleOut();
FileDialog fdLoad = new FileDialog(this, "Load graph", FileDialog.LOAD);
if (lastDir != null) {
fdLoad.setDirectory(lastDir);
}
fdLoad.setFilenameFilter(new DataFileFilter());
fdLoad.setVisible(true);
String loadFile = fdLoad.getFile();
String dir = fdLoad.getDirectory();
if (loadFile != null) {
try {
//stringletPanel.loadGraph(dir+loadFile);
waitForLoad(dir + loadFile, loadType);
lastDir = dir;
lastFile = loadFile;
//System.out.println(lastFile);
} catch (IOException ie) {
ie.printStackTrace();
JOptionPane.showMessageDialog(this, "The file could not be found or opened",
"Load Error", JOptionPane.ERROR_MESSAGE);
} catch (DataFormatException dfe) {
JOptionPane.showMessageDialog(this, dfe.getMessage(),
"Data Error", JOptionPane.ERROR_MESSAGE);
//System.exit(0);
}
}
}
//---------------------------------------------------------------------------------------------------
private void addGraphEvent() {
stopAllRelax();
scaleOut();
FileDialog fdLoad = new FileDialog(this, "Add graph", FileDialog.LOAD);
if (lastDir != null) {
fdLoad.setFile(lastDir + lastFile);
}
fdLoad.setFilenameFilter(new DataFileFilter());
fdLoad.setVisible(true);
String loadFile = fdLoad.getFile();
String dir = fdLoad.getDirectory();
if (loadFile != null) {
try {
stringletPanel.appendGraph(dir + loadFile);
lastDir = dir + loadFile;
lastFile = loadFile;
updateInfo();
stringletPanel.repaint();
} catch (IOException ie) {
//ie.printStackTrace();
JOptionPane.showMessageDialog(this, "The file could not be found or opened",
"Load Error", JOptionPane.ERROR_MESSAGE);
} catch (DataFormatException dfe) {
JOptionPane.showMessageDialog(this, dfe.getMessage(),
"Data Error", JOptionPane.ERROR_MESSAGE);
//System.exit(0);
}
}
}
//---------------------------------------------------------------------------------------------------
private void subtractGraphEvent() {
stopAllRelax();
scaleOut();
FileDialog fdLoad = new FileDialog(this, "Add graph", FileDialog.LOAD);
if (lastDir != null) {
fdLoad.setFile(lastDir + lastFile);
}
fdLoad.setFilenameFilter(new DataFileFilter());
fdLoad.setVisible(true);
String loadFile = fdLoad.getFile();
String dir = fdLoad.getDirectory();
if (loadFile != null) {
try {
stringletPanel.subtractGraph(dir + loadFile);
lastDir = dir + loadFile;
lastFile = loadFile;
updateInfo();
stringletPanel.repaint();
} catch (IOException ie) {
//ie.printStackTrace();
JOptionPane.showMessageDialog(this, "The file could not be found or opened",
"Load Error", JOptionPane.ERROR_MESSAGE);
} catch (DataFormatException dfe) {
JOptionPane.showMessageDialog(this, dfe.getMessage(),
"Data Error", JOptionPane.ERROR_MESSAGE);
//System.exit(0);
}
}
}
//---------------------------------------------------------------------------------------------------
private void saveEvent() {
FileDialog fdSave = new FileDialog(this, "Save as", FileDialog.SAVE);
//fdSave.setDirectory(fdDirectory);
fdSave.setFilenameFilter(new DataFileFilter());
fdSave.setVisible(true);
String saveFile = fdSave.getFile();
String dir = fdSave.getDirectory();
if (saveFile != null) {
lastDir = dir;
lastFile = saveFile;
try {
stringletPanel.saveGraph(dir + saveFile);
} catch (IOException ie) {
JOptionPane.showMessageDialog(this, "Error saving file.",
"Save error", JOptionPane.ERROR_MESSAGE);
}
}
}
//---------------------------------------------------------------------------------------------------
private void copyGraphEvent() {
stopAllRelax();
scaleOut();
FileDialog fdLoad = new FileDialog(this, "Add graph", FileDialog.LOAD);
if (lastDir != null) {
fdLoad.setFile(lastDir + lastFile);
}
fdLoad.setFilenameFilter(new DataFileFilter());
fdLoad.setVisible(true);
String loadFile = fdLoad.getFile();
String dir = fdLoad.getDirectory();
if (loadFile != null) {
try {
stringletPanel.copyGraphSettings(dir + loadFile);
lastDir = dir + loadFile;
lastFile = loadFile;
updateInfo();
stringletPanel.repaint();
} catch (IOException ie) {
//ie.printStackTrace();
JOptionPane.showMessageDialog(this, "The file could not be found or opened",
"Load Error", JOptionPane.ERROR_MESSAGE);
} catch (DataFormatException dfe) {
JOptionPane.showMessageDialog(this, dfe.getMessage(),
"Data Error", JOptionPane.ERROR_MESSAGE);
//System.exit(0);
}
}
}
//---------------------------------------------------------------------------------------------------
private void exportImageEvent(boolean png) {
String name = "network." + ((png) ? "png" : "jpg");
FileDialog fdSave = new FileDialog(this, "Save as " + ((png) ? "png" : "jpg"), FileDialog.SAVE);
fdSave.setFile(name);
//fdSave.setFilenameFilter(new CustomFileFilter("\\.ps"));
fdSave.setVisible(true);
String saveFile = fdSave.getFile();
if (saveFile == null) {
return;
}
String dir = fdSave.getDirectory();
int type = (png) ? 1 : 0;
stringletPanel.saveImage(dir + saveFile, type);
JOptionPane.showMessageDialog(this, "Panel exported to " + saveFile,
"Image saved", JOptionPane.INFORMATION_MESSAGE);
}
//---------------------------------------------------------------------------------------------------
private void exportPajekEvent() {
FileDialog fdSave = new FileDialog(this, "Save as pajek", FileDialog.SAVE);
fdSave.setVisible(true);
String saveFile = fdSave.getFile();
String dir = fdSave.getDirectory();
if (saveFile != null) {
//lastDir=dir+saveFile;
try {
stringletPanel.writePajek(dir + saveFile + ".pajek");
JOptionPane.showMessageDialog(this, "Exported to pajek format " + saveFile + ".pajek",
"Pajek", JOptionPane.INFORMATION_MESSAGE);
//System.out.println("weng MedusaFrame exportPSEvent");
} catch (IOException ie) {
JOptionPane.showMessageDialog(this, "Error saving file.",
"Save error", JOptionPane.ERROR_MESSAGE);
}
}
}
//---------------------------------------------------------------------------------------------------
private void exportArena3DEvent() {
FileDialog fdSave = new FileDialog(this, "Save as Arena3d", FileDialog.SAVE);
fdSave.setVisible(true);
String saveFile = fdSave.getFile();
String dir = fdSave.getDirectory();
if (saveFile != null) {
//lastDir=dir+saveFile;
try {
stringletPanel.writeArena3D(dir + saveFile + ".a3d");
JOptionPane.showMessageDialog(this, "Exported to Arena3D format " + saveFile + ".a3d",
"Arena3D", JOptionPane.INFORMATION_MESSAGE);
//System.out.println("weng MedusaFrame exportPSEvent");
} catch (IOException ie) {
JOptionPane.showMessageDialog(this, "Error saving file.",
"Save error", JOptionPane.ERROR_MESSAGE);
}
}
}
//---------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------
private void exportCytoscapeEvent() {
FileDialog fdSave = new FileDialog(this, "Save as Cytoscape", FileDialog.SAVE);
fdSave.setVisible(true);
String saveFile = fdSave.getFile();
String dir = fdSave.getDirectory();
if (saveFile != null) {
//lastDir=dir+saveFile;
try {
stringletPanel.writeCytoscape(dir + saveFile + ".sif");
JOptionPane.showMessageDialog(this, "Exported to Cytoscape format " + saveFile + ".sif",
"Cytoscape", JOptionPane.INFORMATION_MESSAGE);
//System.out.println("weng MedusaFrame exportPSEvent");
} catch (IOException ie) {
JOptionPane.showMessageDialog(this, "Error saving file.",
"Save error", JOptionPane.ERROR_MESSAGE);
}
}
}
//---------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------
private void exportGraphVizEvent() {
FileDialog fdSave = new FileDialog(this, "Save as GraphViz", FileDialog.SAVE);
fdSave.setVisible(true);
String saveFile = fdSave.getFile();
String dir = fdSave.getDirectory();
if (saveFile != null) {
//lastDir=dir+saveFile;
try {
stringletPanel.writeGraphViz(dir + saveFile + ".dot");
JOptionPane.showMessageDialog(this, "Exported to GraphViz format " + saveFile + ".dot",
"GraphViz", JOptionPane.INFORMATION_MESSAGE);
//System.out.println("weng MedusaFrame exportPSEvent");
} catch (IOException ie) {
JOptionPane.showMessageDialog(this, "Error saving file.",
"Save error", JOptionPane.ERROR_MESSAGE);
}
}
}
//---------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------
private void exportBiolayoutEvent() {
FileDialog fdSave = new FileDialog(this, "Save as Biolayout Express 3D", FileDialog.SAVE);
fdSave.setVisible(true);
String saveFile = fdSave.getFile();
String dir = fdSave.getDirectory();
if (saveFile != null) {
//lastDir=dir+saveFile;
try {
stringletPanel.writeBiolayout(dir + saveFile + ".layout");
JOptionPane.showMessageDialog(this, "Exported to Biolayout Express 3D format " + saveFile + ".layout",
"Biolayout Express 3D", JOptionPane.INFORMATION_MESSAGE);
//System.out.println("weng MedusaFrame exportPSEvent");
} catch (IOException ie) {
JOptionPane.showMessageDialog(this, "Error saving file.",
"Save error", JOptionPane.ERROR_MESSAGE);
}
}
}
//---------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------
private void saveHTMLParametersEvent() {
FileDialog fdSave = new FileDialog(this, "Save applet parameters to", FileDialog.SAVE);
fdSave.setVisible(true);
String saveFile = fdSave.getFile();
dl = new DataLoader();
//System.out.println(stringletPanel.getGraph().report());
if (saveFile != null) {
try {
dl.saveHTMLParameters(stringletPanel.getGraph(), saveFile);
} catch (IOException ie) {
JOptionPane.showMessageDialog(this, "Error saving file.",
"Save error", JOptionPane.ERROR_MESSAGE);
}
}
}
//---------------------------------------------------------------------------------------------------
public void stopRelax() {
stringletPanel.stop();
}
//---------------------------------------------------------------------------------------------------
private void searchNodeEvent(boolean label) {
String s = (String) JOptionPane.showInputDialog("Mark node matching regular expression:\n" + "e.g. \"mito.*\"",
"");
//stringletPanel.findLabel
if (s != null) {
if (stringletPanel.selectNodeByRegExp(s, label) == 0) {
JOptionPane.showMessageDialog(this, "No match found",
"No nodes matching your pattern were found",
JOptionPane.ERROR_MESSAGE);
}
}
stringletPanel.repaint();
}
//---------------------------------------------------------------------------------------------------
private void selectNodeFromFileEvent() {
FileDialog fdSelect = new FileDialog(this, "Load node list", FileDialog.LOAD);
if (lastDir != null) {
fdSelect.setDirectory(lastDir);
}
fdSelect.setVisible(true);
String loadFile = fdSelect.getFile();
String dir = fdSelect.getDirectory();
//lastDir=dir;
try {
int c = stringletPanel.selectNodeFromFile(dir + loadFile);
stringletPanel.repaint();
} catch (IOException sNFFe) {
JOptionPane.showMessageDialog(this, sNFFe.getMessage(),
"Load Error", JOptionPane.ERROR_MESSAGE);
}
}
//---------------------------------------------------------------------------------------------------
private void changeNodeSizeEvent() {
String s = (String) JOptionPane.showInputDialog("Enter node size in pixels:\n" + "Default value is 10",
"");
int newSize = -1; // default if something goes wrong
if ((s != null) && (s.length() > 0)) {
try {
newSize = Integer.parseInt(s);
stringletPanel.setNodeSize(newSize);
} catch (NumberFormatException ne) {
JOptionPane.showMessageDialog(this, "Incorrect input",
"An integer is required for this action",
JOptionPane.ERROR_MESSAGE);
}
}
stringletPanel.repaint();
}
//---------------------------------------------------------------------------------------------------
private void changeColorEvent() {
Color newColor = JColorChooser.showDialog(getRootPane(),
"Choose node color",
Color.red);
if (newColor != null) {
stringletPanel.changeNodeColor(newColor);
stringletPanel.repaint();
}
}
//---------------------------------------------------------------------------------------------------
private void setLabelColorEvent() {
Color newColor = JColorChooser.showDialog(getRootPane(),
"Choose label color",
Color.black);
if (newColor != null) {
stringletPanel.setFontColor(newColor);
stringletPanel.repaint();
}
}
//---------------------------------------------------------------------------------------------------
private void setBackgroundColorEvent() {
Color newColor = JColorChooser.showDialog(getRootPane(),
"Choose label color",
Color.white);
if (newColor != null) {
stringletPanel.setBackgroundColor(newColor);
stringletPanel.repaint();
}
}
//---------------------------------------------------------------------------------------------------
private void setBasicEdgeColorEvent() {
Color newColor = JColorChooser.showDialog(getRootPane(),
"Choose label color",
Color.gray);
if (newColor != null) {
stringletPanel.setBasicEdgeColor(newColor);
stringletPanel.repaint();
}
}
//---------------------------------------------------------------------------------------------------
private void changeFontSizeEvent() {
String s = (String) JOptionPane.showInputDialog("Enter font size:\n" + "Default value is 10",
"");
if ((s != null) && (s.length() > 0)) {
try {
int newSize = Integer.parseInt(s);
stringletPanel.changeFont(newSize);
} catch (NumberFormatException ne) {
JOptionPane.showMessageDialog(this, "Incorrect input",
"An integer is required for this action",
JOptionPane.ERROR_MESSAGE);
}
}
stringletPanel.repaint();
}
//---------------------------------------------------------------------------------------------------
private void switchColorEvent() {
int[] colors = ColorJDialog.showDialog(f, null, "switch with");
stringletPanel.manipulateColor(colors[0], colors[1], true);
stringletPanel.repaint();
}
//---------------------------------------------------------------------------------------------------
private void copyColorEvent() {
int[] colors = ColorJDialog.showDialog(f, null, "copy to");
stringletPanel.manipulateColor(colors[0], colors[1], false);
stringletPanel.repaint();
}
//---------------------------------------------------------------------------------------------------
private void interactionEvent() {
FileDialog fdInter = new FileDialog(this, "Load interaction file", FileDialog.LOAD);
fdInter.setVisible(true);
String loadFile = fdInter.getFile();
String dir = fdInter.getDirectory();
if (loadFile != null) {
try {
lastInter = dir + loadFile;
stringSettings.load(dir + loadFile);
//updateLegend();
stringletPanel.updateStringSettings(stringSettings);
//legendPanel.repaint();
//stringSettings.report();
} catch (IOException ie) {
//ie.printStackTrace();
JOptionPane.showMessageDialog(this, "Interaction settings could not be loaded.\n" +
"Check if the file is valid.",
"Load error", JOptionPane.ERROR_MESSAGE);
}
}
}
//---------------------------------------------------------------------------------------------------
private void editGraph() {
stopAllRelax();
egd = new EditGraphDialog(this, true);
egd.setGraph(stringletPanel.getGraph());
egd.setVisible(true);
Graph g = egd.getGraph();
if (g != null) {
stringletPanel.setGraph(g);
stringletPanel.repaint();
}
}
//---------------------------------------------------------------------------------------------------
public void clearGraphEvent() {
stopAllRelax();
if (yes_no("Your data will be lost. Are you sure?") == 0) {
stringletPanel.clearGraph();
stringletPanel.repaint();
updateInfo();
}
}
//---------------------------------------------------------------------------------------------------
// a yes/no dialogue
private int yes_no(String message) {
int s = JOptionPane.showConfirmDialog(this,
message,
"Confirm",
JOptionPane.YES_NO_OPTION);
return s;
}
//---------------------------------------------------------------------------------------------------
private void rotateEvent(double degrees) {
stopAllRelax();
stringletPanel.rotate(degrees);
stringletPanel.repaint();
}
//---------------------------------------------------------------------------------------------------
private void getRandomGraphEvent() {
int s = yes_no("This will generate a random graph. Are you sure?");
//System.out.println(s);
if (s == 0) {
stopAllRelax();
stringletPanel.randomGraph(30, 60);
updateInfo();
stringletPanel.repaint();
}
}
//---------------------------------------------------------------------------------------------------
private void recalcEvent() {
stopAllRelax();
if (yes_no("This will return edge length \nand orientation to default values\n Are you sure you want to do this?") == 0) {
stringletPanel.autoFixOrientation();
stringletPanel.calculateEdgeLength();
stringletPanel.repaint();
}
}
//---------------------------------------------------------------------------------------------------
public static void handleEdgeEvent(int number, boolean selected) {
//System.out.println("set "+number+" to "+selected);
stringletPanel.setShowEdge(number - 1, selected);
stringletPanel.repaint();
}
//---------------------------------------------------------------------------------------------------
private void exportEPSEvent() {
FileDialog fdSave = new FileDialog(this, "Save as EPS", FileDialog.SAVE);
//fdSave.setDirectory(fdDirectory);
//fdSave.setFilenameFilter(new CustomFileFilter("\\.ps"));
fdSave.setVisible(true);
String saveFile = fdSave.getFile();
String dir = fdSave.getDirectory();
if (saveFile != null) {
//lastDir=dir+saveFile;
try {
stringletPanel.writeEPS(dir + saveFile);
//System.out.println("weng MedusaFrame exportPSEvent");
JOptionPane.showMessageDialog(this, "Panel exported to " + saveFile,
"EPS saved", JOptionPane.INFORMATION_MESSAGE);
} catch (IOException ie) {
JOptionPane.showMessageDialog(this, "Error saving file.",
"Save error", JOptionPane.ERROR_MESSAGE);
}
}
}
//---------------------------------------------------------------------------------------------------
private void exportPSEvent() {
FileDialog fdSave = new FileDialog(this, "Save as PS", FileDialog.SAVE);
//fdSave.setDirectory(fdDirectory);
//fdSave.setFilenameFilter(new CustomFileFilter("\\.ps"));
fdSave.setVisible(true);
String saveFile = fdSave.getFile();
String dir = fdSave.getDirectory();
if (saveFile != null) {
//lastDir=dir+saveFile;
try {
stringletPanel.writePS(dir + saveFile);
JOptionPane.showMessageDialog(this, "Panel exported to " + saveFile,
"PS saved", JOptionPane.INFORMATION_MESSAGE);
//System.out.println("weng MedusaFrame exportPSEvent");
} catch (IOException ie) {
JOptionPane.showMessageDialog(this, "Error saving file.",
"Save error", JOptionPane.ERROR_MESSAGE);
}
}
}
//---------------------------------------------------------------------------------------------------
public void alignNodes(int align) {
if (stringletPanel.getFixed().size() < 2) {
JOptionPane.showMessageDialog(this, "You must select at least two nodes",
"Error", JOptionPane.ERROR_MESSAGE);
return;
}
stringletPanel.alignNodes(align);
stringletPanel.repaint();
}
//---------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// //GEN-BEGIN:initComponents
private void initComponents() {
jMenuBar1 = new javax.swing.JMenuBar();
fileMenu = new javax.swing.JMenu();
openMenuItem = new javax.swing.JMenuItem();
addSubractMenu = new javax.swing.JMenu();
addMenuItem = new javax.swing.JMenuItem();
subtractMenuItem = new javax.swing.JMenuItem();
copyMenuItem = new javax.swing.JMenuItem();
importMenu = new javax.swing.JMenu();
importTabbedMenuItem = new javax.swing.JMenuItem();
saveMenuItem = new javax.swing.JMenuItem();
exportMenu = new javax.swing.JMenu();
exportImageMenu = new javax.swing.JMenu();
exportJPGMenuItem = new javax.swing.JMenuItem();
exportPNGMenuItem = new javax.swing.JMenuItem();
exportPostscriptMenu = new javax.swing.JMenu();
exportPSMenuItem = new javax.swing.JMenuItem();
exportEPSMenuItem = new javax.swing.JMenuItem();
saveHTMLParametersMenuItem = new javax.swing.JMenuItem();
exportPajekMenuItem = new javax.swing.JMenuItem();
jMenuItem5 = new javax.swing.JMenuItem();
jMenuItem6 = new javax.swing.JMenuItem();
jMenuItem7 = new javax.swing.JMenuItem();
jMenuItem8 = new javax.swing.JMenuItem();
stringButton = new javax.swing.JMenuItem();
jSeparator1 = new javax.swing.JSeparator();
quitMenuItem = new javax.swing.JMenuItem();
layoutMenu = new javax.swing.JMenu();
randomMenuItem = new javax.swing.JMenuItem();
circularMenuItem = new javax.swing.JMenuItem();
gridMenuItem = new javax.swing.JMenuItem();
jSeparator9 = new javax.swing.JSeparator();
relaxMenu = new javax.swing.JMenu();
startRelaxMenuItem = new javax.swing.JMenuItem();
stopRelaxMenuItem = new javax.swing.JMenuItem();
temperatureButton = new javax.swing.JCheckBoxMenuItem();
jSeparator10 = new javax.swing.JSeparator();
fruchtermanMenuItem = new javax.swing.JMenuItem();
hierarchicalMenuItem = new javax.swing.JMenuItem();
distanceGeometryMenuItem = new javax.swing.JMenuItem();
clusteringMenu = new javax.swing.JMenu();
kmeansMenuItem = new javax.swing.JMenuItem();
affinityMenuItem = new javax.swing.JMenuItem();
mclMenuItem = new javax.swing.JMenuItem();
jMenuItem2 = new javax.swing.JMenuItem();
zoomMenu = new javax.swing.JMenu();
jMenuItem1 = new javax.swing.JMenuItem();
selectMenu = new javax.swing.JMenu();
selectAllMenuItem = new javax.swing.JMenuItem();
selectNoneMenuItem = new javax.swing.JMenuItem();
selectNodeLabelByRegExpMenuItem = new javax.swing.JMenuItem();
selectNodeAnnotationByRegExpMenuItem = new javax.swing.JMenuItem();
selectNodeFromFileMenuItem = new javax.swing.JMenuItem();
invertFixMenuItem = new javax.swing.JMenuItem();
selectGrowMenuItem = new javax.swing.JMenuItem();
optionMenu = new javax.swing.JMenu();
jMenuItem3 = new javax.swing.JMenuItem();
changeNodeSizeMenuItem = new javax.swing.JMenuItem();
setEdgeLenMenuItem = new javax.swing.JMenuItem();
jSeparator2 = new javax.swing.JSeparator();
colorMenu = new javax.swing.JMenu();
changeColorMenuItem = new javax.swing.JMenuItem();
switchColorMenuItem = new javax.swing.JMenuItem();
copyColorMenuItem = new javax.swing.JMenuItem();
jSeparator4 = new javax.swing.JSeparator();
setBasicEdgeColorMenuItem = new javax.swing.JMenuItem();
setBackgroundColorMenuItem = new javax.swing.JMenuItem();
fontMenu = new javax.swing.JMenu();
setLabelColorMenuItem = new javax.swing.JMenuItem();
changeFontSizeMenuItem = new javax.swing.JMenuItem();
jSeparator3 = new javax.swing.JSeparator();
imageMenu = new javax.swing.JMenu();
loadImageMenuItem = new javax.swing.JMenuItem();
clearImageMenuItem = new javax.swing.JMenuItem();
manipulateMenu = new javax.swing.JMenu();
clearGraphMenuItem = new javax.swing.JMenuItem();
changeNodeShapeMenuItem = new javax.swing.JMenuItem();
deleteNodeMenuItem = new javax.swing.JMenuItem();
cropMenuItem = new javax.swing.JMenuItem();
randomGraphMenuItem = new javax.swing.JMenuItem();
rotateMenu = new javax.swing.JMenu();
rotateRightMenuItem = new javax.swing.JMenuItem();
rotateLeftMenuItem = new javax.swing.JMenuItem();
flipMenu = new javax.swing.JMenu();
flipXItem = new javax.swing.JMenuItem();
flipYItem = new javax.swing.JMenuItem();
alignNodesMenu = new javax.swing.JMenu();
alignTop = new javax.swing.JMenuItem();
alignBottom = new javax.swing.JMenuItem();
alignLeft = new javax.swing.JMenuItem();
alignRight = new javax.swing.JMenuItem();
jSeparator5 = new javax.swing.JSeparator();
editGraphMenuItem = new javax.swing.JMenuItem();
recalcButton = new javax.swing.JMenuItem();
interactionMenu = new javax.swing.JMenu();
loadInteractionMenuItem = new javax.swing.JMenuItem();
jSeparator6 = new javax.swing.JSeparator();
jMenuItem4 = new javax.swing.JMenuItem();
jSeparator11 = new javax.swing.JSeparator();
stringCOGInteractionMenuItem = new javax.swing.JMenu();
stringProteinInteractionMenuItem = new javax.swing.JMenuItem();
jMenuItem50 = new javax.swing.JMenuItem();
displayMenu = new javax.swing.JMenu();
prettyCBMItem = new javax.swing.JCheckBoxMenuItem();
namesCBMItem = new javax.swing.JCheckBoxMenuItem();
showNamesCBMItem = new javax.swing.JCheckBoxMenuItem();
directedCBMItem = new javax.swing.JCheckBoxMenuItem();
confidenceCBMItem = new javax.swing.JCheckBoxMenuItem();
alphaCBMItem = new javax.swing.JCheckBoxMenuItem();
jSeparator7 = new javax.swing.JSeparator();
hideWhenMoveCBMItem = new javax.swing.JCheckBoxMenuItem();
jSeparator8 = new javax.swing.JSeparator();
nodeColorDisplayMenu = new javax.swing.JMenu();
channel1MenuItem = new javax.swing.JRadioButtonMenuItem();
channel2MenuItem = new javax.swing.JRadioButtonMenuItem();
channel3MenuItem = new javax.swing.JRadioButtonMenuItem();
jRadioButtonMenuItem1 = new javax.swing.JRadioButtonMenuItem();
helpMenu = new javax.swing.JMenu();
aboutMenuItem = new javax.swing.JMenuItem();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Medusa 1.5");
setBackground(new java.awt.Color(255, 255, 255));
addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
formKeyTyped(evt);
}
});
//jMenuBar1.setBackground(new java.awt.Color(161, 173, 236));
//jMenuBar1.setForeground(new java.awt.Color(255, 255, 255));
//fileMenu.setForeground(new java.awt.Color(255, 255, 255));
fileMenu.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/medusa_logo_smaller.png"))); // NOI18N
fileMenu.setText("File");
openMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.CTRL_MASK));
openMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Folder-Open.gif"))); // NOI18N
openMenuItem.setText("Open");
openMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
openMenuItemActionPerformed(evt);
}
});
fileMenu.add(openMenuItem);
addSubractMenu.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Add.gif"))); // NOI18N
addSubractMenu.setText("Add/Subtract");
addSubractMenu.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
addSubractMenuActionPerformed(evt);
}
});
addMenuItem.setText("Add Graph");
addMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
addMenuItemActionPerformed(evt);
}
});
addSubractMenu.add(addMenuItem);
subtractMenuItem.setText("Subtract Graph");
subtractMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
subtractMenuItemActionPerformed(evt);
}
});
addSubractMenu.add(subtractMenuItem);
copyMenuItem.setText("Copy Settings");
copyMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
copyMenuItemActionPerformed(evt);
}
});
addSubractMenu.add(copyMenuItem);
fileMenu.add(addSubractMenu);
importMenu.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/import.gif"))); // NOI18N
importMenu.setText("Import");
importTabbedMenuItem.setText("Simple Tabbed");
importTabbedMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
importTabbedMenuItemActionPerformed(evt);
}
});
importMenu.add(importTabbedMenuItem);
fileMenu.add(importMenu);
saveMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.CTRL_MASK));
saveMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Save.gif"))); // NOI18N
saveMenuItem.setText("Save");
saveMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
saveMenuItemActionPerformed(evt);
}
});
fileMenu.add(saveMenuItem);
exportMenu.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/export.gif"))); // NOI18N
exportMenu.setText("Export");
exportImageMenu.setText("Image");
exportJPGMenuItem.setText("JPG");
exportJPGMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
exportJPGMenuItemActionPerformed(evt);
}
});
exportImageMenu.add(exportJPGMenuItem);
exportPNGMenuItem.setText("PNG");
exportPNGMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
exportPNGMenuItemActionPerformed(evt);
}
});
exportImageMenu.add(exportPNGMenuItem);
exportMenu.add(exportImageMenu);
exportPostscriptMenu.setText("PostScript");
exportPSMenuItem.setText("PS");
exportPSMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
exportPSMenuItemActionPerformed(evt);
}
});
exportPostscriptMenu.add(exportPSMenuItem);
exportEPSMenuItem.setText("EPS");
exportEPSMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
exportEPSMenuItemActionPerformed(evt);
}
});
exportPostscriptMenu.add(exportEPSMenuItem);
exportMenu.add(exportPostscriptMenu);
saveHTMLParametersMenuItem.setText("HTML Parameters");
saveHTMLParametersMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
saveHTMLParametersMenuItemActionPerformed(evt);
}
});
exportMenu.add(saveHTMLParametersMenuItem);
exportPajekMenuItem.setText("Pajek");
exportPajekMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
exportPajekMenuItemActionPerformed(evt);
}
});
exportMenu.add(exportPajekMenuItem);
jMenuItem5.setText("Arena3D");
jMenuItem5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem5ActionPerformed(evt);
}
});
exportMenu.add(jMenuItem5);
jMenuItem6.setText("BioLayout Express 3D");
jMenuItem6.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem6ActionPerformed(evt);
}
});
exportMenu.add(jMenuItem6);
jMenuItem7.setText("Cytoscape");
jMenuItem7.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem7ActionPerformed(evt);
}
});
exportMenu.add(jMenuItem7);
jMenuItem8.setText("GraphViz");
jMenuItem8.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem8ActionPerformed(evt);
}
});
exportMenu.add(jMenuItem8);
fileMenu.add(exportMenu);
stringButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Datbase.gif"))); // NOI18N
stringButton.setText("Database connection");
stringButton.setEnabled(false);
stringButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
stringButtonActionPerformed(evt);
}
});
fileMenu.add(stringButton);
fileMenu.add(jSeparator1);
quitMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.CTRL_MASK));
quitMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Application-cancel.gif"))); // NOI18N
quitMenuItem.setText("Quit");
quitMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
quitMenuItemActionPerformed(evt);
}
});
fileMenu.add(quitMenuItem);
jMenuBar1.add(fileMenu);
//layoutMenu.setForeground(new java.awt.Color(255, 255, 255));
layoutMenu.setText("Layout");
randomMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_R, java.awt.event.InputEvent.CTRL_MASK));
randomMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Tag-Blue.gif"))); // NOI18N
randomMenuItem.setText("Random");
randomMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
randomMenuItemActionPerformed(evt);
}
});
layoutMenu.add(randomMenuItem);
circularMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.CTRL_MASK));
circularMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Tag-Green.gif"))); // NOI18N
circularMenuItem.setText("Circular");
circularMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
circularMenuItemActionPerformed(evt);
}
});
layoutMenu.add(circularMenuItem);
gridMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_G, java.awt.event.InputEvent.CTRL_MASK));
gridMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Tag-Orange.gif"))); // NOI18N
gridMenuItem.setText("Grid");
gridMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
gridMenuItemActionPerformed(evt);
}
});
layoutMenu.add(gridMenuItem);
layoutMenu.add(jSeparator9);
relaxMenu.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Tag-Del.gif"))); // NOI18N
relaxMenu.setText("Relax");
startRelaxMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_SPACE, java.awt.event.InputEvent.CTRL_MASK));
startRelaxMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Compile-Run.gif"))); // NOI18N
startRelaxMenuItem.setText("Start relaxation");
startRelaxMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
startRelaxMenuItemActionPerformed(evt);
}
});
relaxMenu.add(startRelaxMenuItem);
stopRelaxMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_SPACE, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK));
stopRelaxMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Compile-Cancel.gif"))); // NOI18N
stopRelaxMenuItem.setText("Stop relaxation");
stopRelaxMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
stopRelaxMenuItemActionPerformed(evt);
}
});
relaxMenu.add(stopRelaxMenuItem);
temperatureButton.setSelected(true);
temperatureButton.setText("Cooling");
temperatureButton.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
temperatureButtonItemStateChanged(evt);
}
});
relaxMenu.add(temperatureButton);
layoutMenu.add(relaxMenu);
layoutMenu.add(jSeparator10);
fruchtermanMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F, java.awt.event.InputEvent.CTRL_MASK));
fruchtermanMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Tag-Purple.gif"))); // NOI18N
fruchtermanMenuItem.setText("Fruchterman");
fruchtermanMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
fruchtermanMenuItemActionPerformed(evt);
}
});
layoutMenu.add(fruchtermanMenuItem);
hierarchicalMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_H, java.awt.event.InputEvent.CTRL_MASK));
hierarchicalMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Tag-Red.gif"))); // NOI18N
hierarchicalMenuItem.setText("Hierarchical");
hierarchicalMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
hierarchicalMenuItemActionPerformed(evt);
}
});
layoutMenu.add(hierarchicalMenuItem);
distanceGeometryMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_D, java.awt.event.InputEvent.CTRL_MASK));
distanceGeometryMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Tag-Yellow.gif"))); // NOI18N
distanceGeometryMenuItem.setText("Distance Geometry");
distanceGeometryMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
distanceGeometryMenuItemActionPerformed(evt);
}
});
layoutMenu.add(distanceGeometryMenuItem);
jMenuBar1.add(layoutMenu);
//clusteringMenu.setForeground(new java.awt.Color(255, 255, 255));
clusteringMenu.setText("Clustering");
kmeansMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_K, java.awt.event.InputEvent.CTRL_MASK));
kmeansMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Flag-Cyan.gif"))); // NOI18N
kmeansMenuItem.setText("K-Means");
kmeansMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
kmeansMenuItemActionPerformed(evt);
}
});
clusteringMenu.add(kmeansMenuItem);
affinityMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_A, java.awt.event.InputEvent.CTRL_MASK));
affinityMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Flag-Red.gif"))); // NOI18N
affinityMenuItem.setText("Affinity Propagation");
affinityMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
affinityMenuItemActionPerformed(evt);
}
});
clusteringMenu.add(affinityMenuItem);
mclMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_M, java.awt.event.InputEvent.CTRL_MASK));
mclMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Flag-Yellow.gif"))); // NOI18N
mclMenuItem.setText("Markov Clustering");
mclMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
mclMenuItemActionPerformed(evt);
}
});
clusteringMenu.add(mclMenuItem);
jMenuItem2.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.CTRL_MASK));
jMenuItem2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Flag-Green.gif"))); // NOI18N
jMenuItem2.setText("Predefined Clustering");
jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem2ActionPerformed(evt);
}
});
clusteringMenu.add(jMenuItem2);
jMenuBar1.add(clusteringMenu);
//zoomMenu.setForeground(new java.awt.Color(255, 255, 255));
zoomMenu.setText("Zoom");
jMenuItem1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Blue/Zoom_In.gif"))); // NOI18N
zoomMenu.add(jMenuItem1);
jMenuBar1.add(zoomMenu);
//selectMenu.setForeground(new java.awt.Color(255, 255, 255));
selectMenu.setText("Select");
selectAllMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_A, java.awt.event.InputEvent.ALT_MASK));
selectAllMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Doc-Ok.gif"))); // NOI18N
selectAllMenuItem.setText("All");
selectAllMenuItem.setToolTipText("Select all nodes");
selectAllMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
selectAllMenuItemActionPerformed(evt);
}
});
selectMenu.add(selectAllMenuItem);
selectNoneMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Q, java.awt.event.InputEvent.ALT_MASK));
selectNoneMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Doc-Error.gif"))); // NOI18N
selectNoneMenuItem.setText("None");
selectNoneMenuItem.setToolTipText("Clear selection");
selectNoneMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
selectNoneMenuItemActionPerformed(evt);
}
});
selectMenu.add(selectNoneMenuItem);
selectNodeLabelByRegExpMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F, java.awt.event.InputEvent.ALT_MASK));
selectNodeLabelByRegExpMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Search.gif"))); // NOI18N
selectNodeLabelByRegExpMenuItem.setText("By label");
selectNodeLabelByRegExpMenuItem.setToolTipText("Select nodes by label using regular expressions.");
selectNodeLabelByRegExpMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
selectNodeLabelByRegExpMenuItemActionPerformed(evt);
}
});
selectMenu.add(selectNodeLabelByRegExpMenuItem);
selectNodeAnnotationByRegExpMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.ALT_MASK));
selectNodeAnnotationByRegExpMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Blue/Search.gif"))); // NOI18N
selectNodeAnnotationByRegExpMenuItem.setText("By annotation");
selectNodeAnnotationByRegExpMenuItem.setToolTipText("Select nodes by annotation using regular expressions.");
selectNodeAnnotationByRegExpMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
selectNodeAnnotationByRegExpMenuItemActionPerformed(evt);
}
});
selectMenu.add(selectNodeAnnotationByRegExpMenuItem);
selectNodeFromFileMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Green/Folder Open.gif"))); // NOI18N
selectNodeFromFileMenuItem.setText("From file");
selectNodeFromFileMenuItem.setToolTipText("Select nodes from a file of node labels.");
selectNodeFromFileMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
selectNodeFromFileMenuItemActionPerformed(evt);
}
});
selectMenu.add(selectNodeFromFileMenuItem);
invertFixMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Orange/Char - Tilde.gif"))); // NOI18N
invertFixMenuItem.setText("Invert");
invertFixMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
invertFixMenuItemActionPerformed(evt);
}
});
selectMenu.add(invertFixMenuItem);
selectGrowMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/16x16/Direction Diag1.gif"))); // NOI18N
selectGrowMenuItem.setText("Grow selection");
selectGrowMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
selectGrowMenuItemActionPerformed(evt);
}
});
selectMenu.add(selectGrowMenuItem);
jMenuBar1.add(selectMenu);
//optionMenu.setForeground(new java.awt.Color(255, 255, 255));
optionMenu.setText("Options");
jMenuItem3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Chart2.gif"))); // NOI18N
jMenuItem3.setText("Network characteristics");
jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem3ActionPerformed(evt);
}
});
optionMenu.add(jMenuItem3);
changeNodeSizeMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/16x16/Directions.gif"))); // NOI18N
changeNodeSizeMenuItem.setText("Change node size");
changeNodeSizeMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
changeNodeSizeMenuItemActionPerformed(evt);
}
});
optionMenu.add(changeNodeSizeMenuItem);
setEdgeLenMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/16x16/Size Horz.gif"))); // NOI18N
setEdgeLenMenuItem.setText("Edge length");
setEdgeLenMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
setEdgeLenMenuItemActionPerformed(evt);
}
});
optionMenu.add(setEdgeLenMenuItem);
optionMenu.add(jSeparator2);
colorMenu.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Chart1-Edit.gif"))); // NOI18N
colorMenu.setText("Color");
colorMenu.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
colorMenuActionPerformed(evt);
}
});
changeColorMenuItem.setText("Change node color");
changeColorMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
changeColorMenuItemActionPerformed(evt);
}
});
colorMenu.add(changeColorMenuItem);
switchColorMenuItem.setText("Switch channels");
switchColorMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
switchColorMenuItemActionPerformed(evt);
}
});
colorMenu.add(switchColorMenuItem);
copyColorMenuItem.setText("Copy channels");
copyColorMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
copyColorMenuItemActionPerformed(evt);
}
});
colorMenu.add(copyColorMenuItem);
colorMenu.add(jSeparator4);
setBasicEdgeColorMenuItem.setText("Base color");
setBasicEdgeColorMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
setBasicEdgeColorMenuItemActionPerformed(evt);
}
});
colorMenu.add(setBasicEdgeColorMenuItem);
setBackgroundColorMenuItem.setText("Background");
setBackgroundColorMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
setBackgroundColorMenuItemActionPerformed(evt);
}
});
colorMenu.add(setBackgroundColorMenuItem);
optionMenu.add(colorMenu);
fontMenu.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Orange/Text2.gif"))); // NOI18N
fontMenu.setText("Font");
setLabelColorMenuItem.setText("Label");
setLabelColorMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
setLabelColorMenuItemActionPerformed(evt);
}
});
fontMenu.add(setLabelColorMenuItem);
changeFontSizeMenuItem.setText("Font size");
changeFontSizeMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
changeFontSizeMenuItemActionPerformed(evt);
}
});
fontMenu.add(changeFontSizeMenuItem);
optionMenu.add(fontMenu);
optionMenu.add(jSeparator3);
imageMenu.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Image.gif"))); // NOI18N
imageMenu.setText("Image");
loadImageMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Image-Add.gif"))); // NOI18N
loadImageMenuItem.setText("Load");
loadImageMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
loadImageMenuItemActionPerformed(evt);
}
});
imageMenu.add(loadImageMenuItem);
clearImageMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Image-Del.gif"))); // NOI18N
clearImageMenuItem.setText("Clear");
clearImageMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
clearImageMenuItemActionPerformed(evt);
}
});
imageMenu.add(clearImageMenuItem);
optionMenu.add(imageMenu);
jMenuBar1.add(optionMenu);
//manipulateMenu.setForeground(new java.awt.Color(255, 255, 255));
manipulateMenu.setText("Manipulate");
clearGraphMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Green/Nuke.gif"))); // NOI18N
clearGraphMenuItem.setText("Clear graph");
clearGraphMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
clearGraphMenuItemActionPerformed(evt);
}
});
manipulateMenu.add(clearGraphMenuItem);
changeNodeShapeMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Blue/Player Play.gif"))); // NOI18N
changeNodeShapeMenuItem.setText("Change node shape");
changeNodeShapeMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
changeNodeShapeMenuItemActionPerformed(evt);
}
});
manipulateMenu.add(changeNodeShapeMenuItem);
deleteNodeMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Delete.gif"))); // NOI18N
deleteNodeMenuItem.setText("Delete Nodes");
deleteNodeMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
deleteNodeMenuItemActionPerformed(evt);
}
});
manipulateMenu.add(deleteNodeMenuItem);
cropMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Cut.gif"))); // NOI18N
cropMenuItem.setText("Crop graph");
cropMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cropMenuItemActionPerformed(evt);
}
});
manipulateMenu.add(cropMenuItem);
randomGraphMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Blue/Under Construction.gif"))); // NOI18N
randomGraphMenuItem.setText("Random graph");
randomGraphMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
randomGraphMenuItemActionPerformed(evt);
}
});
manipulateMenu.add(randomGraphMenuItem);
rotateMenu.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Orange/Rotate.gif"))); // NOI18N
rotateMenu.setText("Rotate");
rotateRightMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Green/Action Redo.gif"))); // NOI18N
rotateRightMenuItem.setText("90d clockwise");
rotateRightMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
rotateRightMenuItemActionPerformed(evt);
}
});
rotateMenu.add(rotateRightMenuItem);
rotateLeftMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Green/Action Undo.gif"))); // NOI18N
rotateLeftMenuItem.setText("90d anti-clockwise");
rotateLeftMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
rotateLeftMenuItemActionPerformed(evt);
}
});
rotateMenu.add(rotateLeftMenuItem);
manipulateMenu.add(rotateMenu);
flipMenu.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Orange/Refresh.gif"))); // NOI18N
flipMenu.setText("Flip");
flipXItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Blue/Back Top.gif"))); // NOI18N
flipXItem.setText("Vertical");
flipMenu.add(flipXItem);
flipYItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Blue/Back.gif"))); // NOI18N
flipYItem.setText("Horizontal");
flipMenu.add(flipYItem);
manipulateMenu.add(flipMenu);
alignNodesMenu.setText("Align nodes");
alignTop.setText("Horizontally based on top node");
alignTop.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
alignTopActionPerformed(evt);
}
});
alignNodesMenu.add(alignTop);
alignBottom.setText("Horizontally based on bottom node");
alignBottom.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
alignBottomActionPerformed(evt);
}
});
alignNodesMenu.add(alignBottom);
alignLeft.setText("Vertically based on left-most node");
alignLeft.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
alignLeftActionPerformed(evt);
}
});
alignNodesMenu.add(alignLeft);
alignRight.setText("Vertically based on right-most node");
alignRight.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
alignRightActionPerformed(evt);
}
});
alignNodesMenu.add(alignRight);
manipulateMenu.add(alignNodesMenu);
manipulateMenu.add(jSeparator5);
editGraphMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Doc-Edit.gif"))); // NOI18N
editGraphMenuItem.setText("Edit graph");
editGraphMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
editGraphMenuItemActionPerformed(evt);
}
});
manipulateMenu.add(editGraphMenuItem);
recalcButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Blue/Calc.gif"))); // NOI18N
recalcButton.setText("Recalculate");
recalcButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
recalcButtonActionPerformed(evt);
}
});
manipulateMenu.add(recalcButton);
jMenuBar1.add(manipulateMenu);
//interactionMenu.setForeground(new java.awt.Color(255, 255, 255));
interactionMenu.setText("Interaction");
loadInteractionMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/News-Add.gif"))); // NOI18N
loadInteractionMenuItem.setText("Load");
loadInteractionMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
loadInteractionMenuItemActionPerformed(evt);
}
});
interactionMenu.add(loadInteractionMenuItem);
interactionMenu.add(jSeparator6);
jMenuItem4.setText("Multi-edged connections");
jMenuItem4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem4ActionPerformed(evt);
}
});
interactionMenu.add(jMenuItem4);
interactionMenu.add(jSeparator11);
stringCOGInteractionMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Datbase-Lock.gif"))); // NOI18N
stringCOGInteractionMenuItem.setText("String default");
stringProteinInteractionMenuItem.setText("Protein");
stringProteinInteractionMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
stringProteinInteractionMenuItemActionPerformed(evt);
}
});
stringCOGInteractionMenuItem.add(stringProteinInteractionMenuItem);
jMenuItem50.setText("COGS");
jMenuItem50.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem50ActionPerformed(evt);
}
});
stringCOGInteractionMenuItem.add(jMenuItem50);
interactionMenu.add(stringCOGInteractionMenuItem);
jMenuBar1.add(interactionMenu);
//displayMenu.setForeground(new java.awt.Color(255, 255, 255));
displayMenu.setText("Display");
prettyCBMItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I, ActionEvent.ALT_MASK));
prettyCBMItem.setText("Interactions");
prettyCBMItem.setToolTipText("\nIf enabled, interactions will be presented as
\ncurves and colors. If disabled, simple straight
\nedges will be used.\n");
prettyCBMItem.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
prettyCBMItemItemStateChanged(evt);
}
});
prettyCBMItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
prettyCBMItemActionPerformed(evt);
}
});
displayMenu.add(prettyCBMItem);
namesCBMItem.setSelected(true);
namesCBMItem.setText("Labels");
namesCBMItem.setToolTipText("Check this to display node labels or annotations");
namesCBMItem.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
namesCBMItemItemStateChanged(evt);
}
});
displayMenu.add(namesCBMItem);
showNamesCBMItem.setSelected(true);
showNamesCBMItem.setText("Show names");
showNamesCBMItem.setToolTipText("If checked, the node label will be displayed. Otherwise, the node annotation will be shown.");
showNamesCBMItem.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
showNamesCBMItemItemStateChanged(evt);
}
});
displayMenu.add(showNamesCBMItem);
directedCBMItem.setText("Directed");
directedCBMItem.setToolTipText("Check this to diplay arrows, signifying a directionality of an edge.");
directedCBMItem.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
directedCBMItemItemStateChanged(evt);
}
});
displayMenu.add(directedCBMItem);
confidenceCBMItem.setSelected(true);
confidenceCBMItem.setText("Confidence");
confidenceCBMItem.setToolTipText("Display confidence or draw all edges as solid lines.");
confidenceCBMItem.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
confidenceCBMItemItemStateChanged(evt);
}
});
displayMenu.add(confidenceCBMItem);
alphaCBMItem.setSelected(true);
alphaCBMItem.setText("Show alpha");
alphaCBMItem.setToolTipText("Check this to show confidences as alpha opacity. Uncheck to display as dashed lines.");
alphaCBMItem.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
alphaCBMItemItemStateChanged(evt);
}
});
displayMenu.add(alphaCBMItem);
displayMenu.add(jSeparator7);
hideWhenMoveCBMItem.setSelected(true);
hideWhenMoveCBMItem.setText("Hide edges on move");
hideWhenMoveCBMItem.setToolTipText("Check to hide all other edges when moving a node. Very useful for large graphs.");
hideWhenMoveCBMItem.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
hideWhenMoveCBMItemItemStateChanged(evt);
}
});
displayMenu.add(hideWhenMoveCBMItem);
displayMenu.add(jSeparator8);
nodeColorDisplayMenu.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Chart1.gif"))); // NOI18N
nodeColorDisplayMenu.setText("Node color set");
ButtonGroup nodeColorSetGroup = new ButtonGroup();
nodeColorSetGroup.add(channel1MenuItem);
nodeColorSetGroup.add(channel2MenuItem);
nodeColorSetGroup.add(channel3MenuItem);
nodeColorSetGroup.add(jRadioButtonMenuItem1);
channel1MenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_1, java.awt.event.InputEvent.CTRL_MASK));
channel1MenuItem.setSelected(true);
channel1MenuItem.setText("1");
channel1MenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
channel1MenuItemActionPerformed(evt);
}
});
nodeColorDisplayMenu.add(channel1MenuItem);
channel2MenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_2, java.awt.event.InputEvent.CTRL_MASK));
channel2MenuItem.setText("2");
channel2MenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
channel2MenuItemActionPerformed(evt);
}
});
nodeColorDisplayMenu.add(channel2MenuItem);
channel3MenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_3, java.awt.event.InputEvent.CTRL_MASK));
channel3MenuItem.setText("3");
channel3MenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
channel3MenuItemActionPerformed(evt);
}
});
nodeColorDisplayMenu.add(channel3MenuItem);
jRadioButtonMenuItem1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_4, java.awt.event.InputEvent.CTRL_MASK));
jRadioButtonMenuItem1.setText("Clustering Color");
jRadioButtonMenuItem1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jRadioButtonMenuItem1ActionPerformed(evt);
}
});
nodeColorDisplayMenu.add(jRadioButtonMenuItem1);
displayMenu.add(nodeColorDisplayMenu);
jMenuBar1.add(displayMenu);
//helpMenu.setForeground(new java.awt.Color(255, 255, 255));
helpMenu.setText("Help");
aboutMenuItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/medusa/images/Info.gif"))); // NOI18N
aboutMenuItem.setText("About");
aboutMenuItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
aboutMenuItemActionPerformed(evt);
}
});
helpMenu.add(aboutMenuItem);
jMenuBar1.add(helpMenu);
setJMenuBar(jMenuBar1);
pack();
}// //GEN-END:initComponents
private void openMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_openMenuItemActionPerformed
loadEvent(DataLoader.LOAD_MEDUSA);
hide_starting_background();
}//GEN-LAST:event_openMenuItemActionPerformed
private void addMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addMenuItemActionPerformed
addGraphEvent();
hide_starting_background();
}//GEN-LAST:event_addMenuItemActionPerformed
private void subtractMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_subtractMenuItemActionPerformed
subtractGraphEvent();
}//GEN-LAST:event_subtractMenuItemActionPerformed
private void copyMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_copyMenuItemActionPerformed
copyGraphEvent();
}//GEN-LAST:event_copyMenuItemActionPerformed
private void importTabbedMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_importTabbedMenuItemActionPerformed
copyGraphEvent();
hide_starting_background();
}//GEN-LAST:event_importTabbedMenuItemActionPerformed
private void saveMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveMenuItemActionPerformed
saveEvent();
}//GEN-LAST:event_saveMenuItemActionPerformed
private void exportJPGMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exportJPGMenuItemActionPerformed
exportImageEvent(false);
}//GEN-LAST:event_exportJPGMenuItemActionPerformed
private void exportPNGMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exportPNGMenuItemActionPerformed
exportImageEvent(true);
}//GEN-LAST:event_exportPNGMenuItemActionPerformed
private void exportPajekMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exportPajekMenuItemActionPerformed
exportPajekEvent();
}//GEN-LAST:event_exportPajekMenuItemActionPerformed
private void saveHTMLParametersMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveHTMLParametersMenuItemActionPerformed
saveHTMLParametersEvent();
}//GEN-LAST:event_saveHTMLParametersMenuItemActionPerformed
private void quitMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_quitMenuItemActionPerformed
quitApplication();
}//GEN-LAST:event_quitMenuItemActionPerformed
private void randomMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_randomMenuItemActionPerformed
System.out.println("RANDOM");
stopRelax();
// Layouts layout = new Layouts();
Graph g = stringletPanel.getGraph();
Layouts.Apply_Random_Coordinates(g, stringletPanel);
updateInfo();
stringletPanel.repaint();
}//GEN-LAST:event_randomMenuItemActionPerformed
private void circularMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_circularMenuItemActionPerformed
System.out.println("CIRCULAR");
stopRelax();
Graph g = stringletPanel.getGraph();
Layouts.Apply_Circular_Coordinates(g, stringletPanel);
updateInfo();
stringletPanel.repaint();
}//GEN-LAST:event_circularMenuItemActionPerformed
private void gridMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_gridMenuItemActionPerformed
System.out.println("GRID");
stopRelax();
Graph g = stringletPanel.getGraph();
Layouts.Apply_Grid_Coordinates(g, stringletPanel);
updateInfo();
stringletPanel.repaint();
}//GEN-LAST:event_gridMenuItemActionPerformed
private void fruchtermanMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fruchtermanMenuItemActionPerformed
Graph g = stringletPanel.getGraph();
if (g.getNodeSize() > 1) {
System.out.println("FRUCHTERMAN");
stopRelax();
stringletPanel.energy();
updateInfo();
stringletPanel.repaint();
}
}//GEN-LAST:event_fruchtermanMenuItemActionPerformed
private void hierarchicalMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_hierarchicalMenuItemActionPerformed
System.out.println("HIERARCHICAL");
stopRelax();
Graph g = stringletPanel.getGraph();
Layouts.Apply_GO_like_Coordinates(g, stringletPanel);
updateInfo();
stringletPanel.repaint();
}//GEN-LAST:event_hierarchicalMenuItemActionPerformed
private void distanceGeometryMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_distanceGeometryMenuItemActionPerformed
System.out.println("DISTANCE GEOMETRY");
stopRelax();
Graph g = stringletPanel.getGraph();
Layouts.Apply_Distance_Geomretry_Coordinates(g, stringletPanel);
updateInfo();
stringletPanel.repaint();
}//GEN-LAST:event_distanceGeometryMenuItemActionPerformed
private void kmeansMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_kmeansMenuItemActionPerformed
stopRelax();
System.out.println("K-Means");
Graph g = stringletPanel.getGraph();
Layouts.Apply_Kmeans_Clustering(g, stringletPanel);
updateInfo();
stringletPanel.repaint();
}//GEN-LAST:event_kmeansMenuItemActionPerformed
private void affinityMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_affinityMenuItemActionPerformed
stopRelax();
System.out.println("AFFINITY");
Graph g = stringletPanel.getGraph();
Layouts.Apply_Affinity_Propagation_Clustering(g, stringletPanel);
updateInfo();
stringletPanel.repaint();
}//GEN-LAST:event_affinityMenuItemActionPerformed
private void mclMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mclMenuItemActionPerformed
stopRelax();
System.out.println("MCL");
Graph g = stringletPanel.getGraph();
Layouts.Apply_MCL_Propagation_Clustering(g, stringletPanel);
updateInfo();
stringletPanel.repaint();
}//GEN-LAST:event_mclMenuItemActionPerformed
private void selectAllMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_selectAllMenuItemActionPerformed
stringletPanel.setFix(true);
}//GEN-LAST:event_selectAllMenuItemActionPerformed
private void selectNoneMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_selectNoneMenuItemActionPerformed
stringletPanel.setFix(false);
}//GEN-LAST:event_selectNoneMenuItemActionPerformed
private void selectNodeLabelByRegExpMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_selectNodeLabelByRegExpMenuItemActionPerformed
searchNodeEvent(true);
}//GEN-LAST:event_selectNodeLabelByRegExpMenuItemActionPerformed
private void selectNodeAnnotationByRegExpMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_selectNodeAnnotationByRegExpMenuItemActionPerformed
searchNodeEvent(false);
}//GEN-LAST:event_selectNodeAnnotationByRegExpMenuItemActionPerformed
private void selectNodeFromFileMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_selectNodeFromFileMenuItemActionPerformed
selectNodeFromFileEvent();
}//GEN-LAST:event_selectNodeFromFileMenuItemActionPerformed
private void invertFixMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_invertFixMenuItemActionPerformed
stringletPanel.invertFix();
}//GEN-LAST:event_invertFixMenuItemActionPerformed
private void selectGrowMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_selectGrowMenuItemActionPerformed
stringletPanel.growSelection();
}//GEN-LAST:event_selectGrowMenuItemActionPerformed
private void aboutMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_aboutMenuItemActionPerformed
String aboutText = "Medusa 1.5
" +
"Authors:
Sean Hooper
Georgios Pavlopoulos" +
"EMBL Heidelberg 2008
" +
"hooper@embl.de
pavlopou@embl.de
" + "
Full documentation atwww.bork.embl.de/medusa
";
JOptionPane.showMessageDialog(this, aboutText);
}//GEN-LAST:event_aboutMenuItemActionPerformed
private void changeNodeSizeMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_changeNodeSizeMenuItemActionPerformed
changeNodeSizeEvent();
}//GEN-LAST:event_changeNodeSizeMenuItemActionPerformed
private void setEdgeLenMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_setEdgeLenMenuItemActionPerformed
setEdgeLenEvent();
}//GEN-LAST:event_setEdgeLenMenuItemActionPerformed
private void changeColorMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_changeColorMenuItemActionPerformed
changeColorEvent();
}//GEN-LAST:event_changeColorMenuItemActionPerformed
private void switchColorMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_switchColorMenuItemActionPerformed
switchColorEvent();
}//GEN-LAST:event_switchColorMenuItemActionPerformed
private void copyColorMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_copyColorMenuItemActionPerformed
copyColorEvent();
}//GEN-LAST:event_copyColorMenuItemActionPerformed
private void setBasicEdgeColorMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_setBasicEdgeColorMenuItemActionPerformed
setBasicEdgeColorEvent();
}//GEN-LAST:event_setBasicEdgeColorMenuItemActionPerformed
private void setBackgroundColorMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_setBackgroundColorMenuItemActionPerformed
setBackgroundColorEvent();
}//GEN-LAST:event_setBackgroundColorMenuItemActionPerformed
private void setLabelColorMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_setLabelColorMenuItemActionPerformed
setLabelColorEvent();
}//GEN-LAST:event_setLabelColorMenuItemActionPerformed
private void changeFontSizeMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_changeFontSizeMenuItemActionPerformed
changeFontSizeEvent();
}//GEN-LAST:event_changeFontSizeMenuItemActionPerformed
private void loadImageMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_loadImageMenuItemActionPerformed
loadImageEvent();
hide_starting_background();
}//GEN-LAST:event_loadImageMenuItemActionPerformed
private void clearImageMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_clearImageMenuItemActionPerformed
clearImageEvent();
}//GEN-LAST:event_clearImageMenuItemActionPerformed
private void colorMenuActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_colorMenuActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_colorMenuActionPerformed
private void clearGraphMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_clearGraphMenuItemActionPerformed
clearGraphEvent();
startinglabel.setVisible(true);
stringletPanel.repaint();
}//GEN-LAST:event_clearGraphMenuItemActionPerformed
private void changeNodeShapeMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_changeNodeShapeMenuItemActionPerformed
setShapeEvent();
}//GEN-LAST:event_changeNodeShapeMenuItemActionPerformed
private void deleteNodeMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_deleteNodeMenuItemActionPerformed
stopRelax();
stringletPanel.removeFixedNodes();
//stringletPanel.updateNodes();
updateInfo();
stringletPanel.repaint();
}//GEN-LAST:event_deleteNodeMenuItemActionPerformed
private void cropMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cropMenuItemActionPerformed
String confidence = (String) JOptionPane.showInputDialog("Choose minimum confidence level:" + "",
"1.0");
if (confidence != null) {
stringletPanel.crop(Double.parseDouble(confidence));
updateInfo();
stringletPanel.repaint();
}
}//GEN-LAST:event_cropMenuItemActionPerformed
private void randomGraphMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_randomGraphMenuItemActionPerformed
getRandomGraphEvent();
hide_starting_background();
}//GEN-LAST:event_randomGraphMenuItemActionPerformed
private void rotateRightMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rotateRightMenuItemActionPerformed
rotateEvent(Math.PI / 2);
}//GEN-LAST:event_rotateRightMenuItemActionPerformed
private void rotateLeftMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rotateLeftMenuItemActionPerformed
rotateEvent(-Math.PI / 2);
}//GEN-LAST:event_rotateLeftMenuItemActionPerformed
private void editGraphMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_editGraphMenuItemActionPerformed
editGraph();
}//GEN-LAST:event_editGraphMenuItemActionPerformed
private void loadInteractionMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_loadInteractionMenuItemActionPerformed
interactionEvent();
}//GEN-LAST:event_loadInteractionMenuItemActionPerformed
private void stringProteinInteractionMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_stringProteinInteractionMenuItemActionPerformed
proteinInteractionEvent();
}//GEN-LAST:event_stringProteinInteractionMenuItemActionPerformed
private void jMenuItem50ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem50ActionPerformed
cogInteractionEvent();
}//GEN-LAST:event_jMenuItem50ActionPerformed
private void prettyCBMItemItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_prettyCBMItemItemStateChanged
stringletPanel.setPretty(prettyCBMItem.isSelected());
// if(prettyCBMItem.isSelected()==true)hideInteractions = true;
// if(prettyCBMItem.isSelected()==false)hideInteractions = false;
stringletPanel.repaint();
validate();
}//GEN-LAST:event_prettyCBMItemItemStateChanged
private void hideShowInteractionsEvent() {
Container content = getContentPane();
if (!hideInteractions) {
hideInteractions = true;
} else {
hideInteractions = false;
}
validate();
}
private void namesCBMItemItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_namesCBMItemItemStateChanged
stringletPanel.setLabel(namesCBMItem.isSelected());
stringletPanel.repaint();
}//GEN-LAST:event_namesCBMItemItemStateChanged
private void showNamesCBMItemItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_showNamesCBMItemItemStateChanged
stringletPanel.setShowName(showNamesCBMItem.isSelected());
stringletPanel.repaint();
}//GEN-LAST:event_showNamesCBMItemItemStateChanged
private void confidenceCBMItemItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_confidenceCBMItemItemStateChanged
stringletPanel.setConfidence(confidenceCBMItem.isSelected());
stringletPanel.repaint();
}//GEN-LAST:event_confidenceCBMItemItemStateChanged
private void directedCBMItemItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_directedCBMItemItemStateChanged
stringletPanel.setArrows(directedCBMItem.isSelected());
stringletPanel.repaint();
}//GEN-LAST:event_directedCBMItemItemStateChanged
private void hideWhenMoveCBMItemItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_hideWhenMoveCBMItemItemStateChanged
stringletPanel.setHideWhenMove(hideWhenMoveCBMItem.isSelected());
stringletPanel.repaint();
}//GEN-LAST:event_hideWhenMoveCBMItemItemStateChanged
private void alphaCBMItemItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_alphaCBMItemItemStateChanged
stringletPanel.setAlpha(alphaCBMItem.isSelected());
stringletPanel.repaint();
}//GEN-LAST:event_alphaCBMItemItemStateChanged
private void channel1MenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_channel1MenuItemActionPerformed
setNodeColorSet(1);
}//GEN-LAST:event_channel1MenuItemActionPerformed
private void channel2MenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_channel2MenuItemActionPerformed
setNodeColorSet(2);
}//GEN-LAST:event_channel2MenuItemActionPerformed
private void channel3MenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_channel3MenuItemActionPerformed
setNodeColorSet(3);
}//GEN-LAST:event_channel3MenuItemActionPerformed
private void recalcButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_recalcButtonActionPerformed
recalcEvent();
}//GEN-LAST:event_recalcButtonActionPerformed
private void stringButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_stringButtonActionPerformed
stringConnection();
}//GEN-LAST:event_stringButtonActionPerformed
private void startRelaxMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_startRelaxMenuItemActionPerformed
stringletPanel.start();
}//GEN-LAST:event_startRelaxMenuItemActionPerformed
private void stopRelaxMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_stopRelaxMenuItemActionPerformed
stringletPanel.stop();
}//GEN-LAST:event_stopRelaxMenuItemActionPerformed
private void temperatureButtonItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_temperatureButtonItemStateChanged
stringletPanel.setCool(temperatureButton.isSelected());
}//GEN-LAST:event_temperatureButtonItemStateChanged
private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem3ActionPerformed
String[] result = stringletPanel.getGraphData();
String planar = "Graph is " + ((stringletPanel.getGraph().isPlanar()) ? "" : "not ") + "planar";
String display = "nodes: " +
result[0] + "
edges: " + result[1] +
"
File: " + lastFile + "";
JOptionPane.showMessageDialog(null, display);
}//GEN-LAST:event_jMenuItem3ActionPerformed
private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem4ActionPerformed
}//GEN-LAST:event_jMenuItem4ActionPerformed
private void exportEPSMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exportEPSMenuItemActionPerformed
exportEPSEvent();
}//GEN-LAST:event_exportEPSMenuItemActionPerformed
private void exportPSMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exportPSMenuItemActionPerformed
exportPSEvent();
}//GEN-LAST:event_exportPSMenuItemActionPerformed
private void jRadioButtonMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jRadioButtonMenuItem1ActionPerformed
setNodeColorSet(4);
}//GEN-LAST:event_jRadioButtonMenuItem1ActionPerformed
private void formKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_formKeyTyped
// TODO add your handling code here:
if (evt.getKeyChar() == 'r') {
if (stringletPanel.running) {
stringletPanel.stop();
} else {
stringletPanel.start();
}
}
}//GEN-LAST:event_formKeyTyped
private void prettyCBMItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_prettyCBMItemActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_prettyCBMItemActionPerformed
private void addSubractMenuActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addSubractMenuActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_addSubractMenuActionPerformed
private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem2ActionPerformed
stopRelax();
System.out.println("Predefined");
Graph g = stringletPanel.getGraph();
Layouts.Apply_Predefined_Clustering(g, stringletPanel);
updateInfo();
stringletPanel.repaint();
}//GEN-LAST:event_jMenuItem2ActionPerformed
private void jMenuItem5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem5ActionPerformed
exportArena3DEvent();
}//GEN-LAST:event_jMenuItem5ActionPerformed
private void jMenuItem6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem6ActionPerformed
exportBiolayoutEvent();
}//GEN-LAST:event_jMenuItem6ActionPerformed
private void jMenuItem7ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem7ActionPerformed
exportCytoscapeEvent();
}//GEN-LAST:event_jMenuItem7ActionPerformed
private void jMenuItem8ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem8ActionPerformed
exportGraphVizEvent();
}//GEN-LAST:event_jMenuItem8ActionPerformed
private void alignTopActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_alignTopActionPerformed
// TODO add your handling code here:
alignNodes(EditableGraphPanel.EXTREME_TOP);
}//GEN-LAST:event_alignTopActionPerformed
private void alignBottomActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_alignBottomActionPerformed
// TODO add your handling code here:
alignNodes(EditableGraphPanel.EXTREME_BOTTOM);
}//GEN-LAST:event_alignBottomActionPerformed
private void alignLeftActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_alignLeftActionPerformed
// TODO add your handling code here:
alignNodes(EditableGraphPanel.EXTREME_LEFT);
}//GEN-LAST:event_alignLeftActionPerformed
private void alignRightActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_alignRightActionPerformed
// TODO add your handling code here:
alignNodes(EditableGraphPanel.EXTREME_RIGHT);
}//GEN-LAST:event_alignRightActionPerformed
//---------------------------------------------------------------------------------------------------
/**
* @param args the command line arguments
*/
public static void main(final String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
MedusaSimplerFrame frame = new MedusaSimplerFrame();
try {
// do we have args?
frame.checkArgs(args);
} catch (DataFormatException ex) {
System.out.println("Data format error! Check your data and make sure it is in the correct format");
ex.printStackTrace();
System.exit(0);
} catch (IOException ex) {
System.out.println("File error! Check the integrity of your file. You may need to provide the full path to the file");
ex.printStackTrace();
System.exit(0);
}
frame.setVisible(true);
}
});
}
// functions to handle command line arguments
public void checkArgs(String[] args) throws IOException, DataFormatException {
// use the format
// f
// i
System.out.println("Checking arguments");
int ln = args.length;
//System.out.println(args.length);
// should be 0, 2 or 4
if (ln == 0) {
System.out.println("No arguments. Proceeding normally");
// initData();
return;
}
if (ln == 2) {
checkArgPair(args);
return;
}
if (ln == 4) {
checkArgPair(new String[]{args[0], args[1]});
checkArgPair(new String[]{args[2], args[3]});
return;
}
}
private void checkArgPair(String[] args) throws IOException, DataFormatException {
if (args[0].compareTo("f") == 0) {
waitForLoad(args[1], DataLoader.LOAD_MEDUSA);
hide_starting_background();
//loadData(args[1], true);
}
if (args[0].compareTo("i") == 0) {
stringSettings.load(args[1]);
// waitForLoad(args[1], DataLoader.LO);
// loadInteractionSettings(args[1]);
}
if (args[0].compareTo("t") == 0) {
waitForLoad(args[1], DataLoader.LOAD_TABBED);
hide_starting_background();
// loadData(args[1], false);
}
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JMenuItem aboutMenuItem;
private javax.swing.JMenuItem addMenuItem;
private javax.swing.JMenu addSubractMenu;
private javax.swing.JMenuItem affinityMenuItem;
private javax.swing.JMenuItem alignBottom;
private javax.swing.JMenuItem alignLeft;
private javax.swing.JMenu alignNodesMenu;
private javax.swing.JMenuItem alignRight;
private javax.swing.JMenuItem alignTop;
private javax.swing.JCheckBoxMenuItem alphaCBMItem;
private javax.swing.JMenuItem changeColorMenuItem;
private javax.swing.JMenuItem changeFontSizeMenuItem;
private javax.swing.JMenuItem changeNodeShapeMenuItem;
private javax.swing.JMenuItem changeNodeSizeMenuItem;
public static javax.swing.JRadioButtonMenuItem channel1MenuItem;
public static javax.swing.JRadioButtonMenuItem channel2MenuItem;
public static javax.swing.JRadioButtonMenuItem channel3MenuItem;
private javax.swing.JMenuItem circularMenuItem;
private javax.swing.JMenuItem clearGraphMenuItem;
private javax.swing.JMenuItem clearImageMenuItem;
private javax.swing.JMenu clusteringMenu;
private javax.swing.JMenu colorMenu;
private javax.swing.JCheckBoxMenuItem confidenceCBMItem;
private javax.swing.JMenuItem copyColorMenuItem;
private javax.swing.JMenuItem copyMenuItem;
private javax.swing.JMenuItem cropMenuItem;
private javax.swing.JMenuItem deleteNodeMenuItem;
private javax.swing.JCheckBoxMenuItem directedCBMItem;
private javax.swing.JMenu displayMenu;
private javax.swing.JMenuItem distanceGeometryMenuItem;
private javax.swing.JMenuItem editGraphMenuItem;
private javax.swing.JMenuItem exportEPSMenuItem;
private javax.swing.JMenu exportImageMenu;
private javax.swing.JMenuItem exportJPGMenuItem;
private javax.swing.JMenu exportMenu;
private javax.swing.JMenuItem exportPNGMenuItem;
private javax.swing.JMenuItem exportPSMenuItem;
private javax.swing.JMenuItem exportPajekMenuItem;
private javax.swing.JMenu exportPostscriptMenu;
private javax.swing.JMenu fileMenu;
private javax.swing.JMenu flipMenu;
private javax.swing.JMenuItem flipXItem;
private javax.swing.JMenuItem flipYItem;
private javax.swing.JMenu fontMenu;
private javax.swing.JMenuItem fruchtermanMenuItem;
private javax.swing.JMenuItem gridMenuItem;
private javax.swing.JMenu helpMenu;
private javax.swing.JCheckBoxMenuItem hideWhenMoveCBMItem;
private javax.swing.JMenuItem hierarchicalMenuItem;
private javax.swing.JMenu imageMenu;
private javax.swing.JMenu importMenu;
private javax.swing.JMenuItem importTabbedMenuItem;
public static javax.swing.JMenu interactionMenu;
private javax.swing.JMenuItem invertFixMenuItem;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JMenuItem jMenuItem1;
private javax.swing.JMenuItem jMenuItem2;
private javax.swing.JMenuItem jMenuItem3;
public static javax.swing.JMenuItem jMenuItem4;
private javax.swing.JMenuItem jMenuItem5;
private javax.swing.JMenuItem jMenuItem50;
private javax.swing.JMenuItem jMenuItem6;
private javax.swing.JMenuItem jMenuItem7;
private javax.swing.JMenuItem jMenuItem8;
public static javax.swing.JRadioButtonMenuItem jRadioButtonMenuItem1;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JSeparator jSeparator10;
private javax.swing.JSeparator jSeparator11;
private javax.swing.JSeparator jSeparator2;
private javax.swing.JSeparator jSeparator3;
private javax.swing.JSeparator jSeparator4;
private javax.swing.JSeparator jSeparator5;
private javax.swing.JSeparator jSeparator6;
private javax.swing.JSeparator jSeparator7;
private javax.swing.JSeparator jSeparator8;
private javax.swing.JSeparator jSeparator9;
private javax.swing.JMenuItem kmeansMenuItem;
private javax.swing.JMenu layoutMenu;
private javax.swing.JMenuItem loadImageMenuItem;
private javax.swing.JMenuItem loadInteractionMenuItem;
private javax.swing.JMenu manipulateMenu;
private javax.swing.JMenuItem mclMenuItem;
private javax.swing.JCheckBoxMenuItem namesCBMItem;
private javax.swing.JMenu nodeColorDisplayMenu;
private javax.swing.JMenuItem openMenuItem;
private javax.swing.JMenu optionMenu;
private javax.swing.JCheckBoxMenuItem prettyCBMItem;
private javax.swing.JMenuItem quitMenuItem;
private javax.swing.JMenuItem randomGraphMenuItem;
private javax.swing.JMenuItem randomMenuItem;
private javax.swing.JMenuItem recalcButton;
private javax.swing.JMenu relaxMenu;
private javax.swing.JMenuItem rotateLeftMenuItem;
private javax.swing.JMenu rotateMenu;
private javax.swing.JMenuItem rotateRightMenuItem;
private javax.swing.JMenuItem saveHTMLParametersMenuItem;
private javax.swing.JMenuItem saveMenuItem;
private javax.swing.JMenuItem selectAllMenuItem;
private javax.swing.JMenuItem selectGrowMenuItem;
private javax.swing.JMenu selectMenu;
private javax.swing.JMenuItem selectNodeAnnotationByRegExpMenuItem;
private javax.swing.JMenuItem selectNodeFromFileMenuItem;
private javax.swing.JMenuItem selectNodeLabelByRegExpMenuItem;
private javax.swing.JMenuItem selectNoneMenuItem;
private javax.swing.JMenuItem setBackgroundColorMenuItem;
private javax.swing.JMenuItem setBasicEdgeColorMenuItem;
private javax.swing.JMenuItem setEdgeLenMenuItem;
private javax.swing.JMenuItem setLabelColorMenuItem;
private javax.swing.JCheckBoxMenuItem showNamesCBMItem;
private javax.swing.JMenuItem startRelaxMenuItem;
private javax.swing.JMenuItem stopRelaxMenuItem;
private javax.swing.JMenuItem stringButton;
private javax.swing.JMenu stringCOGInteractionMenuItem;
private javax.swing.JMenuItem stringProteinInteractionMenuItem;
private javax.swing.JMenuItem subtractMenuItem;
private javax.swing.JMenuItem switchColorMenuItem;
private javax.swing.JCheckBoxMenuItem temperatureButton;
private javax.swing.JMenu zoomMenu;
// End of variables declaration//GEN-END:variables
}
Ads help maintain this website.