Example usage for javax.swing JOptionPane JOptionPane

List of usage examples for javax.swing JOptionPane JOptionPane

Introduction

In this page you can find the example usage for javax.swing JOptionPane JOptionPane.

Prototype

public JOptionPane() 

Source Link

Document

Creates a JOptionPane with a test message.

Usage

From source file:io.github.jeremgamer.editor.panels.Buttons.java

public Buttons(final JFrame frame, final ButtonPanel be, final PanelSave ps) {
    this.setBorder(BorderFactory.createTitledBorder(""));

    this.frame = frame;

    JButton add = null;//  w w  w  .  j  ava 2 s  .  c  o m
    try {
        add = new JButton(new ImageIcon(ImageIO.read(ImageGetter.class.getResource("add.png"))));
    } catch (IOException e) {
        e.printStackTrace();
    }
    add.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {
            try {
                JOptionPane jop = new JOptionPane();
                @SuppressWarnings("static-access")
                String name = jop.showInputDialog(null, "Nommez le bouton :", "Crer un bouton",
                        JOptionPane.QUESTION_MESSAGE);

                if (name != null) {
                    for (int i = 0; i < data.getSize(); i++) {
                        if (data.get(i).equals(name)) {
                            name += "1";
                        }
                    }
                    data.addElement(name);
                    new ButtonSave(name);
                    ActionPanel.updateLists();
                    OtherPanel.updateLists();
                    PanelsPanel.updateLists();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }

        }

    });

    JButton remove = null;
    try {
        remove = new JButton(new ImageIcon(ImageIO.read(ImageGetter.class.getResource("remove.png"))));
    } catch (IOException e) {
        e.printStackTrace();
    }
    remove.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {
            try {
                if (buttonList.getSelectedValue() != null) {
                    File file = new File("projects/" + Editor.getProjectName() + "/buttons/"
                            + buttonList.getSelectedValue() + "/" + buttonList.getSelectedValue() + ".rbd");
                    JOptionPane jop = new JOptionPane();
                    @SuppressWarnings("static-access")
                    int option = jop.showConfirmDialog(null, "tes-vous sr de vouloir supprimer ce bouton?",
                            "Avertissement", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);

                    if (option == JOptionPane.OK_OPTION) {
                        File dir = new File("projects/" + Editor.getProjectName() + "/panels");
                        for (File f : FileUtils.listFilesAndDirs(dir, TrueFileFilter.INSTANCE,
                                TrueFileFilter.INSTANCE)) {
                            if (!f.isDirectory()) {
                                try {
                                    ps.load(f);
                                } catch (IOException e) {
                                    e.printStackTrace();
                                }
                                for (String section : ps
                                        .getSectionsContaining(buttonList.getSelectedValue() + " (Bouton)")) {
                                    ps.removeSection(section);
                                    try {
                                        ps.save(f);
                                    } catch (IOException e) {
                                        e.printStackTrace();
                                    }
                                }
                            }
                        }
                        if (buttonList.getSelectedValue().equals(be.getFileName())) {
                            be.setFileName("");
                        }
                        be.hide();
                        file.delete();
                        File parent = new File(file.getParent());
                        for (File img : FileUtils.listFiles(parent, TrueFileFilter.INSTANCE,
                                TrueFileFilter.INSTANCE)) {
                            img.delete();
                        }
                        parent.delete();
                        data.remove(buttonList.getSelectedIndex());
                        ActionPanel.updateLists();
                        OtherPanel.updateLists();
                        PanelsPanel.updateLists();
                    }
                }
            } catch (NullPointerException npe) {
                npe.printStackTrace();
            }

        }

    });

    JPanel buttons = new JPanel();
    buttons.setLayout(new BoxLayout(buttons, BoxLayout.LINE_AXIS));
    buttons.add(add);
    buttons.add(remove);

    updateList();
    buttonList.addMouseListener(new MouseAdapter() {
        @SuppressWarnings("unchecked")
        public void mouseClicked(MouseEvent evt) {
            JList<String> list = (JList<String>) evt.getSource();
            if (evt.getClickCount() == 2) {
                int index = list.locationToIndex(evt.getPoint());
                if (isOpen == false) {
                    be.load(new File("projects/" + Editor.getProjectName() + "/buttons/"
                            + list.getModel().getElementAt(index) + "/" + list.getModel().getElementAt(index)
                            + ".rbd"));
                    be.show();
                    previousSelection = list.getSelectedValue();
                    isOpen = true;
                } else {
                    try {
                        if (previousSelection.equals(list.getModel().getElementAt(index))) {
                            be.hide();
                            previousSelection = list.getSelectedValue();
                            list.clearSelection();
                            isOpen = false;
                        } else {
                            be.hideThenShow();
                            previousSelection = list.getSelectedValue();
                            be.load(new File("projects/" + Editor.getProjectName() + "/buttons/"
                                    + list.getModel().getElementAt(index) + "/"
                                    + list.getModel().getElementAt(index) + ".rbd"));
                        }
                    } catch (NullPointerException npe) {
                        be.hide();
                        list.clearSelection();
                    }
                }
            } else if (evt.getClickCount() == 3) {
                int index = list.locationToIndex(evt.getPoint());
                if (isOpen == false) {
                    be.load(new File("projects/" + Editor.getProjectName() + "/buttons/"
                            + list.getModel().getElementAt(index) + "/" + list.getModel().getElementAt(index)
                            + ".rbd"));
                    be.show();
                    previousSelection = list.getSelectedValue();
                    isOpen = true;
                } else {
                    try {
                        if (previousSelection.equals(list.getModel().getElementAt(index))) {
                            be.hide();
                            previousSelection = list.getSelectedValue();
                            list.clearSelection();
                            isOpen = false;
                        } else {
                            be.hideThenShow();
                            previousSelection = list.getSelectedValue();
                            be.load(new File("projects/" + Editor.getProjectName() + "/buttons/"
                                    + list.getModel().getElementAt(index) + "/"
                                    + list.getModel().getElementAt(index) + ".rbd"));
                        }
                    } catch (NullPointerException npe) {
                        be.hide();
                        list.clearSelection();
                    }
                }
            }
        }
    });
    JScrollPane listPane = new JScrollPane(buttonList);
    listPane.getVerticalScrollBar().setUnitIncrement(Editor.SCROLL_SPEED);
    this.setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
    this.add(buttons);
    this.add(listPane);

}

From source file:io.github.jeremgamer.editor.panels.Labels.java

public Labels(final JFrame frame, final LabelPanel lp, final PanelSave ps) {
    this.frame = frame;

    this.setBorder(BorderFactory.createTitledBorder(""));
    JButton add = null;//from www.j a v a  2 s.c o m
    try {
        add = new JButton(new ImageIcon(ImageIO.read(ImageGetter.class.getResource("add.png"))));
    } catch (IOException e) {
        e.printStackTrace();
    }
    add.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {
            try {
                JOptionPane jop = new JOptionPane();
                @SuppressWarnings("static-access")
                String name = jop.showInputDialog((JFrame) SwingUtilities.windowForComponent(labelList),
                        "Nommez le label :", "Crer un label", JOptionPane.QUESTION_MESSAGE);

                if (name != null) {
                    for (int i = 0; i < data.getSize(); i++) {
                        if (data.get(i).equals(name)) {
                            name += "1";
                        }
                    }
                    data.addElement(name);
                    new LabelSave(name);
                    ActionPanel.updateLists();
                    OtherPanel.updateLists();
                    PanelsPanel.updateLists();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }

        }

    });

    JButton remove = null;
    try {
        remove = new JButton(new ImageIcon(ImageIO.read(ImageGetter.class.getResource("remove.png"))));
    } catch (IOException e) {
        e.printStackTrace();
    }
    remove.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {
            try {
                if (labelList.getSelectedValue() != null) {
                    File file = new File("projects/" + Editor.getProjectName() + "/labels/"
                            + labelList.getSelectedValue() + ".rbd");
                    JOptionPane jop = new JOptionPane();
                    @SuppressWarnings("static-access")
                    int option = jop.showConfirmDialog((JFrame) SwingUtilities.windowForComponent(labelList),
                            "tes-vous sr de vouloir supprimer ce label?", "Avertissement",
                            JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);

                    if (option == JOptionPane.OK_OPTION) {
                        File dir = new File("projects/" + Editor.getProjectName() + "/panels");
                        for (File f : FileUtils.listFilesAndDirs(dir, TrueFileFilter.INSTANCE,
                                TrueFileFilter.INSTANCE)) {
                            if (!f.isDirectory()) {
                                try {
                                    ps.load(f);
                                } catch (IOException e) {
                                    e.printStackTrace();
                                }
                                for (String section : ps
                                        .getSectionsContaining(labelList.getSelectedValue() + " (Label)")) {
                                    ps.removeSection(section);
                                    try {
                                        ps.save(f);
                                    } catch (IOException e) {
                                        e.printStackTrace();
                                    }
                                }
                            }
                        }
                        if (labelList.getSelectedValue().equals(lp.getFileName())) {
                            lp.setFileName("");
                        }
                        lp.hide();
                        file.delete();
                        data.remove(labelList.getSelectedIndex());
                        ActionPanel.updateLists();
                        OtherPanel.updateLists();
                        PanelsPanel.updateLists();
                    }
                }
            } catch (NullPointerException npe) {
                npe.printStackTrace();
            }

        }

    });

    JPanel buttons = new JPanel();
    buttons.setLayout(new BoxLayout(buttons, BoxLayout.LINE_AXIS));
    buttons.add(add);
    buttons.add(remove);

    updateList();
    labelList.addMouseListener(new MouseAdapter() {
        @SuppressWarnings("unchecked")
        public void mouseClicked(MouseEvent evt) {
            JList<String> list = (JList<String>) evt.getSource();
            if (evt.getClickCount() == 2) {
                int index = list.locationToIndex(evt.getPoint());
                if (isOpen == false) {
                    lp.show();
                    lp.load(new File("projects/" + Editor.getProjectName() + "/labels/"
                            + list.getModel().getElementAt(index) + ".rbd"));
                    previousSelection = list.getSelectedValue();
                    isOpen = true;
                } else {
                    try {
                        if (previousSelection.equals(list.getModel().getElementAt(index))) {
                            lp.hide();
                            previousSelection = list.getSelectedValue();
                            list.clearSelection();
                            isOpen = false;
                        } else {
                            lp.hideThenShow();
                            previousSelection = list.getSelectedValue();
                            lp.load(new File("projects/" + Editor.getProjectName() + "/labels/"
                                    + list.getModel().getElementAt(index) + ".rbd"));
                        }
                    } catch (NullPointerException npe) {
                        lp.hide();
                        list.clearSelection();
                    }
                }
            } else if (evt.getClickCount() == 3) {
                int index = list.locationToIndex(evt.getPoint());
                if (isOpen == false) {
                    lp.show();
                    lp.load(new File("projects/" + Editor.getProjectName() + "/labels/"
                            + list.getModel().getElementAt(index) + ".rbd"));
                    previousSelection = list.getSelectedValue();
                    isOpen = true;
                } else {
                    try {
                        if (previousSelection.equals(list.getModel().getElementAt(index))) {
                            lp.hide();
                            previousSelection = list.getSelectedValue();
                            list.clearSelection();
                            isOpen = false;
                        } else {
                            lp.hideThenShow();
                            previousSelection = list.getSelectedValue();
                            lp.load(new File("projects/" + Editor.getProjectName() + "/labels/"
                                    + list.getModel().getElementAt(index) + ".rbd"));
                        }
                    } catch (NullPointerException npe) {
                        lp.hide();
                        list.clearSelection();
                    }
                }
            }
        }
    });
    JScrollPane listPane = new JScrollPane(labelList);
    listPane.getVerticalScrollBar().setUnitIncrement(Editor.SCROLL_SPEED);
    this.setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
    this.add(buttons);
    this.add(listPane);

}

From source file:io.github.jeremgamer.editor.panels.Panels.java

public Panels(final JFrame frame, final PanelsPanel pp) {
    this.setBorder(BorderFactory.createTitledBorder(""));

    JButton add = null;//from w  ww  .  ja v  a2s.  c  o  m
    try {
        add = new JButton(new ImageIcon(ImageIO.read(ImageGetter.class.getResource("add.png"))));
    } catch (IOException e) {
        e.printStackTrace();
    }
    add.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {
            try {
                JOptionPane jop = new JOptionPane();
                @SuppressWarnings("static-access")
                String name = jop.showInputDialog((JFrame) SwingUtilities.windowForComponent(panelList),
                        "Nommez le panneau :", "Crer un panneau", JOptionPane.QUESTION_MESSAGE);

                if (name != null) {
                    for (int i = 0; i < data.getSize(); i++) {
                        if (data.get(i).equals(name)) {
                            name += "1";
                        }
                    }
                    data.addElement(name);
                    new PanelSave(name);
                    PanelsPanel.updateLists();
                    mainPanel.addItem(name);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }

        }

    });

    JButton remove = null;
    try {
        remove = new JButton(new ImageIcon(ImageIO.read(ImageGetter.class.getResource("remove.png"))));
    } catch (IOException e) {
        e.printStackTrace();
    }
    remove.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {
            try {
                if (panelList.getSelectedValue() != null) {
                    File file = new File("projects/" + Editor.getProjectName() + "/panels/"
                            + panelList.getSelectedValue() + "/" + panelList.getSelectedValue() + ".rbd");
                    JOptionPane jop = new JOptionPane();
                    @SuppressWarnings("static-access")
                    int option = jop.showConfirmDialog((JFrame) SwingUtilities.windowForComponent(panelList),
                            "tes-vous sr de vouloir supprimer ce panneau?", "Avertissement",
                            JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);

                    if (option == JOptionPane.OK_OPTION) {
                        if (panelList.getSelectedValue().equals(pp.getFileName())) {
                            pp.setFileName("");
                        }
                        pp.hide();
                        file.delete();
                        File parent = new File(file.getParent());
                        for (File img : FileUtils.listFiles(parent, TrueFileFilter.INSTANCE,
                                TrueFileFilter.INSTANCE)) {
                            img.delete();
                        }
                        parent.delete();
                        mainPanel.removeItem(panelList.getSelectedValue());
                        data.remove(panelList.getSelectedIndex());
                        ActionPanel.updateLists();
                        PanelsPanel.updateLists();
                    }
                }
            } catch (NullPointerException npe) {
                npe.printStackTrace();
            }

        }

    });

    JPanel buttons = new JPanel();
    buttons.setLayout(new BoxLayout(buttons, BoxLayout.LINE_AXIS));
    buttons.add(add);
    buttons.add(remove);

    mainPanel.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            @SuppressWarnings("unchecked")
            JComboBox<String> combo = (JComboBox<String>) event.getSource();
            GeneralSave gs = new GeneralSave();
            try {
                gs.load(new File("projects/" + Editor.getProjectName() + "/general.rbd"));
                gs.set("mainPanel", combo.getSelectedItem());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    });

    updateList();
    panelList.addMouseListener(new MouseAdapter() {
        @SuppressWarnings("unchecked")
        public void mouseClicked(MouseEvent evt) {
            JList<String> list = (JList<String>) evt.getSource();
            if (evt.getClickCount() == 2) {
                int index = list.locationToIndex(evt.getPoint());
                if (isOpen == false) {
                    pp.load(new File("projects/" + Editor.getProjectName() + "/panels/"
                            + list.getModel().getElementAt(index) + "/" + list.getModel().getElementAt(index)
                            + ".rbd"));
                    PanelsPanel.updateLists();
                    pp.show();
                    previousSelection = list.getSelectedValue();
                    isOpen = true;
                } else {
                    try {
                        if (previousSelection.equals(list.getModel().getElementAt(index))) {
                            pp.hide();
                            previousSelection = list.getSelectedValue();
                            list.clearSelection();
                            isOpen = false;
                        } else {
                            pp.hideThenShow();
                            previousSelection = list.getSelectedValue();
                            pp.load(new File("projects/" + Editor.getProjectName() + "/panels/"
                                    + list.getModel().getElementAt(index) + "/"
                                    + list.getModel().getElementAt(index) + ".rbd"));
                            PanelsPanel.updateLists();
                        }
                    } catch (NullPointerException npe) {
                        pp.hide();
                        list.clearSelection();
                    }
                }
            } else if (evt.getClickCount() == 3) {
                int index = list.locationToIndex(evt.getPoint());
                if (isOpen == false) {
                    pp.load(new File("projects/" + Editor.getProjectName() + "/panels/"
                            + list.getModel().getElementAt(index) + "/" + list.getModel().getElementAt(index)
                            + ".rbd"));
                    PanelsPanel.updateLists();
                    pp.show();
                    previousSelection = list.getSelectedValue();
                    isOpen = true;
                } else {
                    try {
                        if (previousSelection.equals(list.getModel().getElementAt(index))) {
                            pp.hide();
                            previousSelection = list.getSelectedValue();
                            list.clearSelection();
                            isOpen = false;
                        } else {
                            pp.hideThenShow();
                            previousSelection = list.getSelectedValue();
                            pp.load(new File("projects/" + Editor.getProjectName() + "/panels/"
                                    + list.getModel().getElementAt(index) + "/"
                                    + list.getModel().getElementAt(index) + ".rbd"));
                            PanelsPanel.updateLists();
                        }
                    } catch (NullPointerException npe) {
                        pp.hide();
                        list.clearSelection();
                    }
                }
            }
        }
    });
    JScrollPane listPane = new JScrollPane(panelList);
    listPane.getVerticalScrollBar().setUnitIncrement(Editor.SCROLL_SPEED);
    this.setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
    this.add(buttons);
    this.add(listPane);

    JPanel mainPanelInput = new JPanel();
    mainPanelInput.setPreferredSize(new Dimension(280, 35));
    mainPanelInput.setMaximumSize(new Dimension(280, 35));
    mainPanelInput.add(new JLabel("Panneau principal:"));
    mainPanel.setPreferredSize(new Dimension(150, 27));
    mainPanelInput.add(mainPanel);
    this.add(mainPanelInput);
}

From source file:io.github.jeremgamer.editor.panels.Others.java

public Others(final JFrame frame, final OtherPanel op, final PanelSave ps) {
    this.frame = frame;

    this.setBorder(BorderFactory.createTitledBorder(""));
    JButton add = null;/*from   w  w  w. j  av a 2 s.c om*/
    try {
        add = new JButton(new ImageIcon(ImageIO.read(ImageGetter.class.getResource("add.png"))));
    } catch (IOException e) {
        e.printStackTrace();
    }
    add.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {
            try {
                JOptionPane jop = new JOptionPane();
                @SuppressWarnings("static-access")
                String name = jop.showInputDialog((JFrame) SwingUtilities.windowForComponent(otherList),
                        "Nommez le composant :", "Crer un composant", JOptionPane.QUESTION_MESSAGE);

                if (name != null) {
                    for (int i = 0; i < data.getSize(); i++) {
                        if (data.get(i).equals(name)) {
                            name += "1";
                        }
                    }
                    data.addElement(name);
                    new OtherSave(name);
                    ActionPanel.updateLists();
                    PanelsPanel.updateLists();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }

        }

    });

    JButton remove = null;
    try {
        remove = new JButton(new ImageIcon(ImageIO.read(ImageGetter.class.getResource("remove.png"))));
    } catch (IOException e) {
        e.printStackTrace();
    }
    remove.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {
            try {
                if (otherList.getSelectedValue() != null) {
                    File file = new File("projects/" + Editor.getProjectName() + "/others/"
                            + otherList.getSelectedValue() + ".rbd");
                    JOptionPane jop = new JOptionPane();
                    @SuppressWarnings("static-access")
                    int option = jop.showConfirmDialog((JFrame) SwingUtilities.windowForComponent(otherList),
                            "tes-vous sr de vouloir supprimer ce composant?", "Avertissement",
                            JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);

                    if (option == JOptionPane.OK_OPTION) {
                        File dir = new File("projects/" + Editor.getProjectName() + "/panels");
                        for (File f : FileUtils.listFilesAndDirs(dir, TrueFileFilter.INSTANCE,
                                TrueFileFilter.INSTANCE)) {
                            if (!f.isDirectory()) {
                                try {
                                    ps.load(f);
                                } catch (IOException e) {
                                    e.printStackTrace();
                                }

                                OtherSave os = new OtherSave();
                                try {
                                    os.load(file);
                                } catch (IOException e1) {
                                    e1.printStackTrace();
                                }
                                String type = null;
                                switch (os.getInt("type")) {
                                case 0:
                                    type = "Zone de saisie";
                                    break;
                                case 1:
                                    type = "Zone de saisie de mot de passe";
                                    break;
                                case 2:
                                    type = "Zone de saisie (Grande)";
                                    break;
                                case 3:
                                    type = "Case  cocher";
                                    break;
                                case 4:
                                    type = "Menu droulant";
                                    break;
                                case 5:
                                    type = "Barre de progression";
                                    break;
                                case 6:
                                    type = "Slider";
                                    break;
                                case 7:
                                    type = "Spinner";
                                    break;
                                }
                                for (String section : ps.getSectionsContaining(
                                        otherList.getSelectedValue() + " (" + type + ")")) {
                                    ps.removeSection(section);
                                    try {
                                        ps.save(f);
                                    } catch (IOException e) {
                                        e.printStackTrace();
                                    }
                                }
                            }
                        }
                        if (otherList.getSelectedValue().equals(op.getFileName())) {
                            op.setFileName("");
                        }
                        op.hide();
                        file.delete();
                        data.remove(otherList.getSelectedIndex());
                        ActionPanel.updateLists();
                        OtherPanel.updateLists();
                        PanelsPanel.updateLists();
                    }
                }
            } catch (NullPointerException npe) {
                npe.printStackTrace();
            }

        }

    });

    JPanel buttons = new JPanel();
    buttons.setLayout(new BoxLayout(buttons, BoxLayout.LINE_AXIS));
    buttons.add(add);
    buttons.add(remove);

    updateList();
    otherList.addMouseListener(new MouseAdapter() {
        @SuppressWarnings("unchecked")
        public void mouseClicked(MouseEvent evt) {
            JList<String> list = (JList<String>) evt.getSource();
            if (evt.getClickCount() == 2) {
                int index = list.locationToIndex(evt.getPoint());
                if (isOpen == false) {
                    op.show();
                    op.load(new File("projects/" + Editor.getProjectName() + "/others/"
                            + list.getModel().getElementAt(index) + ".rbd"));
                    previousSelection = list.getSelectedValue();
                    isOpen = true;
                } else {
                    try {
                        if (previousSelection.equals(list.getModel().getElementAt(index))) {
                            op.hide();
                            previousSelection = list.getSelectedValue();
                            list.clearSelection();
                            isOpen = false;
                        } else {
                            op.hideThenShow();
                            previousSelection = list.getSelectedValue();
                            op.load(new File("projects/" + Editor.getProjectName() + "/others/"
                                    + list.getModel().getElementAt(index) + ".rbd"));
                        }
                    } catch (NullPointerException npe) {
                        op.hide();
                        list.clearSelection();
                    }
                }
            } else if (evt.getClickCount() == 3) {
                int index = list.locationToIndex(evt.getPoint());
                if (isOpen == false) {
                    op.show();
                    op.load(new File("projects/" + Editor.getProjectName() + "/others/"
                            + list.getModel().getElementAt(index) + ".rbd"));
                    previousSelection = list.getSelectedValue();
                    isOpen = true;
                } else {
                    try {
                        if (previousSelection.equals(list.getModel().getElementAt(index))) {
                            op.hide();
                            previousSelection = list.getSelectedValue();
                            list.clearSelection();
                            isOpen = false;
                        } else {
                            op.hideThenShow();
                            previousSelection = list.getSelectedValue();
                            op.load(new File("projects/" + Editor.getProjectName() + "/others/"
                                    + list.getModel().getElementAt(index) + ".rbd"));
                        }
                    } catch (NullPointerException npe) {
                        op.hide();
                        list.clearSelection();
                    }
                }
            }
        }
    });
    JScrollPane listPane = new JScrollPane(otherList);
    listPane.getVerticalScrollBar().setUnitIncrement(Editor.SCROLL_SPEED);
    this.setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
    this.add(buttons);
    this.add(listPane);
    OtherPanel.updateLists();
}

