JAL-1807 still testing
[jalviewjs.git] / unused / appletgui / PCAPanel.java
index 372594a..39f8dfb 100644 (file)
-/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- * 
- * This file is part of Jalview.
- * 
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License 
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *  
- * Jalview is distributed in the hope that it will be useful, but 
- * WITHOUT ANY WARRANTY; without even the implied warranty 
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
- * PURPOSE.  See the GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
- */
-package jalview.appletgui;
-
-import jalview.bin.JalviewLite;
-import jalview.datamodel.Alignment;
-import jalview.datamodel.AlignmentView;
-import jalview.datamodel.ColumnSelection;
-import jalview.datamodel.SeqCigar;
-import jalview.datamodel.SequenceI;
-import jalview.util.MessageManager;
-import jalview.viewmodel.PCAModel;
-
-import java.awt.BorderLayout;
-import javax.swing.JButton;
-import javax.swing.JCheckBoxMenuItem;
-import java.awt.Color;
-import java.awt.FlowLayout;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JMenu;
-import javax.swing.JMenuBar;
-import javax.swing.JMenuItem;
-import javax.swing.JPanel;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.ItemEvent;
-import java.awt.event.ItemListener;
-
-public class PCAPanel extends EmbmenuFrame implements Runnable,
-        ActionListener, ItemListener
-{
-  RotatableCanvas rc;
-
-  AlignViewport av;
-
-  PCAModel pcaModel;
-
-  int top = 0;
-
-  public PCAPanel(AlignViewport av)
-  {
-    try
-    {
-      jbInit();
-    } catch (Exception e)
-    {
-      e.printStackTrace();
-    }
-
-    for (int i = 1; i < 8; i++)
-    {
-      xCombobox.addItem("dim " + i);
-      yCombobox.addItem("dim " + i);
-      zCombobox.addItem("dim " + i);
-    }
-
-    this.av = av;
-    boolean selected = av.getSelectionGroup() != null
-            && av.getSelectionGroup().getSize() > 0;
-    AlignmentView seqstrings = av.getAlignmentView(selected);
-    boolean nucleotide = av.getAlignment().isNucleotide();
-    SequenceI[] seqs;
-    if (!selected)
-    {
-      seqs = av.getAlignment().getSequencesArray();
-    }
-    else
-    {
-      seqs = av.getSelectionGroup().getSequencesInOrder(av.getAlignment());
-    }
-    SeqCigar sq[] = seqstrings.getSequences();
-    int length = sq[0].getWidth();
-
-    for (int i = 0; i < seqs.length; i++)
-    {
-      if (sq[i].getWidth() != length)
-      {
-        System.out
-                .println("Sequences must be equal length for PCA analysis");
-        return;
-      }
-    }
-    pcaModel = new PCAModel(seqstrings, seqs, nucleotide);
-
-    rc = new RotatableCanvas(av);
-    embedMenuIfNeeded(rc);
-    add(rc, BorderLayout.CENTER);
-
-    JalviewLite.addFrame(this,
-            MessageManager.getString("label.principal_component_analysis"),
-            475, 400);
-
-    Thread worker = new Thread(this);
-    worker.start();
-  }
-
-  /**
-   * DOCUMENT ME!
-   */
-  public void run()
-  {
-    // TODO progress indicator
-    calcSettings.setEnabled(false);
-    rc.setEnabled(false);
-    try
-    {
-      nuclSetting.setState(pcaModel.isNucleotide());
-      protSetting.setState(!pcaModel.isNucleotide());
-      pcaModel.run();
-      // ////////////////
-      xCombobox.select(0);
-      yCombobox.select(1);
-      zCombobox.select(2);
-
-      pcaModel.updateRc(rc);
-      // rc.invalidate();
-      top = pcaModel.getTop();
-    } catch (OutOfMemoryError x)
-    {
-      System.err.println("Out of memory when calculating PCA.");
-      return;
-    }
-    calcSettings.setEnabled(true);
-
-    // TODO revert progress indicator
-    rc.setEnabled(true);
-    rc.repaint();
-    this.repaint();
-  }
-
-  void doDimensionChange()
-  {
-    if (top == 0)
-    {
-      return;
-    }
-
-    int dim1 = top - xCombobox.getSelectedIndex();
-    int dim2 = top - yCombobox.getSelectedIndex();
-    int dim3 = top - zCombobox.getSelectedIndex();
-    pcaModel.updateRcView(dim1, dim2, dim3);
-    rc.img = null;
-    rc.rotmat.setIdentity();
-    rc.initAxes();
-    rc.paint(rc.getGraphics());
-  }
-
-  public void actionPerformed(ActionEvent evt)
-  {
-    if (evt.getSource() == inputData)
-    {
-      showOriginalData();
-    }
-    if (evt.getSource() == resetButton)
-    {
-      xCombobox.select(0);
-      yCombobox.select(1);
-      zCombobox.select(2);
-      doDimensionChange();
-    }
-    if (evt.getSource() == values)
-    {
-      values_actionPerformed();
-    }
-  }
-
-  public void itemStateChanged(ItemEvent evt)
-  {
-    if (evt.getSource() == xCombobox)
-    {
-      xCombobox_actionPerformed();
-    }
-    else if (evt.getSource() == yCombobox)
-    {
-      yCombobox_actionPerformed();
-    }
-    else if (evt.getSource() == zCombobox)
-    {
-      zCombobox_actionPerformed();
-    }
-    else if (evt.getSource() == labels)
-    {
-      labels_itemStateChanged(evt);
-    }
-    else if (evt.getSource() == nuclSetting)
-    {
-      if (!pcaModel.isNucleotide())
-      {
-        pcaModel.setNucleotide(true);
-        new Thread(this).start();
-      }
-    }
-    else if (evt.getSource() == protSetting)
-    {
-      if (pcaModel.isNucleotide())
-      {
-        pcaModel.setNucleotide(false);
-        new Thread(this).start();
-      }
-    }
-  }
-
-  protected void xCombobox_actionPerformed()
-  {
-    doDimensionChange();
-  }
-
-  protected void yCombobox_actionPerformed()
-  {
-    doDimensionChange();
-  }
-
-  protected void zCombobox_actionPerformed()
-  {
-    doDimensionChange();
-  }
-
-  public void values_actionPerformed()
-  {
-
-    CutAndPasteTransfer cap = new CutAndPasteTransfer(false, null);
-    JFrame frame = new JFrame();
-    frame.add(cap);
-    JalviewLite.addFrame(frame,
-            MessageManager.getString("label.pca_details"), 500, 500);
-
-    cap.setText(pcaModel.getDetails());
-  }
-
-  void showOriginalData()
-  {
-    // decide if av alignment is sufficiently different to original data to
-    // warrant a new window to be created
-    // create new alignmnt window with hidden regions (unhiding hidden regions
-    // yields unaligned seqs)
-    // or create a selection box around columns in alignment view
-    // test Alignment(SeqCigar[])
-    char gc = '-';
-    try
-    {
-      // we try to get the associated view's gap character
-      // but this may fail if the view was closed...
-      gc = av.getGapCharacter();
-    } catch (Exception ex)
-    {
-    }
-    ;
-    Object[] alAndColsel = pcaModel.getSeqtrings()
-            .getAlignmentAndColumnSelection(gc);
-
-    if (alAndColsel != null && alAndColsel[0] != null)
-    {
-      Alignment al = new Alignment((SequenceI[]) alAndColsel[0]);
-      AlignFrame af = new AlignFrame(al, av.applet,
-              "Original Data for PCA", false);
-
-      af.viewport.setHiddenColumns((ColumnSelection) alAndColsel[1]);
-    }
-  }
-
-  public void labels_itemStateChanged(ItemEvent itemEvent)
-  {
-    rc.showLabels(labels.isSelected());
-  }
-
-  JPanel jPanel2 = new JPanel();
-
-  JLabel jLabel1 = new JLabel();
-
-  JLabel jLabel2 = new JLabel();
-
-  JLabel jLabel3 = new JLabel();
-
-  protected Choice xCombobox = new Choice();
-
-  protected Choice yCombobox = new Choice();
-
-  protected Choice zCombobox = new Choice();
-
-  protected JButton resetButton = new JButton();
-
-  FlowLayout flowLayout1 = new FlowLayout();
-
-  BorderLayout borderLayout1 = new BorderLayout();
-
-  JMenuBar menuBar1 = new JMenuBar();
-
-  JMenu menu1 = new JMenu();
-
-  JMenu menu2 = new JMenu();
-
-  JMenu calcSettings = new JMenu();
-
-  protected JCheckBoxMenuItem labels = new JCheckBoxMenuItem();
-
-  protected JCheckBoxMenuItem protSetting = new JCheckBoxMenuItem();
-
-  protected JCheckBoxMenuItem nuclSetting = new JCheckBoxMenuItem();
-
-  JMenuItem values = new JMenuItem();
-
-  JMenuItem inputData = new JMenuItem();
-
-  private void jbInit() throws Exception
-  {
-    this.setLayout(borderLayout1);
-    jPanel2.setLayout(flowLayout1);
-    jLabel1.setFont(new java.awt.Font("Verdana", 0, 12));
-    jLabel1.setText("x=");
-    jLabel2.setFont(new java.awt.Font("Verdana", 0, 12));
-    jLabel2.setText("y=");
-    jLabel3.setFont(new java.awt.Font("Verdana", 0, 12));
-    jLabel3.setText("z=");
-    jPanel2.setBackground(Color.white);
-    zCombobox.setFont(new java.awt.Font("Verdana", 0, 12));
-    zCombobox.addItemListener(this);
-    yCombobox.setFont(new java.awt.Font("Verdana", 0, 12));
-    yCombobox.addItemListener(this);
-    xCombobox.setFont(new java.awt.Font("Verdana", 0, 12));
-    xCombobox.addItemListener(this);
-    resetButton.setFont(new java.awt.Font("Verdana", 0, 12));
-    resetButton.setLabel(MessageManager.getString("action.reset"));
-    resetButton.addActionListener(this);
-    this.setJMenuBar(menuBar1);
-    menu1.setLabel(MessageManager.getString("action.file"));
-    menu2.setLabel(MessageManager.getString("action.view"));
-    calcSettings.setLabel(MessageManager.getString("action.change_params"));
-    labels.setLabel(MessageManager.getString("label.labels"));
-    labels.addItemListener(this);
-    values.setLabel(MessageManager.getString("label.output_values"));
-    values.addActionListener(this);
-    inputData.setLabel(MessageManager.getString("label.input_data"));
-    nuclSetting.setLabel(MessageManager
-            .getString("label.nucleotide_matrix"));
-    nuclSetting.addItemListener(this);
-    protSetting.setLabel(MessageManager.getString("label.protein_matrix"));
-    protSetting.addItemListener(this);
-    this.add(jPanel2, BorderLayout.SOUTH);
-    jPanel2.add(jLabel1, null);
-    jPanel2.add(xCombobox, null);
-    jPanel2.add(jLabel2, null);
-    jPanel2.add(yCombobox, null);
-    jPanel2.add(jLabel3, null);
-    jPanel2.add(zCombobox, null);
-    jPanel2.add(resetButton, null);
-    menuBar1.add(menu1);
-    menuBar1.add(menu2);
-    menuBar1.add(calcSettings);
-    menu2.add(labels);
-    menu1.add(values);
-    menu1.add(inputData);
-    calcSettings.add(nuclSetting);
-    calcSettings.add(protSetting);
-    inputData.addActionListener(this);
-  }
-
-}
+/*\r
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)\r
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors\r
+ * \r
+ * This file is part of Jalview.\r
+ * \r
+ * Jalview is free software: you can redistribute it and/or\r
+ * modify it under the terms of the GNU General Public License \r
+ * as published by the Free Software Foundation, either version 3\r
+ * of the License, or (at your option) any later version.\r
+ *  \r
+ * Jalview is distributed in the hope that it will be useful, but \r
+ * WITHOUT ANY WARRANTY; without even the implied warranty \r
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR \r
+ * PURPOSE.  See the GNU General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU General Public License\r
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.\r
+ * The Jalview Authors are detailed in the 'AUTHORS' file.\r
+ */\r
+package jalview.appletgui;\r
+\r
+import jalview.bin.JalviewLite;\r
+import jalview.datamodel.Alignment;\r
+import jalview.datamodel.AlignmentView;\r
+import jalview.datamodel.ColumnSelection;\r
+import jalview.datamodel.SeqCigar;\r
+import jalview.datamodel.SequenceI;\r
+import jalview.util.MessageManager;\r
+import jalview.viewmodel.PCAModel;\r
+\r
+import java.awt.BorderLayout;\r
+import javax.swing.JButton;\r
+import javax.swing.JCheckBoxMenuItem;\r
+import java.awt.Color;\r
+import java.awt.FlowLayout;\r
+import javax.swing.JFrame;\r
+import javax.swing.JLabel;\r
+import javax.swing.JMenu;\r
+import javax.swing.JMenuBar;\r
+import javax.swing.JMenuItem;\r
+import javax.swing.JPanel;\r
+import java.awt.event.ActionEvent;\r
+import java.awt.event.ActionListener;\r
+import java.awt.event.ItemEvent;\r
+import java.awt.event.ItemListener;\r
+\r
+public class PCAPanel extends EmbmenuFrame implements Runnable,\r
+        ActionListener, ItemListener\r
+{\r
+  RotatableCanvas rc;\r
+\r
+  AlignViewport av;\r
+\r
+  PCAModel pcaModel;\r
+\r
+  int top = 0;\r
+\r
+  public PCAPanel(AlignViewport av)\r
+  {\r
+    try\r
+    {\r
+      jbInit();\r
+    } catch (Exception e)\r
+    {\r
+      e.printStackTrace();\r
+    }\r
+\r
+    for (int i = 1; i < 8; i++)\r
+    {\r
+      xCombobox.addItem("dim " + i);\r
+      yCombobox.addItem("dim " + i);\r
+      zCombobox.addItem("dim " + i);\r
+    }\r
+\r
+    this.av = av;\r
+    boolean selected = av.getSelectionGroup() != null\r
+            && av.getSelectionGroup().getSize() > 0;\r
+    AlignmentView seqstrings = av.getAlignmentView(selected);\r
+    boolean nucleotide = av.getAlignment().isNucleotide();\r
+    SequenceI[] seqs;\r
+    if (!selected)\r
+    {\r
+      seqs = av.getAlignment().getSequencesArray();\r
+    }\r
+    else\r
+    {\r
+      seqs = av.getSelectionGroup().getSequencesInOrder(av.getAlignment());\r
+    }\r
+    SeqCigar sq[] = seqstrings.getSequences();\r
+    int length = sq[0].getWidth();\r
+\r
+    for (int i = 0; i < seqs.length; i++)\r
+    {\r
+      if (sq[i].getWidth() != length)\r
+      {\r
+        System.out\r
+                .println("Sequences must be equal length for PCA analysis");\r
+        return;\r
+      }\r
+    }\r
+    pcaModel = new PCAModel(seqstrings, seqs, nucleotide);\r
+\r
+    rc = new RotatableCanvas(av);\r
+    embedMenuIfNeeded(rc);\r
+    add(rc, BorderLayout.CENTER);\r
+\r
+    JalviewLite.addFrame(this,\r
+            MessageManager.getString("label.principal_component_analysis"),\r
+            475, 400);\r
+\r
+    Thread worker = new Thread(this);\r
+    worker.start();\r
+  }\r
+\r
+  /**\r
+   * DOCUMENT ME!\r
+   */\r
+  public void run()\r
+  {\r
+    // TODO progress indicator\r
+    calcSettings.setEnabled(false);\r
+    rc.setEnabled(false);\r
+    try\r
+    {\r
+      nuclSetting.setState(pcaModel.isNucleotide());\r
+      protSetting.setState(!pcaModel.isNucleotide());\r
+      pcaModel.run();\r
+      // ////////////////\r
+      xCombobox.select(0);\r
+      yCombobox.select(1);\r
+      zCombobox.select(2);\r
+\r
+      pcaModel.updateRc(rc);\r
+      // rc.invalidate();\r
+      top = pcaModel.getTop();\r
+    } catch (OutOfMemoryError x)\r
+    {\r
+      System.err.println("Out of memory when calculating PCA.");\r
+      return;\r
+    }\r
+    calcSettings.setEnabled(true);\r
+\r
+    // TODO revert progress indicator\r
+    rc.setEnabled(true);\r
+    rc.repaint();\r
+    this.repaint();\r
+  }\r
+\r
+  void doDimensionChange()\r
+  {\r
+    if (top == 0)\r
+    {\r
+      return;\r
+    }\r
+\r
+    int dim1 = top - xCombobox.getSelectedIndex();\r
+    int dim2 = top - yCombobox.getSelectedIndex();\r
+    int dim3 = top - zCombobox.getSelectedIndex();\r
+    pcaModel.updateRcView(dim1, dim2, dim3);\r
+    rc.img = null;\r
+    rc.rotmat.setIdentity();\r
+    rc.initAxes();\r
+    rc.paint(rc.getGraphics());\r
+  }\r
+\r
+  public void actionPerformed(ActionEvent evt)\r
+  {\r
+    if (evt.getSource() == inputData)\r
+    {\r
+      showOriginalData();\r
+    }\r
+    if (evt.getSource() == resetButton)\r
+    {\r
+      xCombobox.select(0);\r
+      yCombobox.select(1);\r
+      zCombobox.select(2);\r
+      doDimensionChange();\r
+    }\r
+    if (evt.getSource() == values)\r
+    {\r
+      values_actionPerformed();\r
+    }\r
+  }\r
+\r
+  public void itemStateChanged(ItemEvent evt)\r
+  {\r
+    if (evt.getSource() == xCombobox)\r
+    {\r
+      xCombobox_actionPerformed();\r
+    }\r
+    else if (evt.getSource() == yCombobox)\r
+    {\r
+      yCombobox_actionPerformed();\r
+    }\r
+    else if (evt.getSource() == zCombobox)\r
+    {\r
+      zCombobox_actionPerformed();\r
+    }\r
+    else if (evt.getSource() == labels)\r
+    {\r
+      labels_itemStateChanged(evt);\r
+    }\r
+    else if (evt.getSource() == nuclSetting)\r
+    {\r
+      if (!pcaModel.isNucleotide())\r
+      {\r
+        pcaModel.setNucleotide(true);\r
+        new Thread(this).start();\r
+      }\r
+    }\r
+    else if (evt.getSource() == protSetting)\r
+    {\r
+      if (pcaModel.isNucleotide())\r
+      {\r
+        pcaModel.setNucleotide(false);\r
+        new Thread(this).start();\r
+      }\r
+    }\r
+  }\r
+\r
+  protected void xCombobox_actionPerformed()\r
+  {\r
+    doDimensionChange();\r
+  }\r
+\r
+  protected void yCombobox_actionPerformed()\r
+  {\r
+    doDimensionChange();\r
+  }\r
+\r
+  protected void zCombobox_actionPerformed()\r
+  {\r
+    doDimensionChange();\r
+  }\r
+\r
+  public void values_actionPerformed()\r
+  {\r
+\r
+    CutAndPasteTransfer cap = new CutAndPasteTransfer(false, null);\r
+    JFrame frame = new JFrame();\r
+    frame.add(cap);\r
+    JalviewLite.addFrame(frame,\r
+            MessageManager.getString("label.pca_details"), 500, 500);\r
+\r
+    cap.setText(pcaModel.getDetails());\r
+  }\r
+\r
+  void showOriginalData()\r
+  {\r
+    // decide if av alignment is sufficiently different to original data to\r
+    // warrant a new window to be created\r
+    // create new alignmnt window with hidden regions (unhiding hidden regions\r
+    // yields unaligned seqs)\r
+    // or create a selection box around columns in alignment view\r
+    // test Alignment(SeqCigar[])\r
+    char gc = '-';\r
+    try\r
+    {\r
+      // we try to get the associated view's gap character\r
+      // but this may fail if the view was closed...\r
+      gc = av.getGapCharacter();\r
+    } catch (Exception ex)\r
+    {\r
+    }\r
+    ;\r
+    Object[] alAndColsel = pcaModel.getSeqtrings()\r
+            .getAlignmentAndColumnSelection(gc);\r
+\r
+    if (alAndColsel != null && alAndColsel[0] != null)\r
+    {\r
+      Alignment al = new Alignment((SequenceI[]) alAndColsel[0]);\r
+      AlignFrame af = new AlignFrame(al, av.applet,\r
+              "Original Data for PCA", false);\r
+\r
+      af.viewport.setHiddenColumns((ColumnSelection) alAndColsel[1]);\r
+    }\r
+  }\r
+\r
+  public void labels_itemStateChanged(ItemEvent itemEvent)\r
+  {\r
+    rc.showLabels(labels.isSelected());\r
+  }\r
+\r
+  JPanel jPanel2 = new JPanel();\r
+\r
+  JLabel jLabel1 = new JLabel();\r
+\r
+  JLabel jLabel2 = new JLabel();\r
+\r
+  JLabel jLabel3 = new JLabel();\r
+\r
+  protected Choice xCombobox = new Choice();\r
+\r
+  protected Choice yCombobox = new Choice();\r
+\r
+  protected Choice zCombobox = new Choice();\r
+\r
+  protected JButton resetButton = new JButton();\r
+\r
+  FlowLayout flowLayout1 = new FlowLayout();\r
+\r
+  BorderLayout borderLayout1 = new BorderLayout();\r
+\r
+  JMenuBar menuBar1 = new JMenuBar();\r
+\r
+  JMenu menu1 = new JMenu();\r
+\r
+  JMenu menu2 = new JMenu();\r
+\r
+  JMenu calcSettings = new JMenu();\r
+\r
+  protected JCheckBoxMenuItem labels = new JCheckBoxMenuItem();\r
+\r
+  protected JCheckBoxMenuItem protSetting = new JCheckBoxMenuItem();\r
+\r
+  protected JCheckBoxMenuItem nuclSetting = new JCheckBoxMenuItem();\r
+\r
+  JMenuItem values = new JMenuItem();\r
+\r
+  JMenuItem inputData = new JMenuItem();\r
+\r
+  private void jbInit() throws Exception\r
+  {\r
+    this.setLayout(borderLayout1);\r
+    jPanel2.setLayout(flowLayout1);\r
+    jLabel1.setFont(new java.awt.Font("Verdana", 0, 12));\r
+    jLabel1.setText("x=");\r
+    jLabel2.setFont(new java.awt.Font("Verdana", 0, 12));\r
+    jLabel2.setText("y=");\r
+    jLabel3.setFont(new java.awt.Font("Verdana", 0, 12));\r
+    jLabel3.setText("z=");\r
+    jPanel2.setBackground(Color.white);\r
+    zCombobox.setFont(new java.awt.Font("Verdana", 0, 12));\r
+    zCombobox.addItemListener(this);\r
+    yCombobox.setFont(new java.awt.Font("Verdana", 0, 12));\r
+    yCombobox.addItemListener(this);\r
+    xCombobox.setFont(new java.awt.Font("Verdana", 0, 12));\r
+    xCombobox.addItemListener(this);\r
+    resetButton.setFont(new java.awt.Font("Verdana", 0, 12));\r
+    resetButton.setLabel(MessageManager.getString("action.reset"));\r
+    resetButton.addActionListener(this);\r
+    this.setJMenuBar(menuBar1);\r
+    menu1.setLabel(MessageManager.getString("action.file"));\r
+    menu2.setLabel(MessageManager.getString("action.view"));\r
+    calcSettings.setLabel(MessageManager.getString("action.change_params"));\r
+    labels.setLabel(MessageManager.getString("label.labels"));\r
+    labels.addItemListener(this);\r
+    values.setLabel(MessageManager.getString("label.output_values"));\r
+    values.addActionListener(this);\r
+    inputData.setLabel(MessageManager.getString("label.input_data"));\r
+    nuclSetting.setLabel(MessageManager\r
+            .getString("label.nucleotide_matrix"));\r
+    nuclSetting.addItemListener(this);\r
+    protSetting.setLabel(MessageManager.getString("label.protein_matrix"));\r
+    protSetting.addItemListener(this);\r
+    this.add(jPanel2, BorderLayout.SOUTH);\r
+    jPanel2.add(jLabel1, null);\r
+    jPanel2.add(xCombobox, null);\r
+    jPanel2.add(jLabel2, null);\r
+    jPanel2.add(yCombobox, null);\r
+    jPanel2.add(jLabel3, null);\r
+    jPanel2.add(zCombobox, null);\r
+    jPanel2.add(resetButton, null);\r
+    menuBar1.add(menu1);\r
+    menuBar1.add(menu2);\r
+    menuBar1.add(calcSettings);\r
+    menu2.add(labels);\r
+    menu1.add(values);\r
+    menu1.add(inputData);\r
+    calcSettings.add(nuclSetting);\r
+    calcSettings.add(protSetting);\r
+    inputData.addActionListener(this);\r
+  }\r
+\r
+}\r