/*
 * 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 at

www.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.