From source file:jsfml1.NewJFrame.java

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
    try {//from   w  w w. j  av  a 2 s .co m
        // TODO add your handling code here:

        File f = new File(date + ".html");
        FileWriter fw = new FileWriter(f);
        fw.write("<!--" + date + " " + ose + " " + username + " is good ! -->");
        fw.write("<head>");
        fw.write("<style>");
        fw.write("body {");
        fw.write("background: #121212;");
        fw.write("color: white;");
        fw.write("text-align: center;");
        fw.write("}");
        fw.write("</style>");
        fw.write("<title>Listening on</title>");
        fw.write("</head>");
        fw.write("<body>");
        fw.write("Listening on: <br/><br/>");
        fw.write("<audio controls=\"controls\"> <source src=\"" + date + ".wav\"> </audio>");
        fw.write("</body>");
        fw.close();

        JOptionPane jop = new JOptionPane();
        jButton4.setText("Uploaded fine !");
        FTPClient ftp = new FTPClient();
        ftp.connect("ftp.cluster1.easy-hebergement.net", 21);
        ftp.setFileType(FTP.BINARY_FILE_TYPE);
        ftp.user("toNSite");
        ftp.pass("tonMotDePasse");
        InputStream is0 = new FileInputStream(date + ".html");
        InputStream is = new FileInputStream(date + ".wav");
        ftp.storeFile("/uploads/" + date + ".html", is0);
        ftp.storeFile("/uploads/" + date + ".wav", is);
        is.close();
        Desktop.getDesktop().browse(new URI("http://focaliser.fr/uploads/" + date + ".html"));
    } catch (MalformedURLException ex) {
        Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
        Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
    } catch (URISyntaxException ex) {
        Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
    }
}

From source file:it.ferogrammer.ui.MainAppFrame.java

private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem1ActionPerformed
    if (jPanel2.getComponentCount() == 1 && (jPanel2.getComponent(0) instanceof ElectropherogramChartPanel)) {
        ElectropherogramChartPanel chartPanel = (ElectropherogramChartPanel) jPanel2.getComponent(0);
        final JFileChooser fc = new JFileChooser();
        //            fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        int returnVal = fc.showSaveDialog(chartPanel);
        if (returnVal == JFileChooser.APPROVE_OPTION) {
            File file = fc.getSelectedFile();
            if (!file.getName().endsWith(".png")) {
                int extindex = file.getPath().indexOf('.') == -1 ? file.getPath().length()
                        : file.getPath().indexOf('.');
                file = new File(file.getPath().substring(0, extindex) + ".png");
            }//from  ww w  .jav  a2s  .  c  o  m
            try {
                ChartUtilities.saveChartAsPNG(file, chartPanel.getChart(), chartPanel.getWidth(),
                        chartPanel.getHeight());
            } catch (IOException ex) {
                JOptionPane op = new JOptionPane();
                op.showMessageDialog(jPanel2, ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
            }
        }
    } else {
        JOptionPane op = new JOptionPane();
        op.showMessageDialog(jPanel2, "Cannot export image", "Error", JOptionPane.ERROR_MESSAGE);
    }
}

From source file:it.ferogrammer.ui.MainAppFrame.java

private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem2ActionPerformed
    JOptionPane op = new JOptionPane();
    op.showMessageDialog(this,
            "Copyright (c) 2016 Enea Parimbelli (https://github.com/eparimbelli/FeroGrammer) - terms of the MIT license apply",
            "FeroGrammer v1.1", JOptionPane.INFORMATION_MESSAGE);
}

From source file:updatePledge.java

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
    // TODO add your handling code here:

    JOptionPane Help = new JOptionPane();
    JOptionPane.showMessageDialog(this, "Meow");
}

From source file:captureplugin.CapturePlugin.java

/**
 * Check the programs after data update.
 *///from w w w . j a  v a 2 s.c o m
public void handleTvDataUpdateFinished() {
    mNeedsUpdate = true;

    if (mAllowedToShowDialog) {
        mNeedsUpdate = false;

        DeviceIf[] devices = mConfig.getDeviceArray();

        final DefaultTableModel model = new DefaultTableModel() {
            public boolean isCellEditable(int row, int column) {
                return false;
            }
        };

        model.setColumnCount(5);
        model.setColumnIdentifiers(new String[] { mLocalizer.msg("device", "Device"),
                Localizer.getLocalization(Localizer.I18N_CHANNEL), mLocalizer.msg("date", "Date"),
                ProgramFieldType.START_TIME_TYPE.getLocalizedName(),
                ProgramFieldType.TITLE_TYPE.getLocalizedName() });

        JTable table = new JTable(model);
        table.getTableHeader().setReorderingAllowed(false);
        table.getTableHeader().setResizingAllowed(false);
        table.getColumnModel().getColumn(0).setCellRenderer(new DefaultTableCellRenderer() {
            public Component getTableCellRendererComponent(JTable renderTable, Object value, boolean isSelected,
                    boolean hasFocus, int row, int column) {
                Component c = super.getTableCellRendererComponent(renderTable, value, isSelected, hasFocus, row,
                        column);

                if (value instanceof DeviceIf) {
                    if (((DeviceIf) value).getDeleteRemovedProgramsAutomatically() && !isSelected) {
                        c.setForeground(Color.red);
                    }
                }

                return c;
            }
        });

        int[] columnWidth = new int[5];

        for (int i = 0; i < columnWidth.length; i++) {
            columnWidth[i] = UiUtilities.getStringWidth(table.getFont(), model.getColumnName(i)) + 10;
        }

        for (DeviceIf device : devices) {
            Program[] deleted = device.checkProgramsAfterDataUpdateAndGetDeleted();

            if (deleted != null && deleted.length > 0) {
                for (Program p : deleted) {
                    if (device.getDeleteRemovedProgramsAutomatically() && !p.isExpired() && !p.isOnAir()) {
                        device.remove(UiUtilities.getLastModalChildOf(getParentFrame()), p);
                    } else {
                        device.removeProgramWithoutExecution(p);
                    }

                    if (!p.isExpired()) {
                        Object[] o = new Object[] { device, p.getChannel().getName(), p.getDateString(),
                                p.getTimeString(), p.getTitle() };

                        for (int i = 0; i < columnWidth.length; i++) {
                            columnWidth[i] = Math.max(columnWidth[i],
                                    UiUtilities.getStringWidth(table.getFont(), o[i].toString()) + 10);
                        }

                        model.addRow(o);
                    }
                }
            }

            device.getProgramList();
        }

        if (model.getRowCount() > 0) {
            int sum = 0;

            for (int i = 0; i < columnWidth.length; i++) {
                table.getColumnModel().getColumn(i).setPreferredWidth(columnWidth[i]);

                if (i < columnWidth.length - 1) {
                    table.getColumnModel().getColumn(i).setMaxWidth(columnWidth[i]);
                }

                sum += columnWidth[i];
            }

            JScrollPane scrollPane = new JScrollPane(table);
            scrollPane.setPreferredSize(new Dimension(450, 250));

            if (sum > 500) {
                table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
                scrollPane.getViewport().setPreferredSize(
                        new Dimension(sum, scrollPane.getViewport().getPreferredSize().height));
            }

            JButton export = new JButton(mLocalizer.msg("exportList", "Export list"));
            export.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    JFileChooser chooser = new JFileChooser();
                    chooser.setDialogType(JFileChooser.SAVE_DIALOG);
                    chooser.setFileFilter(new FileFilter() {
                        public boolean accept(File f) {
                            return f.isDirectory() || f.toString().toLowerCase().endsWith(".txt");
                        }

                        public String getDescription() {
                            return "*.txt";
                        }
                    });

                    chooser.setSelectedFile(new File("RemovedPrograms.txt"));
                    if (chooser.showSaveDialog(
                            UiUtilities.getLastModalChildOf(getParentFrame())) == JFileChooser.APPROVE_OPTION) {
                        if (chooser.getSelectedFile() != null) {
                            String file = chooser.getSelectedFile().getAbsolutePath();

                            if (!file.toLowerCase().endsWith(".txt") && file.indexOf('.') == -1) {
                                file = file + ".txt";
                            }

                            if (file.indexOf('.') != -1) {
                                try {
                                    RandomAccessFile write = new RandomAccessFile(file, "rw");
                                    write.setLength(0);

                                    String eolStyle = File.separator.equals("/") ? "\n" : "\r\n";

                                    for (int i = 0; i < model.getRowCount(); i++) {
                                        StringBuilder line = new StringBuilder();

                                        for (int j = 0; j < model.getColumnCount(); j++) {
                                            line.append(model.getValueAt(i, j)).append(' ');
                                        }

                                        line.append(eolStyle);

                                        write.writeBytes(line.toString());
                                    }

                                    write.close();
                                } catch (Exception ee) {
                                }
                            }
                        }
                    }
                }
            });

            Object[] message = {
                    mLocalizer.msg("deletedText",
                            "The data was changed and the following programs were deleted:"),
                    scrollPane, export };

            JOptionPane pane = new JOptionPane();
            pane.setMessage(message);
            pane.setMessageType(JOptionPane.PLAIN_MESSAGE);

            final JDialog d = pane.createDialog(UiUtilities.getLastModalChildOf(getParentFrame()),
                    mLocalizer.msg("CapturePlugin", "CapturePlugin") + " - "
                            + mLocalizer.msg("deletedTitle", "Deleted programs"));
            d.setResizable(true);
            d.setModal(false);

            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    d.setVisible(true);
                }
            });
        }
    }
}

From source file:MiGA.StatsSelection.java

public StatsSelection(final String[] organisms, final boolean flag) {

    setTitle("MiGA");
    setSize(800, 600);//  ww w.j a v a2  s.  c  om
    setLocationRelativeTo(null);
    setResizable(false);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Image im = Toolkit.getDefaultToolkit().getImage("ssr.png");
    this.setIconImage(im);

    try {
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    } catch (Exception e) {
    }

    countmono = new ArrayList<Integer>();
    countdi = new ArrayList<Integer>();
    counttri = new ArrayList<Integer>();
    counttetra = new ArrayList<Integer>();
    countpenta = new ArrayList<Integer>();
    counthexa = new ArrayList<Integer>();
    countmonore = new ArrayList<Integer>();
    countdire = new ArrayList<Integer>();
    counttrire = new ArrayList<Integer>();
    counttetrare = new ArrayList<Integer>();
    countpentare = new ArrayList<Integer>();
    counthexare = new ArrayList<Integer>();
    Amono = new ArrayList<Integer>();
    Tmono = new ArrayList<Integer>();
    Gmono = new ArrayList<Integer>();
    Cmono = new ArrayList<Integer>();
    Adi = new ArrayList<Integer>();
    Tdi = new ArrayList<Integer>();
    Gdi = new ArrayList<Integer>();
    Cdi = new ArrayList<Integer>();
    Atri = new ArrayList<Integer>();
    Ttri = new ArrayList<Integer>();
    Gtri = new ArrayList<Integer>();
    Ctri = new ArrayList<Integer>();
    Atetra = new ArrayList<Integer>();
    Ttetra = new ArrayList<Integer>();
    Gtetra = new ArrayList<Integer>();
    Ctetra = new ArrayList<Integer>();
    Apenta = new ArrayList<Integer>();
    Tpenta = new ArrayList<Integer>();
    Gpenta = new ArrayList<Integer>();
    Cpenta = new ArrayList<Integer>();
    Ahexa = new ArrayList<Integer>();
    Thexa = new ArrayList<Integer>();
    Ghexa = new ArrayList<Integer>();
    Chexa = new ArrayList<Integer>();

    for (int i = 0; i < organisms.length; i++) {
        countmono.add(0);
        countdi.add(0);
        counttri.add(0);
        counttetra.add(0);
        countpenta.add(0);
        counthexa.add(0);
        countmonore.add(0);
        countdire.add(0);
        counttrire.add(0);
        counttetrare.add(0);
        countpentare.add(0);
        counthexare.add(0);
        Amono.add(0);
        Tmono.add(0);
        Gmono.add(0);
        Cmono.add(0);
        Adi.add(0);
        Tdi.add(0);
        Gdi.add(0);
        Cdi.add(0);
        Atri.add(0);
        Ttri.add(0);
        Gtri.add(0);
        Ctri.add(0);
        Atetra.add(0);
        Ttetra.add(0);
        Gtetra.add(0);
        Ctetra.add(0);
        Apenta.add(0);
        Tpenta.add(0);
        Gpenta.add(0);
        Cpenta.add(0);
        Ahexa.add(0);
        Thexa.add(0);
        Ghexa.add(0);
        Chexa.add(0);
    }

    lab = new JLabel(
            "<html><b><p>To retrieve the sequence you want</p><p>simply copy and paste in the fields below</p><p>the data you were given in your result's file</p></b></html>");

    startlab = new JLabel("Start:");
    endlab = new JLabel("End:");
    titlelab = new JLabel("Chromosome or field:");

    startnum = new JTextField();
    startnum.setColumns(5);
    endnum = new JTextField();
    endnum.setColumns(5);
    titlef = new JTextField();
    titlef.setColumns(30);

    flankst = new JLabel("Flanking region before: ");
    flankst.setEnabled(false);
    flankst.setVisible(false);
    flankend = new JLabel("Flanking region after: ");
    flankend.setEnabled(false);
    flankend.setVisible(false);

    flankstn = new JTextField();
    flankstn.setColumns(5);
    flankstn.setEnabled(false);
    flankstn.setVisible(false);

    flankendn = new JTextField();
    flankendn.setColumns(5);
    flankendn.setEnabled(false);
    flankendn.setVisible(false);

    result = new JTextArea("", 6, 90);
    result.setText(" ");
    result.setEditable(false);
    result.setLineWrap(true);
    result.setAutoscrolls(true);
    sbrText = new JScrollPane(result);
    sbrText.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

    flk = new JCheckBox("Flanking Regions");
    flk.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            if (flk.isSelected()) {
                flankst.setEnabled(true);
                flankst.setVisible(true);
                flankend.setEnabled(true);
                flankend.setVisible(true);
                flankstn.setEnabled(true);
                flankstn.setVisible(true);
                flankendn.setEnabled(true);
                flankendn.setVisible(true);

            }
            if (!flk.isSelected()) {
                flankst.setEnabled(false);
                flankst.setVisible(false);
                flankend.setEnabled(false);
                flankend.setVisible(false);
                flankstn.setEnabled(false);
                flankstn.setVisible(false);
                flankendn.setEnabled(false);
                flankendn.setVisible(false);

            }
        }
    });

    retrieve = new JButton("Retrieve");
    retrieve.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            int start = 0;
            int end = 0;

            BufferedReader in = null;
            String location = "";
            String newlocation = "";
            String bufferpre = "";
            String bufferpost = "";
            String pre = "";
            String post = "";
            String mid = "";
            try {
                String[] locationarray = titlef.getText().split("data/");
                location = locationarray[0] + locationarray[1];
                newlocation = "";
                if (location.contains("local")) {
                    in = new BufferedReader(new FileReader(location + ".txt"));
                } else if (location.contains("organisms")) {
                    String[] loc = location.split("/");
                    try {
                        if (CheckForKaryotype(loc[1])) {
                            newlocation = loc[0] + "/" + loc[1] + "/chrom-" + loc[2] + "-slices.txt";
                        } else {
                            newlocation = loc[0] + "/" + loc[1] + "/slice-" + loc[2] + ".txt";
                        }
                    } catch (SQLException ex) {
                        Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                    } catch (ClassNotFoundException ex) {
                        Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                    }
                    in = new BufferedReader(new FileReader(newlocation));
                }
            } catch (FileNotFoundException ex) {
                msg.showMessageDialog(paneldown, "Wrong field", "Error", JOptionPane.ERROR_MESSAGE);
            }
            int rest = Integer.parseInt(startnum.getText()) % 20000;
            int lines = Integer.parseInt(startnum.getText()) / 20000;
            lines++;
            String buffer1 = "";

            for (int c = 0; c < lines; c++) {
                try {
                    buffer1 = in.readLine();
                } catch (IOException ex) {
                    Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                }
            }

            try {
                in.close();
            } catch (IOException ex) {
                Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
            }

            if (flk.isSelected()) {
                boolean tfs = false, tfe = false;
                int fs = 0, fe = 0;
                try {
                    fs = Integer.parseInt(flankstn.getText());
                    tfs = true;
                } catch (NumberFormatException ex) {
                    tfs = false;
                }

                try {
                    fe = Integer.parseInt(flankendn.getText());
                    tfe = true;
                } catch (NumberFormatException ex) {
                    tfe = false;
                }
                if (tfs && tfe) {

                    start = rest - Integer.parseInt(flankstn.getText());
                    end = rest + Integer.parseInt(endnum.getText()) - Integer.parseInt(startnum.getText())
                            + Integer.parseInt(flankendn.getText());
                    try {
                        in = new BufferedReader(new FileReader(newlocation));
                    } catch (FileNotFoundException ex) {
                        Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                    }
                    if (start < 0 && lines == 1) {
                        start = 0;
                    } else if (start < 0 && lines > 1) {
                        for (int j = 0; j < lines - 1; j++) {
                            try {
                                bufferpre = in.readLine();
                            } catch (IOException ex) {
                                Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                            }
                        }
                        pre = bufferpre.substring(20000 + start);
                        mid = buffer1.substring(0, end);
                        try {
                            in.close();
                        } catch (IOException ex) {
                            Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                        }
                    }
                    int cl = 0;
                    try {
                        cl = countlines(newlocation);
                    } catch (IOException ex) {
                        Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                    }
                    try {
                        in = new BufferedReader(new FileReader(newlocation));
                    } catch (FileNotFoundException ex) {
                        Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                    }
                    if (end > 20000 && lines == cl - 1) {
                        if (end - 20000 >= rest) {
                            end = rest;
                            mid = buffer1.substring(start);
                            post = bufferpost;
                        } else {
                            for (int j = 0; j < lines - 1; j++) {
                                try {
                                    bufferpost = in.readLine();
                                } catch (IOException ex) {
                                    Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null,
                                            ex);
                                }
                            }
                            mid = buffer1.substring(start);
                            post = bufferpre.substring(0, end - 20000);
                            try {
                                in.close();
                            } catch (IOException ex) {
                                Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                            }
                        }

                    } else if (end > 20000 && lines < cl - 1) {
                        for (int j = 0; j < lines + 1; j++) {
                            try {
                                bufferpost = in.readLine();
                            } catch (IOException ex) {
                                Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                            }
                        }
                        mid = buffer1.substring(start);
                        post = bufferpost.substring(0, end - 20000);
                        try {
                            in.close();
                        } catch (IOException ex) {
                            Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                        }
                    }

                    if (start >= 0 && (end <= 20000 || end <= rest)) {
                        mid = buffer1.substring(start, end);
                    }

                } else {
                    if (!tfs) {
                        msg.showMessageDialog(paneldown,
                                "Flanking region start is empty.\nFill in the gap or uncheck the\nflanking regions checkbox",
                                "Error", JOptionPane.ERROR_MESSAGE);
                    }
                    if (!tfe) {
                        msg.showMessageDialog(paneldown,
                                "Flanking region end is empty.\nFill in the gap or uncheck the\nflanking regions checkbox",
                                "Error", JOptionPane.ERROR_MESSAGE);
                    }
                }
                //
            }
            if (!flk.isSelected()) {
                start = rest;
                end = rest + Integer.parseInt(endnum.getText()) - Integer.parseInt(startnum.getText());
                try {
                    in = new BufferedReader(new FileReader(newlocation));
                } catch (FileNotFoundException ex) {
                    Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                }
                if (start < 0 && lines == 1) {
                    start = 0;
                } else if (start < 0 && lines > 1) {
                    for (int j = 0; j < lines - 1; j++) {
                        try {
                            bufferpre = in.readLine();
                        } catch (IOException ex) {
                            Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                        }
                    }
                    pre = bufferpre.substring(start);
                    mid = buffer1.substring(0, end);
                    try {
                        in.close();
                    } catch (IOException ex) {
                        Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }
                int cl = 0;
                try {
                    cl = countlines(newlocation);
                } catch (IOException ex) {
                    Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                }
                try {
                    in = new BufferedReader(new FileReader(newlocation));
                } catch (FileNotFoundException ex) {
                    Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                }
                if (end > 20000 && lines == cl - 1) {
                    if (end - 20000 >= rest) {
                        end = rest;
                        mid = buffer1.substring(start);
                        post = bufferpost;
                    } else {
                        for (int j = 0; j < lines - 1; j++) {
                            try {
                                bufferpost = in.readLine();
                            } catch (IOException ex) {
                                Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                            }
                        }
                        mid = buffer1.substring(start);
                        post = bufferpre.substring(0, end - 20000);
                        try {
                            in.close();
                        } catch (IOException ex) {
                            Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                        }
                    }

                } else if (end > 20000 && lines < cl - 1) {
                    for (int j = 0; j < lines + 1; j++) {
                        try {
                            bufferpost = in.readLine();
                        } catch (IOException ex) {
                            Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                        }
                    }
                    mid = buffer1.substring(start);
                    post = bufferpost.substring(0, end - 20000);
                    try {
                        in.close();
                    } catch (IOException ex) {
                        Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }

                if (start >= 0 && (end <= 20000 || end <= rest)) {
                    mid = buffer1.substring(start, end);
                }
            }

            result.setText(pre + mid + post);
        }
    });

    mono = new JCheckBox("Mononucleotide");
    di = new JCheckBox("Dinucleotide");
    tri = new JCheckBox("Trinucleotide");
    tetra = new JCheckBox("Tetranucleotide");
    penta = new JCheckBox("Pentanucleotide");
    hexa = new JCheckBox("Hexanucleotide");

    SSR = new ArrayList<String>();
    repeats = new ArrayList<Integer>();
    EndOfSsr = new ArrayList<Integer>();
    start = new ArrayList<Integer>();

    select = new JLabel("Select type: ");

    minimumssrlen = new JLabel("Minimum SSR length(bp)");
    minimumssrlen.setVisible(false);
    score = new JTextField();
    score.setColumns(5);
    score.setVisible(false);

    msg = new JOptionPane();

    gapmax = new JLabel("Maximum Mismatch length for Imperfect SSRs(bp)");
    gapmax.setVisible(false);
    max = new JTextField();
    max.setColumns(5);
    max.setVisible(false);

    minlenpregap = new JLabel("Minimum SSR length before given Mismatch length(bp)");
    minlenpregap.setVisible(false);
    minpregap = new JTextField();
    minpregap.setColumns(5);
    minpregap.setVisible(false);

    gapcomp = new JLabel("Maximum Inter-repeat R for Compound SSRs(bp)");
    gapcomp.setVisible(false);
    maxgapcomp = new JTextField();
    maxgapcomp.setColumns(5);
    maxgapcomp.setVisible(false);

    box1 = new JCheckBox("Perfect");
    box2 = new JCheckBox("Imperfect");
    box3 = new JCheckBox("Compound");
    com = new JCheckBox("Perfect Compound");
    incom = new JCheckBox("Imperfect Compound");

    box1.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            if (box2.isSelected() || box3.isSelected()) {
                if (box1.isSelected()) {
                    std.setEnabled(true);
                    no_st.setEnabled(true);
                    part_st.setEnabled(true);
                    full_st.setEnabled(true);

                    if (!box3.isSelected()) {
                        minimumssrlen.setVisible(true);
                        score.setVisible(true);
                    }
                }
                if (!box1.isSelected()) {
                    std.setEnabled(false);
                    no_st.setEnabled(false);
                    part_st.setEnabled(false);
                    full_st.setEnabled(false);
                    if (!box3.isSelected()) {
                        minimumssrlen.setVisible(false);
                        score.setVisible(false);
                    }
                }
            } else {
                if (box1.isSelected()) {
                    std.setEnabled(true);
                    no_st.setEnabled(true);
                    part_st.setEnabled(true);
                    full_st.setEnabled(true);
                    panel2.setVisible(true);
                    minimumssrlen.setVisible(true);
                    score.setVisible(true);
                }
                if (!box1.isSelected()) {
                    std.setEnabled(false);
                    no_st.setEnabled(false);
                    part_st.setEnabled(false);
                    full_st.setEnabled(false);
                    panel2.setVisible(false);
                    minimumssrlen.setVisible(false);
                    score.setVisible(false);
                }

            }
        }
    });

    box2.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            if (box1.isSelected() || box3.isSelected()) {
                if (box2.isSelected()) {
                    gapmax.setVisible(true);
                    max.setVisible(true);

                    minlenpregap.setVisible(true);
                    minpregap.setVisible(true);
                }
                if (!box2.isSelected()) {

                    gapmax.setVisible(false);
                    max.setVisible(false);

                    minlenpregap.setVisible(false);
                    minpregap.setVisible(false);

                }
            } else {
                if (box2.isSelected()) {
                    panel2.setVisible(true);
                    gapmax.setVisible(true);
                    max.setVisible(true);

                    minlenpregap.setVisible(true);
                    minpregap.setVisible(true);
                }
                if (!box2.isSelected()) {
                    panel2.setVisible(false);
                    gapmax.setVisible(false);
                    max.setVisible(false);

                    minlenpregap.setVisible(false);
                    minpregap.setVisible(false);
                }
            }
        }
    });

    box3.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            if (box1.isSelected() || box2.isSelected()) {
                if (box3.isSelected()) {
                    paneldownleft.setVisible(true);
                    if (!box1.isSelected()) {
                        minimumssrlen.setVisible(true);
                        score.setVisible(true);
                    }
                    gapcomp.setVisible(true);
                    maxgapcomp.setVisible(true);
                    com.setVisible(true);
                    incom.setVisible(true);

                }
                if (!box3.isSelected()) {
                    paneldownleft.setVisible(false);
                    gapcomp.setVisible(false);
                    maxgapcomp.setVisible(false);
                    if (!box1.isSelected()) {
                        minimumssrlen.setVisible(false);
                        score.setVisible(false);
                        com.setVisible(false);
                        incom.setVisible(false);
                    }
                }
            } else {
                if (box3.isSelected()) {
                    paneldownleft.setVisible(true);
                    panel2.setVisible(true);
                    minimumssrlen.setVisible(true);
                    score.setVisible(true);

                    gapcomp.setVisible(true);
                    maxgapcomp.setVisible(true);
                    com.setVisible(true);
                    incom.setVisible(true);
                }
                if (!box3.isSelected()) {
                    paneldownleft.setVisible(false);
                    panel2.setVisible(false);
                    minimumssrlen.setVisible(false);
                    score.setVisible(false);
                    gapcomp.setVisible(false);
                    maxgapcomp.setVisible(false);
                    com.setVisible(false);
                    incom.setVisible(false);
                }
            }
        }
    });
    /*
    incom.addActionListener(new ActionListener() {
            
    public void actionPerformed(ActionEvent e) {
    if (incom.isSelected()) {
    if (!box2.isSelected()) {
    gapmax.setVisible(true);
    max.setVisible(true);
            
    minlenpregap.setVisible(true);
    minpregap.setVisible(true);
    }
    }
    if (!incom.isSelected()) {
    if (!box2.isSelected()) {
    gapmax.setVisible(false);
    max.setVisible(false);
            
    minlenpregap.setVisible(false);
    minpregap.setVisible(false);
    }
    }
    }
    });*/

    std = new JPanel();
    no_st = new JRadioButton("Not Standardized");
    part_st = new JRadioButton("Partial Standardized");
    full_st = new JRadioButton("Full Standardized");
    no_st.setSelected(true);
    no_st.setEnabled(false);
    part_st.setEnabled(false);
    full_st.setEnabled(false);

    standard = new ButtonGroup();
    standard.add(no_st);
    standard.add(part_st);
    standard.add(full_st);

    show = new JButton("Run");
    show.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {

            setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));

            if (!box1.isSelected() && !box2.isSelected() && !box3.isSelected()) {
                msg.showMessageDialog(paneldown, "Please select a type", "Error", JOptionPane.ERROR_MESSAGE);
            }
            for (int i = 0; i < organisms.length; i++) {
                File f = new File("organisms/" + organisms[i] + "/stats/");
                if (f.exists()) {
                    f.delete();
                }
            }

            calendar = Calendar.getInstance();
            now = calendar.getTime();
            if (box1.isSelected()) {
                if (!score.getText().isEmpty()) {
                    boolean isnumber = false;
                    int minlen = 0;
                    try {
                        minlen = Integer.parseInt(score.getText());
                        isnumber = true;
                    } catch (NumberFormatException ex) {
                        isnumber = false;
                    }
                    if (isnumber) {
                        try {
                            getPerfectSSRs(organisms, minlen, flag);

                            for (int i = 0; i < organisms.length; i++) {

                                map = new HashMap<String, motifStats>();

                                String location = "";
                                String location2 = "";
                                PrintWriter out = null;

                                // 18/11/2013 added starting here
                                String filetype = "";
                                String filepro = "";

                                if (flag) {
                                    filetype = "organisms";
                                    filepro = "organisms/" + organisms[i] + "/data/";
                                    int ret = getOrganismStatus(organisms[i]);
                                    if (ret == -1)
                                        indexer = new Indexer(chromosomelist);
                                    else
                                        indexer = new Indexer(ret);

                                } else {
                                    filetype = "local";
                                    filepro = "local/" + organisms[i] + "/data/";
                                    String indexfile = "local/" + organisms[i] + "/index.txt";
                                    indexer = new Indexer(indexfile);
                                }
                                //List<String> files = getFiles(organisms[i], minlen, flag);

                                // 18/11/2013 added ending here
                                PrintWriter stats = null;
                                PrintWriter html = null;
                                PrintWriter motifstats = null;
                                PrintWriter motifhtml = null;
                                DataOutputStream lt = null;
                                if (filetype.contains("organisms")) {

                                    File f = new File("organisms/" + organisms[i] + "/stats/");
                                    if (!f.exists()) {
                                        f.mkdir();
                                    }

                                    stats = new PrintWriter(new FileWriter("organisms/" + organisms[i]
                                            + "/stats/" + "summary_statistics"
                                            + now.toString().replace(':', '_').replace(' ', '_') + ".txt",
                                            true));
                                    motifstats = new PrintWriter(new FileWriter("organisms/" + organisms[i]
                                            + "/stats/" + "motif_statistics"
                                            + now.toString().replace(':', '_').replace(' ', '_') + ".txt",
                                            true));
                                    motifhtml = new PrintWriter(new FileWriter("organisms/" + organisms[i]
                                            + "/stats/" + "motif_statistics"
                                            + now.toString().replace(':', '_').replace(' ', '_') + ".html",
                                            true));

                                    html = new PrintWriter(new FileWriter("organisms/" + organisms[i]
                                            + "/stats/" + "summary_statistics"
                                            + now.toString().replace(':', '_').replace(' ', '_') + ".html",
                                            true));

                                    lt = new DataOutputStream(new BufferedOutputStream(
                                            new FileOutputStream("organisms/" + organisms[i] + "/data/"
                                                    + now.toString().replace(':', '_').replace(' ', '_')
                                                    + ".perf")));

                                    File fi = new File("organisms/" + organisms[i] + "/results/");
                                    if (!fi.exists()) {
                                        fi.mkdir();
                                    }
                                    String toopen = "organisms/" + organisms[i] + "/results/allPerfect_"
                                            + now.toString().replace(':', '_').replace(' ', '_') + ".txt";
                                    location = toopen;
                                    location2 = "organisms/" + organisms[i] + "/stats/" + "motif_statistics"
                                            + now.toString().replace(':', '_').replace(' ', '_') + ".txt";
                                    out = new PrintWriter(toopen);

                                    out.println("Results for organism: " + organisms[i]
                                            + "\t Search Parameters --> Minimum SSR Length (bp): " + minlen);
                                    out.println(
                                            "   SSR      repeats             start-end  length  Path(../organism/data/chromosome)");

                                } else if (filetype.contains("local")) {
                                    File f = new File("local/" + organisms[i] + "/stats/");
                                    if (!f.exists()) {
                                        f.mkdir();
                                    }

                                    stats = new PrintWriter(new FileWriter("local/" + organisms[i] + "/stats/"
                                            + "summary_statistics"
                                            + now.toString().replace(':', '_').replace(' ', '_') + ".txt",
                                            true));
                                    motifstats = new PrintWriter(new FileWriter("local/" + organisms[i]
                                            + "/stats/" + "motif_statistics"
                                            + now.toString().replace(':', '_').replace(' ', '_') + ".txt",
                                            true));
                                    motifhtml = new PrintWriter(new FileWriter("local/" + organisms[i]
                                            + "/stats/" + "motif_statistics"
                                            + now.toString().replace(':', '_').replace(' ', '_') + ".html",
                                            true));
                                    lt = new DataOutputStream(new BufferedOutputStream(
                                            new FileOutputStream("local/" + organisms[i] + "/data/"
                                                    + now.toString().replace(':', '_').replace(' ', '_')
                                                    + ".perf")));
                                    html = new PrintWriter(new FileWriter("local/" + organisms[i] + "/stats/"
                                            + "summary_statistics"
                                            + now.toString().replace(':', '_').replace(' ', '_') + ".html",
                                            true));

                                    File fi = new File("local/" + organisms[i] + "/results/");
                                    if (!fi.exists()) {
                                        fi.mkdir();
                                    }
                                    String toopen = "local/" + organisms[i] + "/results/allPerfect_"
                                            + now.toString().replace(':', '_').replace(' ', '_') + ".txt";
                                    location = toopen;
                                    location2 = "local/" + organisms[i] + "/stats/" + "motif_statistics"
                                            + now.toString().replace(':', '_').replace(' ', '_') + ".txt";
                                    out = new PrintWriter(toopen);

                                    out.println("Results for project: " + organisms[i]
                                            + "\t Search Parameters --> Minimum SSR Length (bp): " + minlen);
                                    out.println(
                                            "   SSR      repeats             start-end  length  Path(../organism/data/chromosome)");
                                    out.println();
                                }

                                if (mono.isSelected()) {

                                    // 18/11/2013 added starting here

                                    if (flag) {
                                        filetype = "organisms";
                                        filepro = "organisms/" + organisms[i] + "/data/";
                                        int ret = getOrganismStatus(organisms[i]);
                                        if (ret == -1)
                                            indexer = new Indexer(chromosomelist);
                                        else
                                            indexer = new Indexer(ret);

                                    } else {
                                        filetype = "local";
                                        filepro = "local/" + organisms[i] + "/data/";
                                        String indexfile = "local/" + organisms[i] + "/index.txt";
                                        indexer = new Indexer(indexfile);
                                    }
                                    //List<String> files = getFiles(organisms[i], minlen, flag);
                                    //for (int j = 0; j < files.size(); j++) {
                                    while (indexer.hasNext()) {
                                        String files = filepro + indexer.getNextFileName();

                                        DataInputStream in = new DataInputStream(
                                                new BufferedInputStream(new FileInputStream(
                                                        files + "_" + minlen + "_monoPerfect.temp")));
                                        boolean eof = false;
                                        while (!eof) {
                                            try {

                                                String ssr = in.readUTF();
                                                int repeats = in.readInt();
                                                int end = in.readInt();
                                                out.println(cell(ssr, 6) + "  " + cell(repeats, 11) + "  "
                                                        + cell(Integer
                                                                .toString(end - repeats * ssr.length() + 1)
                                                                + "-" + Integer.toString(end + 1), 20)
                                                        + "  " + cell(repeats * ssr.length(), 6) + "  "
                                                        + files.substring(0, files.lastIndexOf('.')));

                                                // map for motifstats 
                                                if (!map.containsKey(ssr)) {
                                                    motifStats m = new motifStats(ssr, repeats);
                                                    map.put(ssr, m);
                                                } else {
                                                    map.get(ssr).update(repeats);
                                                }

                                            } catch (EOFException exc) {
                                                eof = true;
                                            }
                                        }
                                        in.close();
                                    }
                                }
                                if (di.isSelected()) {
                                    //for (int j = 0; j < files.size(); j++) {

                                    // 18/11/2013 added starting here

                                    if (flag) {
                                        filetype = "organisms";
                                        filepro = "organisms/" + organisms[i] + "/data/";
                                        int ret = getOrganismStatus(organisms[i]);
                                        if (ret == -1)
                                            indexer = new Indexer(chromosomelist);
                                        else
                                            indexer = new Indexer(ret);

                                    } else {
                                        filetype = "local";
                                        filepro = "local/" + organisms[i] + "/data/";
                                        String indexfile = "local/" + organisms[i] + "/index.txt";
                                        indexer = new Indexer(indexfile);
                                    }
                                    //List<String> files = getFiles(organisms[i], minlen, flag);
                                    while (indexer.hasNext()) {
                                        String files = filepro + indexer.getNextFileName();

                                        DataInputStream in = new DataInputStream(new BufferedInputStream(
                                                new FileInputStream(files + "_" + minlen + "_diPerfect.temp")));
                                        boolean eof = false;
                                        while (!eof) {
                                            try {
                                                String ssr = in.readUTF();
                                                int repeats = in.readInt();
                                                int end = in.readInt();
                                                //out.println("SSR: " + ssr + " repeats: " + repeats + " start-end " + (end - repeats * ssr.length()) + "-" + end + " Path(../data/chromosome): " + files.substring(0, files.lastIndexOf('.')));
                                                out.println(cell(ssr, 6) + "  " + cell(repeats, 11) + "  "
                                                        + cell(Integer
                                                                .toString(end - repeats * ssr.length() + 1)
                                                                + "-" + Integer.toString(end + 1), 20)
                                                        + "  " + cell(repeats * ssr.length(), 6) + "  "
                                                        + files.substring(0, files.lastIndexOf('.')));

                                                if (!map.containsKey(ssr)) {
                                                    motifStats m = new motifStats(ssr, repeats);
                                                    map.put(ssr, m);
                                                } else {
                                                    map.get(ssr).update(repeats);
                                                }

                                            } catch (EOFException exc) {
                                                eof = true;
                                            }
                                        }
                                        in.close();
                                    }
                                }
                                if (tri.isSelected()) {
                                    // 18/11/2013 added starting here

                                    if (flag) {
                                        filetype = "organisms";
                                        filepro = "organisms/" + organisms[i] + "/data/";
                                        int ret = getOrganismStatus(organisms[i]);
                                        if (ret == -1)
                                            indexer = new Indexer(chromosomelist);
                                        else
                                            indexer = new Indexer(ret);

                                    } else {
                                        filetype = "local";
                                        filepro = "local/" + organisms[i] + "/data/";
                                        String indexfile = "local/" + organisms[i] + "/index.txt";
                                        indexer = new Indexer(indexfile);
                                    }
                                    //for (int j = 0; j < files.size(); j++) {
                                    while (indexer.hasNext()) {
                                        String files = filepro + indexer.getNextFileName();

                                        DataInputStream in = new DataInputStream(
                                                new BufferedInputStream(new FileInputStream(
                                                        files + "_" + minlen + "_triPerfect.temp")));
                                        boolean eof = false;
                                        while (!eof) {
                                            try {
                                                String ssr = in.readUTF();
                                                int repeats = in.readInt();
                                                int end = in.readInt();
                                                //out.println("SSR: " + ssr + " repeats: " + repeats + " start-end " + (end - repeats * ssr.length()) + "-" + end + " Path(../data/chromosome): " + files.substring(0, files.lastIndexOf('.')));
                                                out.println(cell(ssr, 6) + "  " + cell(repeats, 11) + "  "
                                                        + cell(Integer
                                                                .toString(end - repeats * ssr.length() + 1)
                                                                + "-" + Integer.toString(end + 1), 20)
                                                        + "  " + cell(repeats * ssr.length(), 6) + "  "
                                                        + files.substring(0, files.lastIndexOf('.')));

                                                if (!map.containsKey(ssr)) {
                                                    motifStats m = new motifStats(ssr, repeats);
                                                    map.put(ssr, m);
                                                } else {
                                                    map.get(ssr).update(repeats);
                                                }

                                            } catch (EOFException exc) {
                                                eof = true;
                                            }
                                        }
                                        in.close();
                                    }
                                }
                                if (tetra.isSelected()) {
                                    // 18/11/2013 added starting here

                                    if (flag) {
                                        filetype = "organisms";
                                        filepro = "organisms/" + organisms[i] + "/data/";
                                        int ret = getOrganismStatus(organisms[i]);
                                        if (ret == -1)
                                            indexer = new Indexer(chromosomelist);
                                        else
                                            indexer = new Indexer(ret);

                                    } else {
                                        filetype = "local";
                                        filepro = "local/" + organisms[i] + "/data/";
                                        String indexfile = "local/" + organisms[i] + "/index.txt";
                                        indexer = new Indexer(indexfile);
                                    }
                                    while (indexer.hasNext()) {
                                        String files = filepro + indexer.getNextFileName();

                                        DataInputStream in = new DataInputStream(
                                                new BufferedInputStream(new FileInputStream(
                                                        files + "_" + minlen + "_tetraPerfect.temp")));
                                        boolean eof = false;
                                        while (!eof) {
                                            try {
                                                String ssr = in.readUTF();
                                                int repeats = in.readInt();
                                                int end = in.readInt();
                                                // out.println("SSR: " + ssr + " repeats: " + repeats + " start-end " + (end - repeats * ssr.length()) + "-" + end + " Path(../data/chromosome): " + files.substring(0, files.lastIndexOf('.')));
                                                out.println(cell(ssr, 6) + "  " + cell(repeats, 11) + "  "
                                                        + cell(Integer
                                                                .toString(end - repeats * ssr.length() + 1)
                                                                + "-" + Integer.toString(end + 1), 20)
                                                        + "  " + cell(repeats * ssr.length(), 6) + "  "
                                                        + files.substring(0, files.lastIndexOf('.')));

                                                if (!map.containsKey(ssr)) {
                                                    motifStats m = new motifStats(ssr, repeats);
                                                    map.put(ssr, m);
                                                } else {
                                                    map.get(ssr).update(repeats);
                                                }

                                            } catch (EOFException exc) {
                                                eof = true;
                                            }
                                        }
                                        in.close();
                                    }
                                }
                                if (penta.isSelected()) {
                                    // 18/11/2013 added starting here

                                    if (flag) {
                                        filetype = "organisms";
                                        filepro = "organisms/" + organisms[i] + "/data/";
                                        int ret = getOrganismStatus(organisms[i]);
                                        if (ret == -1)
                                            indexer = new Indexer(chromosomelist);
                                        else
                                            indexer = new Indexer(ret);

                                    } else {
                                        filetype = "local";
                                        filepro = "local/" + organisms[i] + "/data/";
                                        String indexfile = "local/" + organisms[i] + "/index.txt";
                                        indexer = new Indexer(indexfile);
                                    }
                                    while (indexer.hasNext()) {
                                        String files = filepro + indexer.getNextFileName();

                                        DataInputStream in = new DataInputStream(
                                                new BufferedInputStream(new FileInputStream(
                                                        files + "_" + minlen + "_pentaPerfect.temp")));
                                        boolean eof = false;
                                        while (!eof) {
                                            try {
                                                String ssr = in.readUTF();
                                                int repeats = in.readInt();
                                                int end = in.readInt();
                                                //  out.println("SSR: " + ssr + " repeats: " + repeats + " start-end " + (end - repeats * ssr.length()) + "-" + end + " Path(../data/chromosome): " + files.substring(0, files.lastIndexOf('.')));
                                                out.println(cell(ssr, 6) + "  " + cell(repeats, 11) + "  "
                                                        + cell(Integer
                                                                .toString(end - repeats * ssr.length() + 1)
                                                                + "-" + Integer.toString(end + 1), 20)
                                                        + "  " + cell(repeats * ssr.length(), 6) + "  "
                                                        + files.substring(0, files.lastIndexOf('.')));

                                                if (!map.containsKey(ssr)) {
                                                    motifStats m = new motifStats(ssr, repeats);
                                                    map.put(ssr, m);
                                                } else {
                                                    map.get(ssr).update(repeats);
                                                }

                                            } catch (EOFException exc) {
                                                eof = true;
                                            }
                                        }
                                        in.close();
                                    }
                                }
                                if (hexa.isSelected()) {
                                    // 18/11/2013 added starting here

                                    if (flag) {
                                        filetype = "organisms";
                                        filepro = "organisms/" + organisms[i] + "/data/";
                                        int ret = getOrganismStatus(organisms[i]);
                                        if (ret == -1)
                                            indexer = new Indexer(chromosomelist);
                                        else
                                            indexer = new Indexer(ret);

                                    } else {
                                        filetype = "local";
                                        filepro = "local/" + organisms[i] + "/data/";
                                        String indexfile = "local/" + organisms[i] + "/index.txt";
                                        indexer = new Indexer(indexfile);
                                    }
                                    while (indexer.hasNext()) {
                                        String files = filepro + indexer.getNextFileName();

                                        DataInputStream in = new DataInputStream(
                                                new BufferedInputStream(new FileInputStream(
                                                        files + "_" + minlen + "_hexaPerfect.temp")));
                                        boolean eof = false;
                                        while (!eof) {
                                            try {
                                                String ssr = in.readUTF();
                                                int repeats = in.readInt();
                                                int end = in.readInt();
                                                // out.println("SSR: " + ssr + " repeats: " + repeats + " start-end " + (end - repeats * ssr.length()) + "-" + end + " Path(../data/chromosome): " + files.substring(0, files.lastIndexOf('.')));
                                                out.println(cell(ssr, 6) + "  " + cell(repeats, 11) + "  "
                                                        + cell(Integer
                                                                .toString(end - repeats * ssr.length() + 1)
                                                                + "-" + Integer.toString(end + 1), 20)
                                                        + "  " + cell(repeats * ssr.length(), 6) + "  "
                                                        + files.substring(0, files.lastIndexOf('.')));

                                                if (!map.containsKey(ssr)) {
                                                    motifStats m = new motifStats(ssr, repeats);
                                                    map.put(ssr, m);
                                                } else {
                                                    map.get(ssr).update(repeats);
                                                }

                                            } catch (EOFException exc) {
                                                eof = true;
                                            }
                                        }
                                        in.close();
                                    }
                                }

                                out.close();
                                Runtime.getRuntime().exec("notepad " + location);

                                DecimalFormat round = new DecimalFormat("#.###");

                                html.println("<html><h1>******* Perfect SSRs *******</h1>");
                                html.println("<h4>Results for project: " + organisms[i]
                                        + "</h4><h4>Search Parameters --> Minimum SSR Length (bp): " + minlen
                                        + "</h4>");
                                html.println(
                                        "<table border=\"1\"><tr><td><b>motif</b></td><td><b>count</b></td><td><b>bp</b></td><td><b>A%</b></td><td><b>T%</b></td><td><b>C%</b></td><td><b>G%</b></td><td><b>Relative Frequency</b></td><td><b>Abundance</b></td><td><b>Relative Abundance</b></td></tr>");
                                stats.println("******* Perfect SSRs *******");
                                stats.println("Results for project: " + organisms[i]
                                        + "\n Search Parameters --> Minimum SSR Length (bp): " + minlen);

                                stats.println(
                                        " ____________________________________________________________________________________________________________ ");
                                stats.println(
                                        "|       |       |            |       |       |       |       |   Relative    |               |   Relative    |");
                                stats.println(
                                        "| motif | count |     bp     |   A%  |   T%  |   C%  |   G%  |   Frequency   |   Abundance   |   Abundance   |");
                                stats.println(
                                        "|=======|=======|============|=======|=======|=======|=======|===============|===============|===============|");
                                int totalcount = 0;
                                long bpcount = 0;
                                int Aperc = 0;
                                int Tperc = 0;
                                int Gperc = 0;
                                int Cperc = 0;
                                float relfreq = 0;
                                float abfreq = 0;
                                long seqcount = 0;
                                if (mono.isSelected()) {
                                    totalcount += countmono.get(i);
                                    bpcount += countmonore.get(i);
                                }
                                if (di.isSelected()) {
                                    totalcount += countdi.get(i);
                                    bpcount += countdire.get(i) * 2;
                                }
                                if (tri.isSelected()) {
                                    totalcount += counttri.get(i);
                                    bpcount += counttrire.get(i) * 3;
                                }
                                if (tetra.isSelected()) {
                                    totalcount += counttetra.get(i);
                                    bpcount += counttetrare.get(i) * 4;
                                }
                                if (penta.isSelected()) {
                                    totalcount += countpenta.get(i);
                                    bpcount += countpentare.get(i) * 5;
                                }
                                if (hexa.isSelected()) {
                                    totalcount += counthexa.get(i);
                                    bpcount += counthexare.get(i) * 6;
                                }
                                try {
                                    Class.forName("com.mysql.jdbc.Driver");
                                } catch (ClassNotFoundException ex) {
                                    Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null,
                                            ex);
                                }
                                Connection con = null;
                                try {
                                    con = DriverManager.getConnection("jdbc:mysql://localhost:3306", "biouser",
                                            "thesis2012");
                                } catch (SQLException ex) {
                                    Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null,
                                            ex);
                                }
                                Statement st = null;
                                try {
                                    st = con.createStatement();
                                } catch (SQLException ex) {
                                    Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null,
                                            ex);
                                }
                                st.executeUpdate("use lobid");

                                seqcount = 0;

                                if (filetype.contains("organisms")) {
                                    ResultSet rs = st.executeQuery(
                                            "SELECT end FROM slices INNER JOIN organism WHERE slices.org_id=organism.org_id AND organism.name='"
                                                    + organisms[i] + "'");
                                    while (rs.next()) {
                                        seqcount += Long.parseLong(rs.getString(1));
                                    }
                                } else if (filetype.contains("local")) {
                                    BufferedReader in = new BufferedReader(
                                            new FileReader("local/" + organisms[i] + "/index.txt"));
                                    int count = countlines("local/" + organisms[i] + "/index.txt");
                                    for (int c = 0; c < count; c++) {
                                        String temp = in.readLine();
                                        BufferedReader tmp = new BufferedReader(
                                                new FileReader("local/" + organisms[i] + "/" + temp + ".txt"));

                                        boolean eof = false;
                                        while (!eof) {
                                            String s = tmp.readLine();
                                            if (s != null) {
                                                seqcount += s.length();
                                            } else {
                                                eof = true;
                                            }
                                        }
                                        tmp.close();
                                    }
                                }

                                if (mono.isSelected()) {
                                    Aperc += Amono.get(i);
                                    Tperc += Tmono.get(i);
                                    Gperc += Gmono.get(i);
                                    Cperc += Cmono.get(i);
                                    //lt.writeInt(countmono);lt.writeInt(countmonore);lt.writeFloat((float)Amono*100/countmonore);lt.writeFloat((float)Tmono*100/countmonore);lt.writeFloat((float)Gmono*100/countmonore);lt.writeFloat((float)Cmono*100/countmonore);lt.writeFloat((float) countmono / totalcount);lt.writeFloat((float) countmonore / seqcount);lt.writeFloat((float) countmonore / bpcount);
                                    stats.printf("|mono   |" + cell(Integer.toString(countmono.get(i)), 7) + "|"
                                            + cell(Integer.toString(1 * countmonore.get(i)), 12)
                                            + "|%s|%s|%s|%s|" + cell((float) countmono.get(i) / totalcount, 15)
                                            + "|" + cell((float) countmonore.get(i) / seqcount, 15) + "|"
                                            + cell((float) countmonore.get(i) / bpcount, 15) + "|\n",
                                            cell((float) (Amono.get(i) * 100) / (countmonore.get(i)), 7),
                                            cell((float) (Tmono.get(i) * 100) / (countmonore.get(i)), 7),
                                            cell((float) (Cmono.get(i) * 100) / (countmonore.get(i)), 7),
                                            cell((float) (Gmono.get(i) * 100) / (countmonore.get(i)), 7));
                                    stats.println(
                                            "|-------|-------|------------|-------|-------|-------|-------|---------------|---------------|---------------|");
                                    html.println("<tr><td><b>mono</b></td><td>" + countmono.get(i) + "</td><td>"
                                            + (1 * countmonore.get(i)) + "</td><td>"
                                            + round.format((float) (Amono.get(i) * 100) / (countmonore.get(i)))
                                            + "</td><td>"
                                            + round.format((float) (Tmono.get(i) * 100) / (countmonore.get(i)))
                                            + "</td><td>"
                                            + round.format((float) (Cmono.get(i) * 100) / (countmonore.get(i)))
                                            + "</td><td>"
                                            + round.format((float) (Gmono.get(i) * 100) / (countmonore.get(i)))
                                            + "</td><td>" + round.format((float) countmono.get(i) / totalcount)
                                            + "</td><td>" + round.format((float) countmonore.get(i) / seqcount)
                                            + "</td><td>" + round.format((float) countmonore.get(i) / bpcount)
                                            + "</td></tr>");
                                }
                                if (di.isSelected()) {
                                    Aperc += Adi.get(i);
                                    Tperc += Tdi.get(i);
                                    Gperc += Gdi.get(i);
                                    Cperc += Cdi.get(i);

                                    //lt.writeInt(countdi);lt.writeInt(countdire*2);lt.writeFloat((float)Adi*100/countdire*2);lt.writeFloat((float)Tdi*100/countdire*2);lt.writeFloat((float)Gdi*100/countdire*2);lt.writeFloat((float)Cdi*100/countdire*2);lt.writeFloat((float) countdi / totalcount);lt.writeFloat((float) countdire*2 / seqcount);lt.writeFloat((float) countdire*2 / bpcount);
                                    stats.printf("|di     |" + cell(Integer.toString(countdi.get(i)), 7) + "|"
                                            + cell(Integer.toString(countdire.get(i) * 2), 12) + "|%s|%s|%s|%s|"
                                            + cell((float) countdi.get(i) / totalcount, 15) + "|"
                                            + cell((float) countdire.get(i) * 2 / seqcount, 15) + "|"
                                            + cell((float) countdire.get(i) * 2 / bpcount, 15) + "|\n",
                                            cell((float) (Adi.get(i) * 100) / (countdire.get(i) * 2), 7),
                                            cell((float) (Tdi.get(i) * 100) / (countdire.get(i) * 2), 7),
                                            cell((float) (Cdi.get(i) * 100) / (countdire.get(i) * 2), 7),
                                            cell((float) (Gdi.get(i) * 100) / (countdire.get(i) * 2), 7));
                                    stats.println(
                                            "|-------|-------|------------|-------|-------|-------|-------|---------------|---------------|---------------|");
                                    html.println("<tr><td><b>di</b></td><td>" + countdi.get(i) + "</td><td>"
                                            + (2 * countdire.get(i)) + "</td><td>"
                                            + round.format((float) (Adi.get(i) * 100) / (2 * countdire.get(i)))
                                            + "</td><td>"
                                            + round.format((float) (Tdi.get(i) * 100) / (2 * countdire.get(i)))
                                            + "</td><td>"
                                            + round.format((float) (Cdi.get(i) * 100) / (2 * countdire.get(i)))
                                            + "</td><td>"
                                            + round.format((float) (Gdi.get(i) * 100) / (2 * countdire.get(i)))
                                            + "</td><td>" + round.format((float) countdi.get(i) / totalcount)
                                            + "</td><td>"
                                            + round.format((float) 2 * countdire.get(i) / seqcount)
                                            + "</td><td>" + round.format((float) 2 * countdire.get(i) / bpcount)
                                            + "</td></tr>");
                                }
                                if (tri.isSelected()) {
                                    Aperc += Atri.get(i);
                                    Tperc += Ttri.get(i);
                                    Gperc += Gtri.get(i);
                                    Cperc += Ctri.get(i);
                                    //lt.writeInt(counttri);lt.writeInt(counttrire*3);lt.writeFloat((float)Atri*100/counttrire*3);lt.writeFloat((float)Ttri*100/counttrire*3);lt.writeFloat((float)Gtri*100/counttrire*3);lt.writeFloat((float)Ctri*100/counttrire*3);lt.writeFloat((float) counttri / totalcount);lt.writeFloat((float) counttrire*3 / seqcount);lt.writeFloat((float) counttrire*3 / bpcount);
                                    stats.printf("|tri    |" + cell(Integer.toString(counttri.get(i)), 7) + "|"
                                            + cell(Integer.toString(counttrire.get(i) * 3), 12)
                                            + "|%s|%s|%s|%s|" + cell((float) counttri.get(i) / totalcount, 15)
                                            + "|" + cell((float) counttrire.get(i) * 3 / seqcount, 15) + "|"
                                            + cell((float) counttrire.get(i) * 3 / bpcount, 15) + "|\n",
                                            cell((float) (Atri.get(i) * 100) / (counttrire.get(i) * 3), 7),
                                            cell((float) (Ttri.get(i) * 100) / (counttrire.get(i) * 3), 7),
                                            cell((float) (Ctri.get(i) * 100) / (counttrire.get(i) * 3), 7),
                                            cell((float) (Gtri.get(i) * 100) / (counttrire.get(i) * 3), 7));
                                    stats.println(
                                            "|-------|-------|------------|-------|-------|-------|-------|---------------|---------------|---------------|");
                                    html.println("<tr><td><b>tri</b></td><td>" + counttri.get(i) + "</td><td>"
                                            + (3 * counttrire.get(i)) + "</td><td>"
                                            + round.format(
                                                    (float) (Atri.get(i) * 100) / (3 * counttrire.get(i)))
                                            + "</td><td>"
                                            + round.format(
                                                    (float) (Ttri.get(i) * 100) / (3 * counttrire.get(i)))
                                            + "</td><td>"
                                            + round.format(
                                                    (float) (Ctri.get(i) * 100) / (3 * counttrire.get(i)))
                                            + "</td><td>"
                                            + round.format(
                                                    (float) (Gtri.get(i) * 100) / (3 * counttrire.get(i)))
                                            + "</td><td>" + round.format((float) counttri.get(i) / totalcount)
                                            + "</td><td>"
                                            + round.format((float) 3 * counttrire.get(i) / seqcount)
                                            + "</td><td>"
                                            + round.format((float) 3 * counttrire.get(i) / bpcount)
                                            + "</td></tr>");
                                }
                                if (tetra.isSelected()) {
                                    Aperc += Atetra.get(i);
                                    Tperc += Ttetra.get(i);
                                    Gperc += Gtetra.get(i);
                                    Cperc += Ctetra.get(i);
                                    //lt.writeInt(counttetra);lt.writeInt(counttetrare*4);lt.writeFloat((float)Atetra*100/counttetrare*4);lt.writeFloat((float)Ttetra*100/counttetrare*4);lt.writeFloat((float)Gtetra*100/counttetrare*4);lt.writeFloat((float)Ctetra*100/counttetrare*4);lt.writeFloat((float) counttetra / totalcount);lt.writeFloat((float) counttetrare*4 / seqcount);lt.writeFloat((float) counttetrare*4 / bpcount);
                                    stats.printf("|tetra  |" + cell(Integer.toString(counttetra.get(i)), 7)
                                            + "|" + cell(Integer.toString(counttetrare.get(i) * 4), 12)
                                            + "|%s|%s|%s|%s|" + cell((float) counttetra.get(i) / totalcount, 15)
                                            + "|" + cell((float) counttetrare.get(i) * 4 / seqcount, 15) + "|"
                                            + cell((float) counttetrare.get(i) * 4 / bpcount, 15) + "|\n",
                                            cell((float) (Atetra.get(i) * 100) / (counttetrare.get(i) * 4), 7),
                                            cell((float) (Ttetra.get(i) * 100) / (counttetrare.get(i) * 4), 7),
                                            cell((float) (Ctetra.get(i) * 100) / (counttetrare.get(i) * 4), 7),
                                            cell((float) (Gtetra.get(i) * 100) / (counttetrare.get(i) * 4), 7));
                                    stats.println(
                                            "|-------|-------|------------|-------|-------|-------|-------|---------------|---------------|---------------|");
                                    html.println("<tr><td><b>tetra</b></td><td>" + counttetra.get(i)
                                            + "</td><td>" + (4 * counttetrare.get(i)) + "</td><td>"
                                            + round.format(
                                                    (float) (Atetra.get(i) * 100) / (4 * counttetrare.get(i)))
                                            + "</td><td>"
                                            + round.format(
                                                    (float) (Ttetra.get(i) * 100) / (4 * counttetrare.get(i)))
                                            + "</td><td>"
                                            + round.format(
                                                    (float) (Ctetra.get(i) * 100) / (4 * counttetrare.get(i)))
                                            + "</td><td>"
                                            + round.format(
                                                    (float) (Gtetra.get(i) * 100) / (4 * counttetrare.get(i)))
                                            + "</td><td>" + round.format((float) counttetra.get(i) / totalcount)
                                            + "</td><td>"
                                            + round.format((float) 4 * counttetrare.get(i) / seqcount)
                                            + "</td><td>"
                                            + round.format((float) 4 * counttetrare.get(i) / bpcount)
                                            + "</td></tr>");
                                }
                                if (penta.isSelected()) {
                                    Aperc += Apenta.get(i);
                                    Tperc += Tpenta.get(i);
                                    Gperc += Gpenta.get(i);
                                    Cperc += Cpenta.get(i);
                                    //lt.writeInt(countpenta);lt.writeInt(countpentare*5);lt.writeFloat((float)Apenta*100/countpentare*5);lt.writeFloat((float)Tpenta*100/countpentare*5);lt.writeFloat((float)Gpenta*100/countpentare*5);lt.writeFloat((float)Cpenta*100/countpentare*5);lt.writeFloat((float) countpenta / totalcount);lt.writeFloat((float) countpentare*5 / seqcount);lt.writeFloat((float) countpentare*5 / bpcount);
                                    stats.printf("|penta  |" + cell(Integer.toString(countpenta.get(i)), 7)
                                            + "|" + cell(Integer.toString(countpentare.get(i) * 5), 12)
                                            + "|%s|%s|%s|%s|" + cell((float) countpenta.get(i) / totalcount, 15)
                                            + "|" + cell((float) countpentare.get(i) * 5 / seqcount, 15) + "|"
                                            + cell((float) countpentare.get(i) * 5 / bpcount, 15) + "|\n",
                                            cell((float) (Apenta.get(i) * 100) / (countpentare.get(i) * 5), 7),
                                            cell((float) (Tpenta.get(i) * 100) / (countpentare.get(i) * 5), 7),
                                            cell((float) (Cpenta.get(i) * 100) / (countpentare.get(i) * 5), 7),
                                            cell((float) (Gpenta.get(i) * 100) / (countpentare.get(i) * 5), 7));
                                    stats.println(
                                            "|-------|-------|------------|-------|-------|-------|-------|---------------|---------------|---------------|");
                                    html.println("<tr><td><b>penta</b></td><td>" + countpenta.get(i)
                                            + "</td><td>" + (5 * countpentare.get(i)) + "</td><td>"
                                            + round.format(
                                                    (float) (Apenta.get(i) * 100) / (5 * countpentare.get(i)))
                                            + "</td><td>"
                                            + round.format(
                                                    (float) (Tpenta.get(i) * 100) / (5 * countpentare.get(i)))
                                            + "</td><td>"
                                            + round.format(
                                                    (float) (Cpenta.get(i) * 100) / (5 * countpentare.get(i)))
                                            + "</td><td>"
                                            + round.format(
                                                    (float) (Gpenta.get(i) * 100) / (5 * countpentare.get(i)))
                                            + "</td><td>" + round.format((float) countpenta.get(i) / totalcount)
                                            + "</td><td>"
                                            + round.format((float) 5 * countpentare.get(i) / seqcount)
                                            + "</td><td>"
                                            + round.format((float) 5 * countpentare.get(i) / bpcount)
                                            + "</td></tr>");
                                }
                                if (hexa.isSelected()) {
                                    Aperc += Ahexa.get(i);
                                    Tperc += Thexa.get(i);
                                    Gperc += Ghexa.get(i);
                                    Cperc += Chexa.get(i);
                                    //lt.writeInt(counthexa);lt.writeInt(counthexare*6);lt.writeFloat((float)Ahexa*100/counthexare*6);lt.writeFloat((float)Thexa*100/counthexare*6);lt.writeFloat((float)Ghexa*100/counthexare*6);lt.writeFloat((float)Chexa*100/counthexare*6);lt.writeFloat((float) counthexa / totalcount);lt.writeFloat((float) counthexare*6 / seqcount);lt.writeFloat((float) counthexare*6 / bpcount);
                                    stats.printf("|hexa   |" + cell(Integer.toString(counthexa.get(i)), 7) + "|"
                                            + cell(Integer.toString(counthexare.get(i) * 6), 12)
                                            + "|%s|%s|%s|%s|" + cell((float) counthexa.get(i) / totalcount, 15)
                                            + "|" + cell((float) counthexare.get(i) * 6 / seqcount, 15) + "|"
                                            + cell((float) counthexare.get(i) * 6 / bpcount, 15) + "|\n",
                                            cell((float) (Ahexa.get(i) * 100) / (counthexare.get(i) * 6), 7),
                                            cell((float) (Thexa.get(i) * 100) / (counthexare.get(i) * 6), 7),
                                            cell((float) (Chexa.get(i) * 100) / (counthexare.get(i) * 6), 7),
                                            cell((float) (Ghexa.get(i) * 100) / (counthexare.get(i) * 6), 7));
                                    stats.println(
                                            "|-------|-------|------------|-------|-------|-------|-------|---------------|---------------|---------------|");
                                    html.println("<tr><td><b>hexa</b></td><td>" + counthexa.get(i) + "</td><td>"
                                            + (6 * counthexare.get(i)) + "</td><td>"
                                            + round.format(
                                                    (float) (Ahexa.get(i) * 100) / (6 * counthexare.get(i)))
                                            + "</td><td>"
                                            + round.format(
                                                    (float) (Thexa.get(i) * 100) / (6 * counthexare.get(i)))
                                            + "</td><td>"
                                            + round.format(
                                                    (float) (Chexa.get(i) * 100) / (6 * counthexare.get(i)))
                                            + "</td><td>"
                                            + round.format(
                                                    (float) (Ghexa.get(i) * 100) / (6 * counthexare.get(i)))
                                            + "</td><td>" + round.format((float) counthexa.get(i) / totalcount)
                                            + "</td><td>"
                                            + round.format((float) 6 * counthexare.get(i) / seqcount)
                                            + "</td><td>"
                                            + round.format((float) 6 * counthexare.get(i) / bpcount)
                                            + "</td></tr>");
                                }

                                if (mono.isSelected()) {
                                    relfreq += (float) countmono.get(i) / totalcount;
                                    abfreq += (float) countmonore.get(i) / bpcount;
                                }
                                if (di.isSelected()) {
                                    relfreq += (float) countdi.get(i) / totalcount;
                                    abfreq += (float) countdire.get(i) * 2 / bpcount;
                                }
                                if (tri.isSelected()) {
                                    relfreq += (float) counttri.get(i) / totalcount;
                                    abfreq += (float) counttrire.get(i) * 3 / bpcount;
                                }
                                if (tetra.isSelected()) {
                                    relfreq += (float) counttetra.get(i) / totalcount;
                                    abfreq += (float) counttetrare.get(i) * 4 / bpcount;
                                }
                                if (penta.isSelected()) {
                                    relfreq += (float) countpenta.get(i) / totalcount;
                                    abfreq += (float) countpentare.get(i) * 5 / bpcount;
                                }
                                if (hexa.isSelected()) {
                                    relfreq += (float) counthexa.get(i) / totalcount;
                                    abfreq += (float) counthexare.get(i) * 6 / bpcount;
                                }

                                Globals.A = Aperc;
                                Globals.T = Tperc;
                                Globals.G = Gperc;
                                Globals.C = Cperc;

                                lt.writeLong(seqcount);
                                lt.writeInt(totalcount);
                                lt.writeLong(bpcount);
                                lt.writeInt(Aperc);
                                lt.writeInt(Tperc);
                                lt.writeInt(Gperc);
                                lt.writeInt(Cperc);
                                stats.println("|TOTAL  |" + cell(Integer.toString(totalcount), 7) + "|"
                                        + cell(Long.toString(bpcount), 12) + "|"
                                        + cell((float) Aperc * 100 / bpcount, 7) + "|"
                                        + cell((float) Tperc * 100 / bpcount, 7) + "|"
                                        + cell((float) Cperc * 100 / bpcount, 7) + "|"
                                        + cell((float) Gperc * 100 / bpcount, 7) + "|" + cell(relfreq, 15) + "|"
                                        + cell((float) bpcount / seqcount, 15) + "|" + cell((float) abfreq, 15)
                                        + "|");
                                stats.println(
                                        "|_______|_______|____________|_______|_______|_______|_______|_______________|_______________|_______________|");
                                stats.println("Genome length (bp): " + seqcount);
                                stats.println("Relative Frequency: Count of each motif type / total SSR count");
                                stats.println("Abundance: bp of each motif type / total sequence bp");
                                stats.println(
                                        "Relative Abundance: bp of each motif type / total microsatellites bp");
                                stats.println();
                                stats.println();
                                stats.close();
                                lt.close();

                                html.println("<tr><td><b>TOTAL</b></td><td>" + totalcount + "</td><td>"
                                        + bpcount + "</td><td>" + round.format((float) Aperc * 100 / bpcount)
                                        + "</td><td>" + round.format((float) Tperc * 100 / bpcount)
                                        + "</td><td>" + round.format((float) Cperc * 100 / bpcount)
                                        + "</td><td>" + round.format((float) Gperc * 100 / bpcount)
                                        + "</td><td>" + round.format((float) relfreq) + "</td><td>"
                                        + round.format((float) bpcount / seqcount) + "</td><td>"
                                        + round.format((float) abfreq) + "</td></tr></table></html>");
                                html.close();

                                // it = map.keySet().iterator();

                                for (String key : map.keySet()) {
                                    map.get(key).refresh();
                                }

                                List<String> n1 = new ArrayList<String>();
                                List<String> n2 = new ArrayList<String>();
                                List<String> n3 = new ArrayList<String>();
                                List<String> n4 = new ArrayList<String>();
                                List<String> n5 = new ArrayList<String>();
                                List<String> n6 = new ArrayList<String>();

                                Iterator<String> it = map.keySet().iterator();

                                while (it.hasNext()) {
                                    String next = it.next();
                                    int len = next.length();
                                    if (len == 1)
                                        n1.add(next);
                                    else if (len == 2)
                                        n2.add(next);
                                    else if (len == 3)
                                        n3.add(next);
                                    else if (len == 4)
                                        n4.add(next);
                                    else if (len == 5)
                                        n5.add(next);
                                    else if (len == 6)
                                        n6.add(next);

                                }

                                Collections.sort(n1);
                                Collections.sort(n2);
                                Collections.sort(n3);
                                Collections.sort(n4);
                                Collections.sort(n5);
                                Collections.sort(n6);

                                boolean[] id1 = new boolean[n1.size()];
                                boolean[] id2 = new boolean[n2.size()];
                                boolean[] id3 = new boolean[n3.size()];
                                boolean[] id4 = new boolean[n4.size()];
                                boolean[] id5 = new boolean[n5.size()];
                                boolean[] id6 = new boolean[n6.size()];

                                motifhtml.println("<html><head><title>Motif Statistics</title></head><body>");
                                int stand = checkStandardize();
                                // stand=2; debug
                                if (stand == 0) {
                                    motifstats.println("**** Not Standardized ****");
                                    motifhtml.println("<h1>**** Not Standardized ****</h1>");
                                    Arrays.fill(id1, true);
                                    Arrays.fill(id2, true);
                                    Arrays.fill(id3, true);
                                    Arrays.fill(id4, true);
                                    Arrays.fill(id5, true);
                                    Arrays.fill(id6, true);
                                } else {
                                    if (stand == 1) {
                                        motifstats.println("**** Partially Standardized ****");
                                        motifhtml.println("<h1>**** Partially Standardized ****</h1>");
                                        matrix = new parser(1);
                                    }
                                    if (stand == 2) {
                                        motifstats.println("**** Fully Standardized ****");
                                        motifhtml.println("<h1>**** Fully Standardized ****</h1>");
                                        matrix = new parser(2);
                                    }

                                    Arrays.fill(id1, true);
                                    Arrays.fill(id2, true);
                                    Arrays.fill(id3, true);
                                    Arrays.fill(id4, true);
                                    Arrays.fill(id5, true);
                                    Arrays.fill(id6, true);

                                    for (int n = 0; n < n1.size(); n++) {
                                        int id = -2;
                                        id = matrix.SearchMap(1, n1.get(n));
                                        if (id >= 0) {
                                            int found = matrix.checkFound(1, id);
                                            if (found >= 0) {
                                                map.get(n1.get(found)).merge(map.get(n1.get(n)));
                                                id1[n] = false; // gia clean twn listwn apo merged TODO *
                                            }
                                            if (found == -4) {
                                                matrix.makeFound(1, id, n);
                                            }
                                        }
                                    }

                                    for (int n = 0; n < n2.size(); n++) {
                                        int id = -2;
                                        id = matrix.SearchMap(2, n2.get(n));
                                        if (id >= 0) {
                                            int found = matrix.checkFound(2, id);
                                            if (found >= 0) {
                                                map.get(n2.get(found)).merge(map.get(n2.get(n)));
                                                id2[n] = false; // gia clean twn listwn apo merged TODO *
                                            } else {
                                                matrix.makeFound(2, id, n);
                                                id2[n] = true;
                                            }
                                        }
                                    }

                                    for (int n = 0; n < n3.size(); n++) {
                                        int id = -2;
                                        id = matrix.SearchMap(3, n3.get(n));
                                        if (id >= 0) {
                                            int found = matrix.checkFound(3, id);
                                            if (found >= 0) {
                                                map.get(n3.get(found)).merge(map.get(n3.get(n)));
                                                id3[n] = false; // gia clean twn listwn apo merged TODO *
                                            } else {
                                                matrix.makeFound(3, id, n);
                                                id3[n] = true;
                                            }
                                        }
                                    }

                                    for (int n = 0; n < n4.size(); n++) {
                                        int id = -2;
                                        id = matrix.SearchMap(4, n4.get(n));
                                        if (id >= 0) {
                                            int found = matrix.checkFound(4, id);
                                            if (found >= 0) {
                                                map.get(n4.get(found)).merge(map.get(n4.get(n)));
                                                id4[n] = false; // gia clean twn listwn apo merged TODO *
                                            } else {
                                                matrix.makeFound(4, id, n);
                                                id4[n] = true;
                                            }
                                        }
                                    }

                                    for (int n = 0; n < n5.size(); n++) {
                                        int id = -2;
                                        id = matrix.SearchMap(5, n5.get(n));
                                        if (id >= 0) {
                                            int found = matrix.checkFound(5, id);
                                            if (found >= 0) {
                                                map.get(n5.get(found)).merge(map.get(n5.get(n)));
                                                id5[n] = false; // gia clean twn listwn apo merged TODO *
                                            } else {
                                                matrix.makeFound(5, id, n);
                                                id5[n] = true;
                                            }
                                        }
                                    }

                                    for (int n = 0; n < n6.size(); n++) {
                                        int id = -2;
                                        id = matrix.SearchMap(6, n6.get(n));
                                        if (id >= 0) {
                                            int found = matrix.checkFound(6, id);
                                            if (found >= 0) {
                                                map.get(n6.get(found)).merge(map.get(n6.get(n)));
                                                id6[n] = false; // gia clean twn listwn apo merged TODO *
                                            } else {
                                                matrix.makeFound(6, id, n);
                                                id6[n] = true;
                                            }
                                        }
                                    }
                                }

                                for (String key : map.keySet()) {
                                    map.get(key).refresh();
                                }
                                motifstats.println(
                                        " Motif   Count  Repeats          bp  Avg_Length  SD_Length  Max_Length  Avg_Repeats    A%      T%      C%      G%    ");
                                motifhtml.println(
                                        "<table border=\"1\"><tr><td><b>Motif</b></td><td><b>Count</b></td><td><b>Repeats</b></td><td><b>bp</b></td><td><b>Avg_Length</b></td><td><b>SD_Length</b></td><td><b>Max_Length</b></td><td><b>Avg_Repeats</b></td><td><b>A%</b></td><td><b>T%</b></td><td><b>C%</b></td><td><b>G%</b></td></tr>");
                                if (mono.isSelected()) {
                                    for (int z = 0; z < n1.size(); z++) {
                                        if (id1[z] && !map.get(n1.get(z)).getMotif().contains("N")) {
                                            motifstats.println(map.get(n1.get(z)).toString());
                                            motifhtml.println(map.get(n1.get(z)).toHTML());
                                        }

                                    }
                                }
                                if (di.isSelected()) {
                                    for (int z = 0; z < n2.size(); z++) {
                                        if (id2[z] && !map.get(n2.get(z)).getMotif().contains("N")) {
                                            motifstats.println(map.get(n2.get(z)).toString());
                                            motifhtml.println(map.get(n2.get(z)).toHTML());
                                        }
                                    }
                                }
                                if (tri.isSelected()) {
                                    for (int z = 0; z < n3.size(); z++) {
                                        if (id3[z] && !map.get(n3.get(z)).getMotif().contains("N")) {
                                            motifstats.println(map.get(n3.get(z)).toString());
                                            motifhtml.println(map.get(n3.get(z)).toHTML());
                                        }
                                    }
                                }
                                if (tetra.isSelected()) {
                                    for (int z = 0; z < n4.size(); z++) {
                                        if (id4[z] && !map.get(n4.get(z)).getMotif().contains("N")) {
                                            motifstats.println(map.get(n4.get(z)).toString());
                                            motifhtml.println(map.get(n4.get(z)).toHTML());
                                        }
                                    }
                                }
                                if (penta.isSelected()) {
                                    for (int z = 0; z < n5.size(); z++) {
                                        if (id5[z] && !map.get(n5.get(z)).getMotif().contains("N")) {
                                            motifstats.println(map.get(n5.get(z)).toString());
                                            motifhtml.println(map.get(n5.get(z)).toHTML());
                                        }
                                    }
                                }
                                if (hexa.isSelected()) {
                                    for (int z = 0; z < n6.size(); z++) {
                                        if (id6[z] && !map.get(n6.get(z)).getMotif().contains("N")) {
                                            motifstats.println(map.get(n6.get(z)).toString());
                                            motifhtml.println(map.get(n6.get(z)).toHTML());
                                        }
                                    }
                                }
                                motifstats.close();
                                motifhtml.println("</table></body></html>");
                                motifhtml.close();

                                Runtime.getRuntime().exec("notepad " + location2);

                            }

                        } catch (FileNotFoundException ex) {
                            //msg.showMessageDialog(paneldown, "Update your selected species", "Error", JOptionPane.ERROR_MESSAGE);
                            Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                        } catch (SQLException ex) {
                            Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                        } catch (ClassNotFoundException ex) {
                            Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                        } catch (IOException ex) {
                            Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                        }
                    } else {
                        msg.showMessageDialog(paneldown, "Minimum length requires an Integer", "Error",
                                JOptionPane.ERROR_MESSAGE);
                    }
                } else {
                    msg.showMessageDialog(paneldown, "Please fill in the minimum length (Integers only)",
                            "Error", JOptionPane.ERROR_MESSAGE);
                }
            }
            if (box2.isSelected()) {
                boolean gapisnumber = false;
                boolean minisnumber = false;
                int gap = 0;
                int min = 0;
                try {
                    gap = Integer.parseInt(max.getText());
                    gapisnumber = true;
                } catch (NumberFormatException ex) {
                    gapisnumber = false;
                }

                try {
                    min = Integer.parseInt(minpregap.getText());
                    minisnumber = true;
                } catch (NumberFormatException ex) {
                    minisnumber = false;
                }
                if (gapisnumber && minisnumber) {
                    try {
                        getImPerfectSSRs(organisms, min, flag, gap);

                        for (int i = 0; i < organisms.length; i++) {

                            PrintWriter stats = null;
                            PrintWriter html = null;

                            String location = ""; // 18/11/2013 added starting here
                            String filetype = "";
                            String filepro = "";

                            if (flag) {
                                filetype = "organisms";
                                filepro = "organisms/" + organisms[i] + "/data/";
                                int ret = getOrganismStatus(organisms[i]);
                                if (ret == -1)
                                    indexer = new Indexer(chromosomelist);
                                else
                                    indexer = new Indexer(ret);

                            } else {
                                filetype = "local";
                                filepro = "local/" + organisms[i] + "/data/";
                                String indexfile = "local/" + organisms[i] + "/index.txt";
                                indexer = new Indexer(indexfile);
                            }
                            //List<String> files = getFiles(organisms[i], minlen, flag);

                            // 18/11/2013 added ending here
                            PrintWriter out = null;
                            DataOutputStream lt = null;
                            if (filetype.contains("organisms")) {
                                File f = new File("organisms/" + organisms[i] + "/stats/");
                                if (!f.exists()) {
                                    f.mkdir();
                                }

                                stats = new PrintWriter(new FileWriter(
                                        "organisms/" + organisms[i] + "/stats/" + "summary_statistics"
                                                + now.toString().replace(':', '_').replace(' ', '_') + ".txt",
                                        true));
                                lt = new DataOutputStream(new BufferedOutputStream(
                                        new FileOutputStream("organisms/" + organisms[i] + "/data/"
                                                + now.toString().replace(':', '_').replace(' ', '_')
                                                + ".imperf")));
                                html = new PrintWriter(new FileWriter(
                                        "organisms/" + organisms[i] + "/stats/" + "summary_statistics"
                                                + now.toString().replace(':', '_').replace(' ', '_') + ".html",
                                        true));

                                File fi = new File("organisms/" + organisms[i] + "/results/");
                                if (!fi.exists()) {
                                    fi.mkdir();
                                }
                                String toopen = "organisms/" + organisms[i] + "/results/allImPerfect_"
                                        + now.toString().replace(':', '_').replace(' ', '_') + ".txt";
                                location = toopen;
                                out = new PrintWriter(toopen);

                                out.println("Results for organism: " + organisms[i]
                                        + "\t Search Parameters --> Maximum Mismatch length for ImPerfect SSRs : "
                                        + gap + " minimum SSR length before given gap: " + min);
                            } else if (filetype.contains("local")) {

                                File f = new File("local/" + organisms[i] + "/stats/");
                                if (!f.exists()) {
                                    f.mkdir();
                                }

                                stats = new PrintWriter(new FileWriter(
                                        "local/" + organisms[i] + "/stats/" + "summary_statistics"
                                                + now.toString().replace(':', '_').replace(' ', '_') + ".txt",
                                        true));
                                lt = new DataOutputStream(new BufferedOutputStream(new FileOutputStream("local/"
                                        + organisms[i] + "/data/"
                                        + now.toString().replace(':', '_').replace(' ', '_') + ".imperf")));
                                html = new PrintWriter(new FileWriter(
                                        "local/" + organisms[i] + "/stats/" + "summary_statistics"
                                                + now.toString().replace(':', '_').replace(' ', '_') + ".html",
                                        true));

                                File fi = new File("local/" + organisms[i] + "/results/");
                                if (!fi.exists()) {
                                    fi.mkdir();
                                }
                                String toopen = "local/" + organisms[i] + "/results/allImPerfect_"
                                        + now.toString().replace(':', '_').replace(' ', '_') + ".txt";
                                location = toopen;
                                out = new PrintWriter(toopen);
                                out.println("Results for project: " + organisms[i]
                                        + "\t Search Parameters --> Maximum Mismatch length for ImPerfect SSRs : "
                                        + gap + " minimum SSR length before given gap: " + min);
                            }

                            if (mono.isSelected()) {
                                // 18/11/2013 added starting here

                                if (flag) {
                                    filetype = "organisms";
                                    filepro = "organisms/" + organisms[i] + "/data/";
                                    int ret = getOrganismStatus(organisms[i]);
                                    if (ret == -1)
                                        indexer = new Indexer(chromosomelist);
                                    else
                                        indexer = new Indexer(ret);

                                } else {
                                    filetype = "local";
                                    filepro = "local/" + organisms[i] + "/data/";
                                    String indexfile = "local/" + organisms[i] + "/index.txt";
                                    indexer = new Indexer(indexfile);
                                }

                                while (indexer.hasNext()) {
                                    String files = filepro + indexer.getNextFileName();
                                    DataInputStream in = new DataInputStream(
                                            new BufferedInputStream(new FileInputStream(
                                                    files + "_" + min + "_" + gap + "_monoImPerfect.temp")));
                                    boolean eof = false;
                                    while (!eof) {
                                        try {
                                            String ssr = in.readUTF();
                                            int start = in.readInt();
                                            int end = in.readInt();
                                            if (!ssr.contains("N"))
                                                out.println("SSR: " + ssr + " start-end " + start + "-" + end
                                                        + " Path(../data/chromosome): "
                                                        + files.substring(0, files.lastIndexOf('.')));
                                        } catch (EOFException exc) {
                                            eof = true;
                                        }
                                    }
                                    in.close();
                                }
                            }
                            if (di.isSelected()) {
                                // 18/11/2013 added starting here

                                if (flag) {
                                    filetype = "organisms";
                                    filepro = "organisms/" + organisms[i] + "/data/";
                                    int ret = getOrganismStatus(organisms[i]);
                                    if (ret == -1)
                                        indexer = new Indexer(chromosomelist);
                                    else
                                        indexer = new Indexer(ret);

                                } else {
                                    filetype = "local";
                                    filepro = "local/" + organisms[i] + "/data/";
                                    String indexfile = "local/" + organisms[i] + "/index.txt";
                                    indexer = new Indexer(indexfile);
                                }
                                while (indexer.hasNext()) {
                                    String files = filepro + indexer.getNextFileName();
                                    DataInputStream in = new DataInputStream(
                                            new BufferedInputStream(new FileInputStream(
                                                    files + "_" + min + "_" + gap + "_diImPerfect.temp")));
                                    boolean eof = false;
                                    while (!eof) {
                                        try {
                                            String ssr = in.readUTF();
                                            int start = in.readInt();
                                            int end = in.readInt();
                                            if (!ssr.contains("N"))
                                                out.println("SSR: " + ssr + " start-end " + start + "-" + end
                                                        + " Path(../data/chromosome): "
                                                        + files.substring(0, files.lastIndexOf('.')));
                                        } catch (EOFException exc) {
                                            eof = true;
                                        }
                                    }
                                    in.close();
                                }
                            }
                            if (tri.isSelected()) {
                                // 18/11/2013 added starting here

                                if (flag) {
                                    filetype = "organisms";
                                    filepro = "organisms/" + organisms[i] + "/data/";
                                    int ret = getOrganismStatus(organisms[i]);
                                    if (ret == -1)
                                        indexer = new Indexer(chromosomelist);
                                    else
                                        indexer = new Indexer(ret);

                                } else {
                                    filetype = "local";
                                    filepro = "local/" + organisms[i] + "/data/";
                                    String indexfile = "local/" + organisms[i] + "/index.txt";
                                    indexer = new Indexer(indexfile);
                                }
                                while (indexer.hasNext()) {
                                    String files = filepro + indexer.getNextFileName();
                                    DataInputStream in = new DataInputStream(
                                            new BufferedInputStream(new FileInputStream(
                                                    files + "_" + min + "_" + gap + "_triImPerfect.temp")));
                                    boolean eof = false;
                                    while (!eof) {
                                        try {
                                            String ssr = in.readUTF();
                                            int start = in.readInt();
                                            int end = in.readInt();
                                            if (!ssr.contains("N"))
                                                out.println("SSR: " + ssr + " start-end " + start + "-" + end
                                                        + " Path(../data/chromosome): "
                                                        + files.substring(0, files.lastIndexOf('.')));
                                        } catch (EOFException exc) {
                                            eof = true;
                                        }
                                    }
                                    in.close();
                                }
                            }
                            if (tetra.isSelected()) {
                                // 18/11/2013 added starting here

                                if (flag) {
                                    filetype = "organisms";
                                    filepro = "organisms/" + organisms[i] + "/data/";
                                    int ret = getOrganismStatus(organisms[i]);
                                    if (ret == -1)
                                        indexer = new Indexer(chromosomelist);
                                    else
                                        indexer = new Indexer(ret);

                                } else {
                                    filetype = "local";
                                    filepro = "local/" + organisms[i] + "/data/";
                                    String indexfile = "local/" + organisms[i] + "/index.txt";
                                    indexer = new Indexer(indexfile);
                                }
                                while (indexer.hasNext()) {
                                    String files = filepro + indexer.getNextFileName();
                                    DataInputStream in = new DataInputStream(
                                            new BufferedInputStream(new FileInputStream(
                                                    files + "_" + min + "_" + gap + "_tetraImPerfect.temp")));
                                    boolean eof = false;
                                    while (!eof) {
                                        try {
                                            String ssr = in.readUTF();
                                            int start = in.readInt();
                                            int end = in.readInt();
                                            if (!ssr.contains("N"))
                                                out.println("SSR: " + ssr + " start-end " + start + "-" + end
                                                        + " Path(../data/chromosome): "
                                                        + files.substring(0, files.lastIndexOf('.')));
                                        } catch (EOFException exc) {
                                            eof = true;
                                        }
                                    }
                                    in.close();
                                }
                            }
                            if (penta.isSelected()) {
                                // 18/11/2013 added starting here

                                if (flag) {
                                    filetype = "organisms";
                                    filepro = "organisms/" + organisms[i] + "/data/";
                                    int ret = getOrganismStatus(organisms[i]);
                                    if (ret == -1)
                                        indexer = new Indexer(chromosomelist);
                                    else
                                        indexer = new Indexer(ret);

                                } else {
                                    filetype = "local";
                                    filepro = "local/" + organisms[i] + "/data/";
                                    String indexfile = "local/" + organisms[i] + "/index.txt";
                                    indexer = new Indexer(indexfile);
                                }
                                while (indexer.hasNext()) {
                                    String files = filepro + indexer.getNextFileName();
                                    DataInputStream in = new DataInputStream(
                                            new BufferedInputStream(new FileInputStream(
                                                    files + "_" + min + "_" + gap + "_pentaImPerfect.temp")));
                                    boolean eof = false;
                                    while (!eof) {
                                        try {
                                            String ssr = in.readUTF();
                                            int start = in.readInt();
                                            int end = in.readInt();
                                            if (!ssr.contains("N"))
                                                out.println("SSR: " + ssr + " start-end " + start + "-" + end
                                                        + " Path(../data/chromosome): "
                                                        + files.substring(0, files.lastIndexOf('.')));
                                        } catch (EOFException exc) {
                                            eof = true;
                                        }
                                    }
                                    in.close();
                                }
                            }
                            if (hexa.isSelected()) {
                                // 18/11/2013 added starting here

                                if (flag) {
                                    filetype = "organisms";
                                    filepro = "organisms/" + organisms[i] + "/data/";
                                    int ret = getOrganismStatus(organisms[i]);
                                    if (ret == -1)
                                        indexer = new Indexer(chromosomelist);
                                    else
                                        indexer = new Indexer(ret);

                                } else {
                                    filetype = "local";
                                    filepro = "local/" + organisms[i] + "/data/";
                                    String indexfile = "local/" + organisms[i] + "/index.txt";
                                    indexer = new Indexer(indexfile);
                                }
                                while (indexer.hasNext()) {
                                    String files = filepro + indexer.getNextFileName();
                                    DataInputStream in = new DataInputStream(
                                            new BufferedInputStream(new FileInputStream(
                                                    files + "_" + min + "_" + gap + "_hexaImPerfect.temp")));
                                    boolean eof = false;
                                    while (!eof) {
                                        try {
                                            String ssr = in.readUTF();
                                            int start = in.readInt();
                                            int end = in.readInt();
                                            if (!ssr.contains("N"))
                                                out.println("SSR: " + ssr + "  start-end " + start + "-" + end
                                                        + " Path(../data/chromosome): "
                                                        + files.substring(0, files.lastIndexOf('.')));
                                        } catch (EOFException exc) {
                                            eof = true;
                                        }
                                    }
                                    in.close();
                                }
                            }

                            out.close();

                            Runtime.getRuntime().exec("notepad " + location);

                            DecimalFormat round = new DecimalFormat("#.###");

                            html.println("<html><h1>******* ImPerfect SSRs *******</h1>");
                            html.println("<h4>Results for project: " + organisms[i]
                                    + "</h4><h4>Search Parameters --> Maximum Mismatch length for ImPerfect SSRs (bp): "
                                    + gap + "</h4><h4>minimum SSR length before given Mismatch length (bp): "
                                    + min + "</h4>");
                            html.println(
                                    "<table border=\"1\"><tr><td><b>motif</b></td><td><b>count</b></td><td><b>bp</b></td><td><b>A%</b></td><td><b>T%</b></td><td><b>C%</b></td><td><b>G%</b></td><td><b>Relative Frequency</b></td><td><b>Abundance</b></td><td><b>Relative Abundance</b></td></tr>");

                            stats.println("******* ImPerfect SSRs *******");
                            stats.println("Results for project: " + organisms[i]
                                    + "\n Search Parameters --> Maximum Mismatch length for ImPerfect SSRs (bp): "
                                    + gap + " \nminimum SSR length before given Mismatch length (bp): " + min);

                            stats.println(
                                    " ____________________________________________________________________________________________________________ ");
                            stats.println(
                                    "|       |       |            |       |       |       |       |   Relative    |               |   Relative    |");
                            stats.println(
                                    "| motif | count |     bp     |   A%  |   T%  |   C%  |   G%  |   Frequency   |   Abundance   |   Abundance   |");
                            stats.println(
                                    "|=======|=======|============|=======|=======|=======|=======|===============|===============|===============|");
                            int totalcount = 0;
                            long bpcount = 0;
                            int Aperc = 0;
                            int Tperc = 0;
                            int Gperc = 0;
                            int Cperc = 0;
                            float relfreq = 0;
                            float abfreq = 0;
                            long seqcount = 0;

                            if (mono.isSelected()) {
                                totalcount += countmono.get(i);
                                bpcount += countmonore.get(i);
                            }
                            if (di.isSelected()) {
                                totalcount += countdi.get(i);
                                bpcount += countdire.get(i);
                            }
                            if (tri.isSelected()) {
                                totalcount += counttri.get(i);
                                bpcount += counttrire.get(i);
                            }
                            if (tetra.isSelected()) {
                                totalcount += counttetra.get(i);
                                bpcount += counttetrare.get(i);
                            }
                            if (penta.isSelected()) {
                                totalcount += countpenta.get(i);
                                bpcount += countpentare.get(i);
                            }
                            if (hexa.isSelected()) {
                                totalcount += counthexa.get(i);
                                bpcount += counthexare.get(i);
                            }
                            try {
                                Class.forName("com.mysql.jdbc.Driver");
                            } catch (ClassNotFoundException ex) {
                                Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                            }
                            Connection con = null;
                            try {
                                con = DriverManager.getConnection("jdbc:mysql://localhost:3306", "biouser",
                                        "thesis2012");
                            } catch (SQLException ex) {
                                Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                            }
                            Statement st = null;
                            try {
                                st = con.createStatement();
                            } catch (SQLException ex) {
                                Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                            }
                            st.executeUpdate("use lobid");
                            seqcount = 0;

                            if (filetype.contains("organisms")) {
                                ResultSet rs = st.executeQuery(
                                        "SELECT end FROM slices INNER JOIN organism WHERE slices.org_id=organism.org_id AND organism.name='"
                                                + organisms[i] + "'");
                                while (rs.next()) {
                                    seqcount += Long.parseLong(rs.getString(1));
                                }
                            } else if (filetype.contains("local")) {
                                BufferedReader in = new BufferedReader(
                                        new FileReader("local/" + organisms[i] + "/index.txt"));
                                int count = countlines("local/" + organisms[i] + "/index.txt");
                                for (int c = 0; c < count; c++) {
                                    String temp = in.readLine();
                                    BufferedReader tmp = new BufferedReader(
                                            new FileReader("local/" + organisms[i] + "/" + temp + ".txt"));

                                    boolean eof = false;
                                    while (!eof) {

                                        String s = tmp.readLine();
                                        if (s != null) {
                                            seqcount += s.length();
                                        } else {
                                            eof = true;
                                        }
                                    }
                                    tmp.close();
                                }
                            }
                            int tempmono = countmonore.get(i);
                            int tempdi = countdire.get(i);
                            int temptri = counttrire.get(i);
                            int temptetra = counttetrare.get(i);
                            int temppenta = countpentare.get(i);
                            int temphexa = counthexare.get(i);
                            if (tempmono == 0)
                                tempmono = 1;
                            if (tempdi == 0)
                                tempdi = 1;
                            if (temptri == 0)
                                temptri = 1;
                            if (temptetra == 0)
                                temptetra = 1;
                            if (temppenta == 0)
                                temppenta = 1;
                            if (temphexa == 0)
                                temphexa = 1;

                            if (mono.isSelected()) {
                                Aperc += Amono.get(i);
                                Tperc += Tmono.get(i);
                                Gperc += Gmono.get(i);
                                Cperc += Cmono.get(i);

                                //lt.writeInt(countmono.get(i));lt.writeInt(countmonore.get(i));lt.writeFloat((float)Amono.get(i)*100/tempmono);lt.writeFloat((float)Tmono.get(i)*100/tempmono);lt.writeFloat((float)Gmono.get(i)*100/tempmono);lt.writeFloat((float)Cmono.get(i)*100/tempmono);lt.writeFloat((float) countmono.get(i) / totalcount);lt.writeFloat((float) countmonore.get(i) / seqcount);lt.writeFloat((float) countmonore.get(i) / bpcount);
                                stats.printf("|mono   |" + cell(Integer.toString(countmono.get(i)), 7) + "|"
                                        + cell(Integer.toString(countmonore.get(i)), 12) + "|%s|%s|%s|%s|"
                                        + cell((float) countmono.get(i) / totalcount, 15) + "|"
                                        + cell((float) countmonore.get(i) / seqcount, 15) + "|"
                                        + cell((float) countmonore.get(i) / bpcount, 15) + "|\n",
                                        cell((float) (Amono.get(i) * 100) / (tempmono), 7),
                                        cell((float) (Tmono.get(i) * 100) / (tempmono), 7),
                                        cell((float) (Cmono.get(i) * 100) / (tempmono), 7),
                                        cell((float) (Gmono.get(i) * 100) / (tempmono), 7));
                                stats.println(
                                        "|-------|-------|------------|-------|-------|-------|-------|---------------|---------------|---------------|");
                                html.println("<tr><td><b>mono</b></td><td>" + countmono.get(i) + "</td><td>"
                                        + (countmonore.get(i)) + "</td><td>"
                                        + round.format((float) (Amono.get(i) * 100) / (tempmono)) + "</td><td>"
                                        + round.format((float) (Tmono.get(i) * 100) / (tempmono)) + "</td><td>"
                                        + round.format((float) (Cmono.get(i) * 100) / (tempmono)) + "</td><td>"
                                        + round.format((float) (Gmono.get(i) * 100) / (tempmono)) + "</td><td>"
                                        + round.format((float) countmono.get(i) / totalcount) + "</td><td>"
                                        + round.format((float) countmonore.get(i) / seqcount) + "</td><td>"
                                        + round.format((float) countmonore.get(i) / bpcount) + "</td></tr>");
                            }
                            if (di.isSelected()) {
                                Aperc += Adi.get(i);
                                Tperc += Tdi.get(i);
                                Gperc += Gdi.get(i);
                                Cperc += Cdi.get(i);

                                //lt.writeInt(countdi.get(i));lt.writeInt(countdi.get(i)re.get(i));lt.writeFloat((float)Adi.get(i)*100/tempdi);lt.writeFloat((float)Tdi.get(i)*100/tempdi);lt.writeFloat((float)Gdi.get(i)*100/tempdi);lt.writeFloat((float)Cdi.get(i)*100/tempdi);lt.writeFloat((float) countdi.get(i) / totalcount);lt.writeFloat((float) countdi.get(i)re.get(i) / seqcount);lt.writeFloat((float) countdi.get(i)re.get(i) / bpcount);
                                stats.printf(
                                        "|di     |" + cell(Integer.toString(countdi.get(i)), 7) + "|"
                                                + cell(Integer.toString(countdire.get(i)), 12) + "|%s|%s|%s|%s|"
                                                + cell((float) countdi.get(i) / totalcount, 15) + "|"
                                                + cell((float) countdi.get(i) / seqcount, 15) + "|"
                                                + cell((float) countdi.get(i) / bpcount, 15) + "|\n",
                                        cell((float) (Adi.get(i) * 100) / (tempdi), 7),
                                        cell((float) (Tdi.get(i) * 100) / (tempdi), 7),
                                        cell((float) (Cdi.get(i) * 100) / (tempdi), 7),
                                        cell((float) (Gdi.get(i) * 100) / (tempdi), 7));
                                stats.println(
                                        "|-------|-------|------------|-------|-------|-------|-------|---------------|---------------|---------------|");
                                html.println("<tr><td><b>di</b></td><td>" + countdi.get(i) + "</td><td>"
                                        + (countdire.get(i)) + "</td><td>"
                                        + round.format((float) (Adi.get(i) * 100) / (tempdi)) + "</td><td>"
                                        + round.format((float) (Tdi.get(i) * 100) / (tempdi)) + "</td><td>"
                                        + round.format((float) (Cdi.get(i) * 100) / (tempdi)) + "</td><td>"
                                        + round.format((float) (Gdi.get(i) * 100) / (tempdi)) + "</td><td>"
                                        + round.format((float) countdi.get(i) / totalcount) + "</td><td>"
                                        + round.format((float) countdire.get(i) / seqcount) + "</td><td>"
                                        + round.format((float) countdire.get(i) / bpcount) + "</td></tr>");
                            }
                            if (tri.isSelected()) {
                                Aperc += Atri.get(i);
                                Tperc += Ttri.get(i);
                                Gperc += Gtri.get(i);
                                Cperc += Ctri.get(i);
                                //lt.writeInt(counttri.get(i));lt.writeInt(counttrire.get(i).get(i));lt.writeFloat((float)Atri.get(i)*100/temptri);lt.writeFloat((float)Ttri.get(i)*100/temptri);lt.writeFloat((float)Gtri.get(i)*100/temptri);lt.writeFloat((float)Ctri.get(i)*100/temptri);lt.writeFloat((float) counttri.get(i) / totalcount);lt.writeFloat((float) counttrire.get(i).get(i) / seqcount);lt.writeFloat((float) counttrire.get(i).get(i) / bpcount);
                                stats.printf("|tri    |" + cell(Integer.toString(counttri.get(i)), 7) + "|"
                                        + cell(Integer.toString(counttrire.get(i)), 12) + "|%s|%s|%s|%s|"
                                        + cell((float) counttri.get(i) / totalcount, 15) + "|"
                                        + cell((float) counttrire.get(i) / seqcount, 15) + "|"
                                        + cell((float) counttrire.get(i) / bpcount, 15) + "|\n",
                                        cell((float) (Atri.get(i) * 100) / (temptri), 7),
                                        cell((float) (Ttri.get(i) * 100) / (temptri), 7),
                                        cell((float) (Ctri.get(i) * 100) / (temptri), 7),
                                        cell((float) (Gtri.get(i) * 100) / (temptri), 7));
                                stats.println(
                                        "|-------|-------|------------|-------|-------|-------|-------|---------------|---------------|---------------|");
                                html.println("<tr><td><b>tri</b></td><td>" + counttri.get(i) + "</td><td>"
                                        + (counttrire.get(i)) + "</td><td>"
                                        + round.format((float) (Atri.get(i) * 100) / (temptri)) + "</td><td>"
                                        + round.format((float) (Ttri.get(i) * 100) / (temptri)) + "</td><td>"
                                        + round.format((float) (Ctri.get(i) * 100) / (temptri)) + "</td><td>"
                                        + round.format((float) (Gtri.get(i) * 100) / (temptri)) + "</td><td>"
                                        + round.format((float) counttri.get(i) / totalcount) + "</td><td>"
                                        + round.format((float) counttrire.get(i) / seqcount) + "</td><td>"
                                        + round.format((float) counttrire.get(i) / bpcount) + "</td></tr>");
                            }
                            if (tetra.isSelected()) {
                                Aperc += Atetra.get(i);
                                Tperc += Ttetra.get(i);
                                Gperc += Gtetra.get(i);
                                Cperc += Ctetra.get(i);
                                //lt.writeInt(counttetra.get(i));lt.writeInt(counttetrare.get(i));lt.writeFloat((float)Atetra.get(i)*100/temptetra);lt.writeFloat((float)Ttetra.get(i)*100/temptetra);lt.writeFloat((float)Gtetra.get(i)*100/temptetra);lt.writeFloat((float)Ctetra.get(i)*100/temptetra);lt.writeFloat((float) counttetra.get(i) / totalcount);lt.writeFloat((float) counttetrare.get(i) / seqcount);lt.writeFloat((float) counttetrare.get(i) / bpcount);
                                stats.printf("|tetra  |" + cell(Integer.toString(counttetra.get(i)), 7) + "|"
                                        + cell(Integer.toString(counttetrare.get(i)), 12) + "|%s|%s|%s|%s|"
                                        + cell((float) counttetra.get(i) / totalcount, 15) + "|"
                                        + cell((float) counttetrare.get(i) / seqcount, 15) + "|"
                                        + cell((float) counttetrare.get(i) / bpcount, 15) + "|\n",
                                        cell((float) (Atetra.get(i) * 100) / (temptetra), 7),
                                        cell((float) (Ttetra.get(i) * 100) / (temptetra), 7),
                                        cell((float) (Ctetra.get(i) * 100) / (temptetra), 7),
                                        cell((float) (Gtetra.get(i) * 100) / (temptetra), 7));
                                stats.println(
                                        "|-------|-------|------------|-------|-------|-------|-------|---------------|---------------|---------------|");
                                html.println("<tr><td><b>tetra</b></td><td>" + counttetra.get(i) + "</td><td>"
                                        + (counttetrare.get(i)) + "</td><td>"
                                        + round.format((float) (Atetra.get(i) * 100) / (temptetra))
                                        + "</td><td>"
                                        + round.format((float) (Ttetra.get(i) * 100) / (temptetra))
                                        + "</td><td>"
                                        + round.format((float) (Ctetra.get(i) * 100) / (temptetra))
                                        + "</td><td>"
                                        + round.format((float) (Gtetra.get(i) * 100) / (temptetra))
                                        + "</td><td>" + round.format((float) counttetra.get(i) / totalcount)
                                        + "</td><td>" + round.format((float) counttetrare.get(i) / seqcount)
                                        + "</td><td>" + round.format((float) counttetrare.get(i) / bpcount)
                                        + "</td></tr>");
                            }
                            if (penta.isSelected()) {
                                Aperc += Apenta.get(i);
                                Tperc += Tpenta.get(i);
                                Gperc += Gpenta.get(i);
                                Cperc += Cpenta.get(i);
                                //lt.writeInt(countpenta.get(i));lt.writeInt(countpentare.get(i));lt.writeFloat((float)Apenta.get(i)*100/temppenta);lt.writeFloat((float)Tpenta.get(i)*100/temppenta);lt.writeFloat((float)Gpenta.get(i)*100/temppenta);lt.writeFloat((float)Cpenta.get(i)*100/temppenta);lt.writeFloat((float) countpenta.get(i) / totalcount);lt.writeFloat((float) countpentare.get(i) / seqcount);lt.writeFloat((float) countpentare.get(i) / bpcount);
                                stats.printf("|penta  |" + cell(Integer.toString(countpenta.get(i)), 7) + "|"
                                        + cell(Integer.toString(countpentare.get(i)), 12) + "|%s|%s|%s|%s|"
                                        + cell((float) countpenta.get(i) / totalcount, 15) + "|"
                                        + cell((float) countpentare.get(i) / seqcount, 15) + "|"
                                        + cell((float) countpentare.get(i) / bpcount, 15) + "|\n",
                                        cell((float) (Apenta.get(i) * 100) / (temppenta), 7),
                                        cell((float) (Tpenta.get(i) * 100) / (temppenta), 7),
                                        cell((float) (Cpenta.get(i) * 100) / (temppenta), 7),
                                        cell((float) (Gpenta.get(i) * 100) / (temppenta), 7));
                                stats.println(
                                        "|-------|-------|------------|-------|-------|-------|-------|---------------|---------------|---------------|");
                                html.println("<tr><td><b>penta</b></td><td>" + countpenta.get(i) + "</td><td>"
                                        + (countpentare.get(i)) + "</td><td>"
                                        + round.format((float) (Apenta.get(i) * 100) / (temppenta))
                                        + "</td><td>"
                                        + round.format((float) (Tpenta.get(i) * 100) / (temppenta))
                                        + "</td><td>"
                                        + round.format((float) (Cpenta.get(i) * 100) / (temppenta))
                                        + "</td><td>"
                                        + round.format((float) (Gpenta.get(i) * 100) / (temppenta))
                                        + "</td><td>" + round.format((float) countpenta.get(i) / totalcount)
                                        + "</td><td>" + round.format((float) countpentare.get(i) / seqcount)
                                        + "</td><td>" + round.format((float) countpentare.get(i) / bpcount)
                                        + "</td></tr>");
                            }
                            if (hexa.isSelected()) {
                                Aperc += Ahexa.get(i);
                                Tperc += Thexa.get(i);
                                Gperc += Ghexa.get(i);
                                Cperc += Chexa.get(i);
                                //lt.writeInt(counthexa.get(i));lt.writeInt(counthexare.get(i));lt.writeFloat((float)Ahexa.get(i)*100/temphexa);lt.writeFloat((float)Thexa.get(i)*100/temphexa);lt.writeFloat((float)Ghexa.get(i)*100/temphexa);lt.writeFloat((float)Chexa.get(i)*100/temphexa);lt.writeFloat((float) counthexa.get(i) / totalcount);lt.writeFloat((float) counthexare.get(i) / seqcount);lt.writeFloat((float) counthexare.get(i) / bpcount);
                                stats.printf("|hexa   |" + cell(Integer.toString(counthexa.get(i)), 7) + "|"
                                        + cell(Integer.toString(counthexare.get(i)), 12) + "|%s|%s|%s|%s|"
                                        + cell((float) counthexa.get(i) / totalcount, 15) + "|"
                                        + cell((float) counthexare.get(i) / seqcount, 15) + "|"
                                        + cell((float) counthexare.get(i) / bpcount, 15) + "|\n",
                                        cell((float) (Ahexa.get(i) * 100) / (temphexa), 7),
                                        cell((float) (Thexa.get(i) * 100) / (temphexa), 7),
                                        cell((float) (Chexa.get(i) * 100) / (temphexa), 7),
                                        cell((float) (Ghexa.get(i) * 100) / (temphexa), 7));
                                stats.println(
                                        "|-------|-------|------------|-------|-------|-------|-------|---------------|---------------|---------------|");
                                html.println("<tr><td><b>hexa</b></td><td>" + counthexa.get(i) + "</td><td>"
                                        + (counthexare.get(i)) + "</td><td>"
                                        + round.format((float) (Ahexa.get(i) * 100) / (temphexa)) + "</td><td>"
                                        + round.format((float) (Thexa.get(i) * 100) / (temphexa)) + "</td><td>"
                                        + round.format((float) (Chexa.get(i) * 100) / (temphexa)) + "</td><td>"
                                        + round.format((float) (Ghexa.get(i) * 100) / (temphexa)) + "</td><td>"
                                        + round.format((float) counthexa.get(i) / totalcount) + "</td><td>"
                                        + round.format((float) counthexare.get(i) / seqcount) + "</td><td>"
                                        + round.format((float) counthexare.get(i) / bpcount) + "</td></tr>");
                            }

                            if (mono.isSelected()) {
                                relfreq += (float) countmono.get(i) / totalcount;
                                abfreq += (float) countmonore.get(i) / bpcount;
                            }
                            if (di.isSelected()) {
                                relfreq += (float) countdi.get(i) / totalcount;
                                abfreq += (float) countdire.get(i) / bpcount;
                            }
                            if (tri.isSelected()) {
                                relfreq += (float) counttri.get(i) / totalcount;
                                abfreq += (float) counttrire.get(i) / bpcount;
                            }
                            if (tetra.isSelected()) {
                                relfreq += (float) counttetra.get(i) / totalcount;
                                abfreq += (float) counttetrare.get(i) / bpcount;
                            }
                            if (penta.isSelected()) {
                                relfreq += (float) countpenta.get(i) / totalcount;
                                abfreq += (float) countpentare.get(i) / bpcount;
                            }
                            if (hexa.isSelected()) {
                                relfreq += (float) counthexa.get(i) / totalcount;
                                abfreq += (float) counthexare.get(i) / bpcount;
                            }

                            lt.writeLong(seqcount);
                            lt.writeInt(totalcount);
                            lt.writeLong(bpcount);
                            lt.writeInt(Aperc);
                            lt.writeInt(Tperc);
                            lt.writeInt(Gperc);
                            lt.writeInt(Cperc);
                            stats.println("|TOTAL  |" + cell(Integer.toString(totalcount), 7) + "|"
                                    + cell(Long.toString(bpcount), 12) + "|"
                                    + cell((float) Aperc * 100 / bpcount, 7) + "|"
                                    + cell((float) Tperc * 100 / bpcount, 7) + "|"
                                    + cell((float) Cperc * 100 / bpcount, 7) + "|"
                                    + cell((float) Gperc * 100 / bpcount, 7) + "|" + cell(relfreq, 15) + "|"
                                    + cell((float) bpcount / seqcount, 15) + "|" + cell((float) abfreq, 15)
                                    + "|");
                            stats.println(
                                    "|_______|_______|____________|_______|_______|_______|_______|_______________|_______________|_______________|");
                            stats.println("Genome length (bp): " + seqcount);
                            stats.println("Relative Frequency: Count of each motif type / total SSR count");
                            stats.println("Abundance: bp of each motif type / total sequence bp");
                            stats.println(
                                    "Relative Abundance: bp of each motif type / total microsatellites bp");
                            stats.println();
                            stats.println();
                            stats.close();
                            lt.close();
                            html.println("<tr><td><b>TOTAL</b></td><td>" + totalcount + "</td><td>" + bpcount
                                    + "</td><td>" + round.format((float) Aperc * 100 / bpcount) + "</td><td>"
                                    + round.format((float) Tperc * 100 / bpcount) + "</td><td>"
                                    + round.format((float) Cperc * 100 / bpcount) + "</td><td>"
                                    + round.format((float) Gperc * 100 / bpcount) + "</td><td>"
                                    + round.format((float) relfreq) + "</td><td>"
                                    + round.format((float) bpcount / seqcount) + "</td><td>"
                                    + round.format((float) abfreq) + "</td></tr></table></html>");
                            html.close();

                        }

                    } catch (SQLException ex) {
                        Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                    } catch (ClassNotFoundException ex) {
                        Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                    } catch (FileNotFoundException ex) {
                        Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                        //msg.showMessageDialog(paneldown, "Update your selected species", "Error", JOptionPane.ERROR_MESSAGE);
                    } catch (IOException ex) {
                        Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                    }
                } else {
                    if (!gapisnumber && !minisnumber) {
                        msg.showMessageDialog(paneldown,
                                "Fill in Mismatch length for Imperfect SSRs \n and the minimum sequence length before the Mismatch length\n (Integers only)",
                                "Error", JOptionPane.ERROR_MESSAGE);
                    } else {
                        if (!gapisnumber) {
                            msg.showMessageDialog(paneldown,
                                    "Fill in Mismatch length for Imperfect SSRs (Integer only)", "Error",
                                    JOptionPane.ERROR_MESSAGE);
                        }
                        if (!minisnumber) {
                            msg.showMessageDialog(paneldown,
                                    "Fill in the minimum sequence length before the Mismatch length (Integer only)",
                                    "Error", JOptionPane.ERROR_MESSAGE);
                        }
                    }
                }

            }

            if (box3.isSelected()) {
                boolean lenisnumber;
                boolean gapisnumber;
                int minlen = 0;
                int gap = 0;
                if (!com.isSelected() && !incom.isSelected()) {
                    msg.showMessageDialog(paneldown, "Select a Compound SSR Option", "Error",
                            JOptionPane.ERROR_MESSAGE);
                } else {

                    try {
                        minlen = Integer.parseInt(score.getText());
                        lenisnumber = true;
                    } catch (NumberFormatException ex) {
                        lenisnumber = false;
                    }

                    try {
                        gap = Integer.parseInt(maxgapcomp.getText());
                        gapisnumber = true;
                    } catch (NumberFormatException ex) {
                        gapisnumber = false;
                    }

                    if (lenisnumber && gapisnumber) {

                        if (com.isSelected()) {
                            try {
                                getCompoundPerfectSSRs(organisms, minlen, flag, gap);
                            } catch (SQLException ex) {
                                Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                            } catch (ClassNotFoundException ex) {
                                Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                            } catch (FileNotFoundException ex) {
                                Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                                //msg.showMessageDialog(paneldown, "Update your selected species", "Error", JOptionPane.ERROR_MESSAGE);
                            } catch (IOException ex) {
                                Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                            }
                        }
                        if (incom.isSelected()) {
                            try {
                                getImPerfectCompoundSSRs(organisms, minlen, flag, gap);
                            } catch (SQLException ex) {
                                Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                            } catch (ClassNotFoundException ex) {
                                Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                            } catch (FileNotFoundException ex) {
                                Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                                //msg.showMessageDialog(paneldown, "Update your selected species", "Error", JOptionPane.ERROR_MESSAGE);
                            } catch (IOException ex) {
                                Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                            }
                        }
                    } else {
                        if (!lenisnumber) {
                            msg.showMessageDialog(paneldown, "Minimum length requires an Integer", "Error",
                                    JOptionPane.ERROR_MESSAGE);
                        }
                        if (!gapisnumber) {
                            msg.showMessageDialog(paneldown,
                                    "Inter-repeat Region between compound SSRs requires an Integer", "Error",
                                    JOptionPane.ERROR_MESSAGE);
                        }
                    }
                }
            }
            if (box1.isSelected() || box2.isSelected() || box3.isSelected() || com.isSelected()
                    || incom.isSelected()) {
                PrintWriter out = null;
                PrintWriter html = null;
                boolean orgs = true;
                DecimalFormat round = new DecimalFormat("#.###");
                //String file="";
                for (int i = 0; i < organisms.length; i++) {

                    String file = "organisms/" + organisms[i] + "/stats/" + "summary_statistics"
                            + now.toString().replace(':', '_').replace(' ', '_') + ".txt";
                    File stats = new File(file);
                    if (!stats.exists()) {
                        orgs = false;

                        file = "local/" + organisms[i] + "/stats/" + "summary_statistics"
                                + now.toString().replace(':', '_').replace(' ', '_') + ".txt";
                    }
                    try {

                        html = new PrintWriter(
                                new FileWriter(file.substring(0, file.indexOf(".")) + ".html", true));
                        html.println("<html><h1>******* SUMMARY TABLE *******</h1>");
                        html.println(
                                "<table border=\"1\"><tr><td>type</td><td><b>count</b></td><td><b>bp</b></td><td><b>A%</b></td><td><b>T%</b></td><td><b>C%</b></td><td><b>G%</b></td><td><b>Relative Frequency</b></td><td><b>Abundance</b></td><td><b>Relative Abundance</b></td></tr>");

                        out = new PrintWriter(new FileWriter(file, true));
                        out.println("******* SUMMARY TABLE *******");

                        out.println(
                                " _________________________________________________________________________________________________________________ ");
                        out.println(
                                "|            |       |            |       |       |       |       |   Relative    |               |   Relative    |");
                        out.println(
                                "|    type    | count |     bp     |   A%  |   T%  |   C%  |   G%  |   Frequency   |   Abundance   |   Abundance   |");
                        out.println(
                                "|============|=======|============|=======|=======|=======|=======|===============|===============|===============|");

                    } catch (IOException ex) {
                        Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                    }
                    //TOTAL
                    long seqcount = 0;
                    int SSRcount = 0;
                    int SSRbpcount = 0;
                    int A = 0, T = 0, G = 0, C = 0;
                    float relfreq = 0;
                    float abfreq = 0;

                    //perfect
                    int pcount = 0;
                    long pbpcount = 0;
                    int Ap = 0, Tp = 0, Gp = 0, Cp = 0;
                    //imperfect
                    int imcount = 0;
                    long imbpcount = 0;
                    int Aim = 0, Tim = 0, Gim = 0, Cim = 0;

                    //compound perfect
                    int ccount = 0;
                    long cbpcount = 0;
                    int Ac = 0, Tc = 0, Gc = 0, Cc = 0;
                    //compound imperfect
                    int cicount = 0;
                    long cibpcount = 0;
                    int Aci = 0, Tci = 0, Gci = 0, Cci = 0;

                    if (box1.isSelected()) {
                        DataInputStream in = null;
                        if (orgs) {
                            try {
                                in = new DataInputStream(
                                        new BufferedInputStream(new FileInputStream("organisms/" + organisms[i]
                                                + "/data/" + now.toString().replace(':', '_').replace(' ', '_')
                                                + ".perf")));
                            } catch (FileNotFoundException ex) {
                                Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                            }
                        } else {
                            try {
                                in = new DataInputStream(new BufferedInputStream(new FileInputStream("local/"
                                        + organisms[i] + "/data/"
                                        + now.toString().replace(':', '_').replace(' ', '_') + ".perf")));
                            } catch (FileNotFoundException ex) {
                                Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                            }
                        }
                        try {
                            seqcount = in.readLong();
                            pcount = in.readInt();
                            pbpcount = in.readLong();
                            Ap = in.readInt();
                            Tp = in.readInt();
                            Gp = in.readInt();
                            Cp = in.readInt();
                            A += Ap;
                            T += Tp;
                            G += Gp;
                            C += Cp;

                            SSRcount += pcount;
                            SSRbpcount += pbpcount;
                            in.close();
                        } catch (IOException ex) {
                            Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                        }
                    }
                    if (box2.isSelected()) {
                        DataInputStream in = null;
                        if (orgs) {
                            try {
                                in = new DataInputStream(
                                        new BufferedInputStream(new FileInputStream("organisms/" + organisms[i]
                                                + "/data/" + now.toString().replace(':', '_').replace(' ', '_')
                                                + ".imperf")));
                            } catch (FileNotFoundException ex) {
                                Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                            }
                        } else {
                            try {
                                in = new DataInputStream(new BufferedInputStream(new FileInputStream("local/"
                                        + organisms[i] + "/data/"
                                        + now.toString().replace(':', '_').replace(' ', '_') + ".imperf")));
                            } catch (FileNotFoundException ex) {
                                Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                            }
                        }
                        try {
                            seqcount = in.readLong();
                            imcount = in.readInt();
                            imbpcount = in.readLong();
                            Aim = in.readInt();
                            Tim = in.readInt();
                            Gim = in.readInt();
                            Cim = in.readInt();
                            A += Aim;
                            T += Tim;
                            G += Gim;
                            C += Cim;

                            SSRcount += imcount;
                            SSRbpcount += imbpcount;
                            in.close();
                        } catch (IOException ex) {
                            Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                        }
                    }
                    if (box3.isSelected()) {
                        if (com.isSelected()) {
                            DataInputStream in = null;
                            if (orgs) {
                                try {
                                    in = new DataInputStream(new BufferedInputStream(
                                            new FileInputStream("organisms/" + organisms[i] + "/data/"
                                                    + now.toString().replace(':', '_').replace(' ', '_')
                                                    + ".compp")));
                                } catch (FileNotFoundException ex) {
                                    Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null,
                                            ex);
                                }
                            } else {
                                try {
                                    in = new DataInputStream(new BufferedInputStream(
                                            new FileInputStream("local/" + organisms[i] + "/data/"
                                                    + now.toString().replace(':', '_').replace(' ', '_')
                                                    + ".compp")));
                                } catch (FileNotFoundException ex) {
                                    Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null,
                                            ex);
                                }
                            }
                            try {
                                seqcount = in.readLong();
                                ccount = in.readInt();
                                cbpcount = in.readInt();
                                Ac = in.readInt();
                                Tc = in.readInt();
                                Gc = in.readInt();
                                Cc = in.readInt();
                                A += Ac;
                                T += Tc;
                                G += Gc;
                                C += Cc;

                                SSRcount += ccount;
                                SSRbpcount += cbpcount;
                                in.close();
                            } catch (IOException ex) {
                                Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                            }
                        }
                        if (incom.isSelected()) {
                            DataInputStream in = null;
                            if (orgs) {
                                try {
                                    in = new DataInputStream(new BufferedInputStream(
                                            new FileInputStream("organisms/" + organisms[i] + "/data/"
                                                    + now.toString().replace(':', '_').replace(' ', '_')
                                                    + ".compim")));
                                } catch (FileNotFoundException ex) {
                                    Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null,
                                            ex);
                                }
                            } else {
                                try {
                                    in = new DataInputStream(new BufferedInputStream(
                                            new FileInputStream("local/" + organisms[i] + "/data/"
                                                    + now.toString().replace(':', '_').replace(' ', '_')
                                                    + ".compim")));
                                } catch (FileNotFoundException ex) {
                                    Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null,
                                            ex);
                                }
                            }
                            try {
                                seqcount = in.readLong();
                                cicount = in.readInt();
                                cibpcount = in.readInt();
                                Aci = in.readInt();
                                Tci = in.readInt();
                                Gci = in.readInt();
                                Cci = in.readInt();
                                A += Aci;
                                T += Tci;
                                G += Gci;
                                C += Cci;

                                SSRcount += cicount;
                                SSRbpcount += cibpcount;
                                in.close();
                            } catch (IOException ex) {
                                Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                            }
                        }
                    }

                    if (box1.isSelected()) {
                        relfreq += (float) pcount / SSRcount;
                        abfreq += (float) pbpcount / SSRbpcount;
                        out.printf(
                                "|Perfect     |" + cell(Integer.toString(pcount), 7) + "|"
                                        + cell(Long.toString(pbpcount), 12) + "|%s|%s|%s|%s|"
                                        + cell((float) pcount / SSRcount, 15) + "|"
                                        + cell((float) pbpcount / seqcount, 15) + "|"
                                        + cell((float) pbpcount / SSRbpcount, 15) + "|\n",
                                cell((float) (Ap * 100) / (SSRbpcount), 7),
                                cell((float) (Tp * 100) / (SSRbpcount), 7),
                                cell((float) (Cp * 100) / (SSRbpcount), 7),
                                cell((float) (Gp * 100) / (SSRbpcount), 7));
                        out.println(
                                "|------------|-------|------------|-------|-------|-------|-------|---------------|---------------|---------------|");
                        html.println("<tr><td><b>Perfect</b></td><td>" + pcount + "</td><td>" + pbpcount
                                + "</td><td>" + round.format((float) Ap * 100 / SSRbpcount) + "</td><td>"
                                + round.format((float) Tp * 100 / SSRbpcount) + "</td><td>"
                                + round.format((float) Cp * 100 / SSRbpcount) + "</td><td>"
                                + round.format((float) Gp * 100 / SSRbpcount) + "</td><td>"
                                + round.format((float) pcount / SSRcount) + "</td><td>"
                                + round.format((float) pbpcount / seqcount) + "</td><td>"
                                + round.format((float) pbpcount / SSRbpcount) + "</td></tr>");
                    }
                    if (box2.isSelected()) {
                        relfreq += (float) imcount / SSRcount;
                        abfreq += (float) imbpcount / SSRbpcount;
                        out.printf(
                                "|Imperfect   |" + cell(Integer.toString(imcount), 7) + "|"
                                        + cell(Long.toString(imbpcount), 12) + "|%s|%s|%s|%s|"
                                        + cell((float) imcount / SSRcount, 15) + "|"
                                        + cell((float) imbpcount / seqcount, 15) + "|"
                                        + cell((float) imbpcount / SSRbpcount, 15) + "|\n",
                                cell((float) (Aim * 100) / (SSRbpcount), 7),
                                cell((float) (Tim * 100) / (SSRbpcount), 7),
                                cell((float) (Cim * 100) / (SSRbpcount), 7),
                                cell((float) (Gim * 100) / (SSRbpcount), 7));
                        out.println(
                                "|------------|-------|------------|-------|-------|-------|-------|---------------|---------------|---------------|");
                        html.println("<tr><td><b>Imperfect</b></td><td>" + imcount + "</td><td>" + imbpcount
                                + "</td><td>" + round.format((float) Aim * 100 / SSRbpcount) + "</td><td>"
                                + round.format((float) Tim * 100 / SSRbpcount) + "</td><td>"
                                + round.format((float) Cim * 100 / SSRbpcount) + "</td><td>"
                                + round.format((float) Gim * 100 / SSRbpcount) + "</td><td>"
                                + round.format((float) imcount / SSRcount) + "</td><td>"
                                + round.format((float) imbpcount / seqcount) + "</td><td>"
                                + round.format((float) imbpcount / SSRbpcount) + "</td></tr>");
                    }
                    if (box3.isSelected()) {
                        if (com.isSelected()) {
                            abfreq += (float) cbpcount / SSRbpcount;
                            relfreq += (float) ccount / SSRcount;
                            out.printf(
                                    "|Compound Per|" + cell(Integer.toString(ccount), 7) + "|"
                                            + cell(Long.toString(cbpcount), 12) + "|%s|%s|%s|%s|"
                                            + cell((float) ccount / SSRcount, 15) + "|"
                                            + cell((float) cbpcount / seqcount, 15) + "|"
                                            + cell((float) cbpcount / SSRbpcount, 15) + "|\n",
                                    cell((float) (Ac * 100) / (SSRbpcount), 7),
                                    cell((float) (Tc * 100) / (SSRbpcount), 7),
                                    cell((float) (Cc * 100) / (SSRbpcount), 7),
                                    cell((float) (Gc * 100) / (SSRbpcount), 7));
                            out.println(
                                    "|------------|-------|------------|-------|-------|-------|-------|---------------|---------------|---------------|");
                            html.println("<tr><td><b>Compound Perf.</b></td><td>" + ccount + "</td><td>"
                                    + cbpcount + "</td><td>" + round.format((float) Ac * 100 / SSRbpcount)
                                    + "</td><td>" + round.format((float) Tc * 100 / SSRbpcount) + "</td><td>"
                                    + round.format((float) Cc * 100 / SSRbpcount) + "</td><td>"
                                    + round.format((float) Gc * 100 / SSRbpcount) + "</td><td>"
                                    + round.format((float) ccount / SSRcount) + "</td><td>"
                                    + round.format((float) cbpcount / seqcount) + "</td><td>"
                                    + round.format((float) cbpcount / SSRbpcount) + "</td></tr>");
                        }
                        if (incom.isSelected()) {
                            abfreq += (float) cibpcount / SSRbpcount;
                            relfreq += (float) cicount / SSRcount;
                            out.printf(
                                    "|Compound Imp|" + cell(Integer.toString(cicount), 7) + "|"
                                            + cell(Long.toString(cibpcount), 12) + "|%s|%s|%s|%s|"
                                            + cell((float) cicount / SSRcount, 15) + "|"
                                            + cell((float) cibpcount / seqcount, 15) + "|"
                                            + cell((float) cibpcount / SSRbpcount, 15) + "|\n",
                                    cell((float) (Aci * 100) / (SSRbpcount), 7),
                                    cell((float) (Tci * 100) / (SSRbpcount), 7),
                                    cell((float) (Cci * 100) / (SSRbpcount), 7),
                                    cell((float) (Gci * 100) / (SSRbpcount), 7));
                            out.println(
                                    "|------------|-------|------------|-------|-------|-------|-------|---------------|---------------|---------------|");
                            html.println("<tr><td><b>Compound Imperf.</b></td><td>" + cicount + "</td><td>"
                                    + cibpcount + "</td><td>" + round.format((float) Aci * 100 / SSRbpcount)
                                    + "</td><td>" + round.format((float) Tci * 100 / SSRbpcount) + "</td><td>"
                                    + round.format((float) Cci * 100 / SSRbpcount) + "</td><td>"
                                    + round.format((float) Gci * 100 / SSRbpcount) + "</td><td>"
                                    + round.format((float) cicount / SSRcount) + "</td><td>"
                                    + round.format((float) cibpcount / seqcount) + "</td><td>"
                                    + round.format((float) cibpcount / SSRbpcount) + "</td></tr>");
                        }
                    }

                    out.println("|TOTAL       |" + cell(Integer.toString(SSRcount), 7) + "|"
                            + cell(Long.toString(SSRbpcount), 12) + "|" + cell((float) A * 100 / SSRbpcount, 7)
                            + "|" + cell((float) T * 100 / SSRbpcount, 7) + "|"
                            + cell((float) C * 100 / SSRbpcount, 7) + "|"
                            + cell((float) G * 100 / SSRbpcount, 7) + "|" + cell(relfreq, 15) + "|"
                            + cell((float) SSRbpcount / seqcount, 15) + "|" + cell((float) abfreq, 15) + "|");
                    out.println(
                            "|____________|_______|____________|_______|_______|_______|_______|_______________|_______________|_______________|");
                    out.println("Genome length (bp): " + seqcount);
                    out.println("Relative Frequency: Count of each motif type / total SSR count");
                    out.println("Abundance: bp of each motif type / total sequence bp");
                    out.println("Relative Abundance: bp of each motif type / total microsatellites bp");
                    out.println();
                    out.println();
                    out.close();
                    html.println("<tr><td><b>TOTAL</b></td><td>" + SSRcount + "</td><td>" + SSRbpcount
                            + "</td><td>" + round.format((float) A * 100 / SSRbpcount) + "</td><td>"
                            + round.format((float) T * 100 / SSRbpcount) + "</td><td>"
                            + round.format((float) C * 100 / SSRbpcount) + "</td><td>"
                            + round.format((float) G * 100 / SSRbpcount) + "</td><td>"
                            + round.format((float) relfreq) + "</td><td>"
                            + round.format((float) SSRbpcount / seqcount) + "</td><td>"
                            + round.format((float) abfreq) + "</td></tr></table></html>");
                    html.close();

                    try {
                        Runtime.getRuntime().exec("notepad " + file);
                    } catch (IOException ex) {
                        Logger.getLogger(StatsSelection.class.getName()).log(Level.SEVERE, null, ex);
                    }

                }

            }

            setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));

        }
    });

    selectsp = new JButton("Select new Species");
    selectsp.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            try {
                input_frame frame = new input_frame();
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(updateframe.class.getName()).log(Level.SEVERE, null, ex);
            } catch (SQLException ex) {
                Logger.getLogger(updateframe.class.getName()).log(Level.SEVERE, null, ex);
            }
            dispose();
        }
    });

    quit = new JButton("Quit");
    quit.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            System.exit(0);
        }
    });

    tab = new JTabbedPane();
    tab.setSize(790, 590);

    // about us panel
    ImageIcon image = new ImageIcon("miga.png");
    JLabel label = new JLabel("", image, JLabel.CENTER);
    contact = new JLabel(
            "<html><b><p>Machine Learning and Knowledge Discovery Group</p><p>Computer Science Department</p><p>Aristotle University of Thessaloniki</p><p> </p><p>In collaboration with the laboratory of</p><p> </p><p>Population Genetics of Animal Organisms</p><p>Department of Genetics, Development and Molecular Biology</p><p>School of Biology</p><p>Aristotle University of Thessaloniki</p><p> </p><p> </p><p>For any comments or information please contact with:</p><p><a href=\"mailto:ikavak@csd.auth.gr\">ikavak@csd.auth.gr</a></p></b></html>");
    about = new JPanel();
    about.setLayout(new GridBagLayout());
    GridBagConstraints ab = new GridBagConstraints();

    ab.fill = GridBagConstraints.WEST;
    ab.weightx = 0.5;
    ab.weighty = 0.5;
    ab.gridx = 0;
    ab.gridy = 0;
    about.add(label, ab);

    ab.fill = GridBagConstraints.WEST;
    ab.weightx = 0.5;
    ab.weighty = 0.5;
    ab.gridx = 0;
    ab.gridy = 1;
    about.add(contact, ab);

    //end of about us 

    //below are the rest of th panels

    paneltop = new JPanel();
    TitledBorder t = BorderFactory.createTitledBorder("Select Period");
    paneltop.setBorder(t);

    paneltop.setLayout(new GridBagLayout());
    GridBagConstraints pt = new GridBagConstraints();

    pt.fill = GridBagConstraints.HORIZONTAL;
    pt.weightx = 0.5;
    pt.weighty = 0.5;
    pt.gridx = 0;
    pt.gridy = 0;
    paneltop.add(mono, pt);

    pt.fill = GridBagConstraints.HORIZONTAL;
    pt.weightx = 0.5;
    pt.weighty = 0.5;
    pt.gridx = 0;
    pt.gridy = -1;
    paneltop.add(di, pt);

    pt.fill = GridBagConstraints.HORIZONTAL;
    pt.weightx = 0.5;
    pt.weighty = 0.5;
    pt.gridx = 0;
    pt.gridy = -2;
    paneltop.add(tri, pt);

    pt.fill = GridBagConstraints.HORIZONTAL;
    pt.weightx = 0.5;
    pt.weighty = 0.5;
    pt.gridx = 0;
    pt.gridy = -3;
    paneltop.add(tetra, pt);

    pt.fill = GridBagConstraints.HORIZONTAL;
    pt.weightx = 0.5;
    pt.weighty = 0.5;
    pt.gridx = 0;
    pt.gridy = -4;
    paneltop.add(penta, pt);

    pt.fill = GridBagConstraints.HORIZONTAL;
    pt.weightx = 0.5;
    pt.weighty = 0.5;
    pt.gridx = 0;
    pt.gridy = -5;
    paneltop.add(hexa, pt);

    panel1 = new JPanel();
    TitledBorder title = BorderFactory.createTitledBorder("Type");
    panel1.setBorder(title);

    panel1.setLayout(new GridBagLayout());
    GridBagConstraints a = new GridBagConstraints();

    a.fill = GridBagConstraints.HORIZONTAL;
    a.weightx = 0.5;
    a.weighty = 0.5;
    a.gridx = 0;
    a.gridy = 0;
    panel1.add(select, a);

    a.fill = GridBagConstraints.HORIZONTAL;
    a.weightx = 0.5;
    a.weighty = 0.5;
    a.gridx = 0;
    a.gridy = -1;
    panel1.add(box1, a);

    a.fill = GridBagConstraints.HORIZONTAL;
    a.weightx = 0.5;
    a.weighty = 0.5;
    a.gridx = 0;
    a.gridy = -2;
    panel1.add(box2, a);

    a.fill = GridBagConstraints.HORIZONTAL;
    a.weightx = 0.5;
    a.weighty = 0.5;
    a.gridx = 0;
    a.gridy = -3;
    panel1.add(box3, a);

    panel2 = new JPanel();
    panel2.setVisible(false);
    TitledBorder title2 = BorderFactory.createTitledBorder("More Options");
    panel2.setBorder(title2);

    panel2.setLayout(new GridBagLayout());
    GridBagConstraints b = new GridBagConstraints();

    b.fill = GridBagConstraints.HORIZONTAL;
    b.weightx = 0.5;
    b.weighty = 0.5;
    b.gridx = 0;
    b.gridy = 0;
    panel2.add(minimumssrlen, b);

    b.fill = GridBagConstraints.CENTER;
    b.weightx = 0.5;
    b.weighty = 0.5;
    b.gridx = 1;
    b.gridy = 0;
    panel2.add(score, b);

    b.fill = GridBagConstraints.HORIZONTAL;
    b.weightx = 0.5;
    b.weighty = 0.5;
    b.gridx = 0;
    b.gridy = -1;
    panel2.add(gapmax, b);

    b.fill = GridBagConstraints.CENTER;
    b.weightx = 0.5;
    b.weighty = 0.5;
    b.gridx = 1;
    b.gridy = -1;
    panel2.add(max, b);

    b.fill = GridBagConstraints.HORIZONTAL;
    b.weightx = 0.5;
    b.weighty = 0.5;
    b.gridx = 0;
    b.gridy = -2;
    panel2.add(minlenpregap, b);

    b.fill = GridBagConstraints.CENTER;
    b.weightx = 0.5;
    b.weighty = 0.5;
    b.gridx = 1;
    b.gridy = -2;
    panel2.add(minpregap, b);

    b.fill = GridBagConstraints.HORIZONTAL;
    b.weightx = 0.5;
    b.weighty = 0.5;
    b.gridx = 0;
    b.gridy = -3;
    panel2.add(gapcomp, b);

    b.fill = GridBagConstraints.CENTER;
    b.weightx = 0.5;
    b.weighty = 0.5;
    b.gridx = 1;
    b.gridy = -3;
    panel2.add(maxgapcomp, b);

    paneldownleft = new JPanel();
    paneldownleft.setVisible(false);
    TitledBorder titledl = BorderFactory.createTitledBorder("Compound SSR options");
    paneldownleft.setBorder(titledl);
    paneldownleft.setLayout(new GridBagLayout());

    GridBagConstraints dl = new GridBagConstraints();

    dl.fill = GridBagConstraints.CENTER;
    dl.weightx = 0.5;
    dl.weighty = 0.5;
    dl.gridx = 0;
    dl.gridy = 0;
    paneldownleft.add(com, dl);

    dl.fill = GridBagConstraints.CENTER;
    dl.weightx = 0.5;
    dl.weighty = 0.5;
    dl.gridx = 0;
    dl.gridy = -1;
    paneldownleft.add(incom, dl);

    paneldownright = new JPanel();
    paneldownright.setLayout(new GridBagLayout());
    GridBagConstraints dr = new GridBagConstraints();

    dr.fill = GridBagConstraints.CENTER;
    dr.weightx = 0.5;
    dr.weighty = 0.5;
    dr.gridx = 0;
    dr.gridy = 0;
    paneldownright.add(show, dr);

    dr.fill = GridBagConstraints.CENTER;
    dr.weightx = 0.5;
    dr.weighty = 0.5;
    dr.gridx = 0;
    dr.gridy = -1;
    paneldownright.add(selectsp, dr);

    dr.fill = GridBagConstraints.CENTER;
    dr.weightx = 0.5;
    dr.weighty = 0.5;
    dr.gridx = 0;
    dr.gridy = -2;
    paneldownright.add(quit, dr);

    panelup = new JPanel();
    TitledBorder titleup = BorderFactory.createTitledBorder("Statistics");
    panelup.setBorder(titleup);

    panelup.setLayout(new GridBagLayout());
    GridBagConstraints c = new GridBagConstraints();

    c.fill = GridBagConstraints.HORIZONTAL;
    c.weightx = 0.5;
    c.weighty = 0.5;
    c.gridx = 0;
    c.gridy = 0;
    panelup.add(paneltop, c);

    c.fill = GridBagConstraints.HORIZONTAL;
    c.weightx = 0.5;
    c.weighty = 0.5;
    c.gridx = 1;
    c.gridy = 0;
    panelup.add(panel1, c);

    c.fill = GridBagConstraints.HORIZONTAL;
    c.weightx = 0.5;
    c.weighty = 0.5;
    c.gridx = 0;
    c.gridy = -1;
    panelup.add(paneldownleft, c);

    c.fill = GridBagConstraints.HORIZONTAL;
    c.weightx = 0.5;
    c.weighty = 0.5;
    c.gridx = 1;
    c.gridy = -1;
    panelup.add(panel2, c);

    c.fill = GridBagConstraints.HORIZONTAL;
    c.weightx = 0.5;
    c.weighty = 0.5;
    c.gridx = 0;
    c.gridy = -2;
    panelup.add(paneldownright, c);

    TitledBorder s = BorderFactory.createTitledBorder("Standardization");
    std.setBorder(s);
    std.add(no_st);
    std.add(part_st);
    std.add(full_st);
    std.setEnabled(false);

    c.fill = GridBagConstraints.HORIZONTAL;
    c.weightx = 0.5;
    c.weighty = 0.5;
    c.gridx = 0;
    c.gridy = -3;
    panelup.add(std, c);

    tab.add(panelup, "Statistics");

    panelshow = new JPanel();
    TitledBorder ps = BorderFactory.createTitledBorder("Sequence Retrieval");
    panelshow.setBorder(ps);

    panelshow.setLayout(new GridBagLayout());
    GridBagConstraints psg = new GridBagConstraints();

    panelshowup = new JPanel();

    panelshowup.setLayout(new GridBagLayout());
    GridBagConstraints p = new GridBagConstraints();

    p.fill = GridBagConstraints.WEST;
    p.weightx = 0.5;
    p.weighty = 0.5;
    p.gridx = 0;
    p.gridy = 0;
    panelshowup.add(lab, p);

    panelshowd = new JPanel();

    panelshowd.setLayout(new GridBagLayout());
    GridBagConstraints pd = new GridBagConstraints();

    pd.fill = GridBagConstraints.CENTER;
    pd.weightx = 0.5;
    pd.weighty = 0.5;
    pd.gridx = 0;
    pd.gridy = -1;
    panelshowd.add(startlab, pd);

    pd.fill = GridBagConstraints.CENTER;
    pd.weightx = 0.5;
    pd.weighty = 0.5;
    pd.gridx = 1;
    pd.gridy = -1;
    panelshowd.add(startnum, pd);

    pd.fill = GridBagConstraints.CENTER;
    pd.weightx = 0.5;
    pd.weighty = 0.5;
    pd.gridx = 0;
    pd.gridy = -2;
    panelshowd.add(endlab, pd);

    pd.fill = GridBagConstraints.CENTER;
    pd.weightx = 0.5;
    pd.weighty = 0.5;
    pd.gridx = 1;
    pd.gridy = -2;
    panelshowd.add(endnum, pd);

    pd.fill = GridBagConstraints.CENTER;
    pd.weightx = 0.5;
    pd.weighty = 0.5;
    pd.gridx = 0;
    pd.gridy = -3;
    panelshowd.add(titlelab, pd);

    pd.fill = GridBagConstraints.CENTER;
    pd.weightx = 0.5;
    pd.weighty = 0.5;
    pd.gridx = 1;
    pd.gridy = -3;
    panelshowd.add(titlef, pd);

    pd.fill = GridBagConstraints.CENTER;
    pd.weightx = 0.5;
    pd.weighty = 0.5;
    pd.gridx = 0;
    pd.gridy = -4;
    panelshowd.add(flk, pd);

    pd.fill = GridBagConstraints.CENTER;
    pd.weightx = 0.5;
    pd.weighty = 0.5;
    pd.gridx = 1;
    pd.gridy = -4;
    panelshowd.add(new JLabel(" "), pd);

    pd.fill = GridBagConstraints.CENTER;
    pd.weightx = 0.5;
    pd.weighty = 0.5;
    pd.gridx = 0;
    pd.gridy = -5;
    panelshowd.add(flankst, pd);

    pd.fill = GridBagConstraints.CENTER;
    pd.weightx = 0.5;
    pd.weighty = 0.5;
    pd.gridx = 1;
    pd.gridy = -5;
    panelshowd.add(flankstn, pd);

    pd.fill = GridBagConstraints.CENTER;
    pd.weightx = 0.5;
    pd.weighty = 0.5;
    pd.gridx = 0;
    pd.gridy = -6;
    panelshowd.add(flankend, pd);

    pd.fill = GridBagConstraints.CENTER;
    pd.weightx = 0.5;
    pd.weighty = 0.5;
    pd.gridx = 1;
    pd.gridy = -6;
    panelshowd.add(flankendn, pd);

    pd.fill = GridBagConstraints.CENTER;
    pd.weightx = 0.5;
    pd.weighty = 0.5;
    pd.gridx = 1;
    pd.gridy = -7;
    panelshowd.add(retrieve, pd);

    psg.fill = GridBagConstraints.CENTER;
    psg.weightx = 0.5;
    psg.weighty = 0.5;
    psg.gridx = 0;
    psg.gridy = 0;
    panelshow.add(panelshowup, psg);

    psg.fill = GridBagConstraints.CENTER;
    psg.weightx = 0.5;
    psg.weighty = 0.5;
    psg.gridx = 0;
    psg.gridy = -1;
    panelshow.add(panelshowd, psg);

    psg.fill = GridBagConstraints.CENTER;
    psg.weightx = 0.5;
    psg.weighty = 0.5;
    psg.gridx = 0;
    psg.gridy = -2;
    panelshow.add(sbrText, psg);

    tab.add(panelshow, "Sequence Retrieval");
    tab.add(about, "About us");
    add(tab);
    setVisible(true);

}