X-Git-Url: http://source.jalview.org/gitweb/?p=jalviewjs.git;a=blobdiff_plain;f=site%2Fj2s%2Fjalview%2Fappletgui%2FPCAPanel.js;h=7e258395cf8e8bed0bfc0b257471f7d7b5686495;hp=f5c4a98e0ffca8bbf666866a0f47942b337ac41d;hb=b9b7a352eee79b7764c3b09c9d19663075061d8c;hpb=8ffd05b3abe52c0b6b79b011c0966361f82d5fe6 diff --git a/site/j2s/jalview/appletgui/PCAPanel.js b/site/j2s/jalview/appletgui/PCAPanel.js index f5c4a98..7e25839 100644 --- a/site/j2s/jalview/appletgui/PCAPanel.js +++ b/site/j2s/jalview/appletgui/PCAPanel.js @@ -1,253 +1,253 @@ -Clazz.declarePackage ("jalview.appletgui"); -Clazz.load (["jalview.appletgui.EmbmenuFrame", "java.awt.event.ActionListener", "$.ItemListener", "awt2swing.Button", "$.CheckboxMenuItem", "$.Choice", "$.Label", "$.Menu", "$.MenuBar", "$.MenuItem", "$.Panel", "java.awt.BorderLayout", "$.FlowLayout"], "jalview.appletgui.PCAPanel", ["awt2swing.Frame", "jalview.appletgui.AlignFrame", "$.CutAndPasteTransfer", "$.RotatableCanvas", "jalview.bin.JalviewLite", "jalview.datamodel.Alignment", "jalview.util.MessageManager", "jalview.viewmodel.PCAModel", "java.awt.Color", "$.Font", "java.lang.Thread"], function () { -c$ = Clazz.decorateAsClass (function () { -this.rc = null; -this.av = null; -this.pcaModel = null; -this.top = 0; -this.jPanel2 = null; -this.jLabel1 = null; -this.jLabel2 = null; -this.jLabel3 = null; -this.xCombobox = null; -this.yCombobox = null; -this.zCombobox = null; -this.resetButton = null; -this.flowLayout1 = null; -this.borderLayout1 = null; -this.menuBar1 = null; -this.menu1 = null; -this.menu2 = null; -this.calcSettings = null; -this.labels = null; -this.protSetting = null; -this.nuclSetting = null; -this.values = null; -this.inputData = null; -Clazz.instantialize (this, arguments); -}, jalview.appletgui, "PCAPanel", jalview.appletgui.EmbmenuFrame, [Runnable, java.awt.event.ActionListener, java.awt.event.ItemListener]); -Clazz.prepareFields (c$, function () { -this.jPanel2 = new awt2swing.Panel (); -this.jLabel1 = new awt2swing.Label (); -this.jLabel2 = new awt2swing.Label (); -this.jLabel3 = new awt2swing.Label (); -this.xCombobox = new awt2swing.Choice (); -this.yCombobox = new awt2swing.Choice (); -this.zCombobox = new awt2swing.Choice (); -this.resetButton = new awt2swing.Button (); -this.flowLayout1 = new java.awt.FlowLayout (); -this.borderLayout1 = new java.awt.BorderLayout (); -this.menuBar1 = new awt2swing.MenuBar (); -this.menu1 = new awt2swing.Menu (); -this.menu2 = new awt2swing.Menu (); -this.calcSettings = new awt2swing.Menu (); -this.labels = new awt2swing.CheckboxMenuItem (); -this.protSetting = new awt2swing.CheckboxMenuItem (); -this.nuclSetting = new awt2swing.CheckboxMenuItem (); -this.values = new awt2swing.MenuItem (); -this.inputData = new awt2swing.MenuItem (); -}); -Clazz.makeConstructor (c$, -function (av) { -Clazz.superConstructor (this, jalview.appletgui.PCAPanel, []); -try { -this.jbInit (); -} catch (e) { -if (Clazz.exceptionOf (e, Exception)) { -e.printStackTrace (); -} else { -throw e; -} -} -for (var i = 1; i < 8; i++) { -this.xCombobox.addItem ("dim " + i); -this.yCombobox.addItem ("dim " + i); -this.zCombobox.addItem ("dim " + i); -} -this.av = av; -var selected = av.getSelectionGroup () != null && av.getSelectionGroup ().getSize () > 0; -var seqstrings = av.getAlignmentView (selected); -var nucleotide = av.getAlignment ().isNucleotide (); -var seqs; -if (!selected) { -seqs = av.getAlignment ().getSequencesArray (); -} else { -seqs = av.getSelectionGroup ().getSequencesInOrder (av.getAlignment ()); -}var sq = seqstrings.getSequences (); -var length = sq[0].getWidth (); -for (var i = 0; i < seqs.length; i++) { -if (sq[i].getWidth () != length) { -System.out.println ("Sequences must be equal length for PCA analysis"); -return; -}} -this.pcaModel = new jalview.viewmodel.PCAModel (seqstrings, seqs, nucleotide); -this.rc = new jalview.appletgui.RotatableCanvas (av); -this.embedMenuIfNeeded (this.rc); -this.add (this.rc, "Center"); -jalview.bin.JalviewLite.addFrame (this, jalview.util.MessageManager.getString ("label.principal_component_analysis"), 475, 400); -var worker = new Thread (this); -worker.start (); -}, "jalview.appletgui.AlignViewport"); -Clazz.overrideMethod (c$, "run", -function () { -this.calcSettings.setEnabled (false); -this.rc.setEnabled (false); -try { -this.nuclSetting.setState (this.pcaModel.isNucleotide ()); -this.protSetting.setState (!this.pcaModel.isNucleotide ()); -this.pcaModel.run (); -this.xCombobox.select (new Integer (0)); -this.yCombobox.select (new Integer (1)); -this.zCombobox.select (new Integer (2)); -this.pcaModel.updateRc (this.rc); -this.top = this.pcaModel.getTop (); -} catch (x) { -if (Clazz.exceptionOf (x, OutOfMemoryError)) { -System.err.println ("Out of memory when calculating PCA."); -return; -} else { -throw x; -} -} -this.calcSettings.setEnabled (true); -this.rc.setEnabled (true); -this.rc.repaint (); -this.repaint (); -}); -Clazz.defineMethod (c$, "doDimensionChange", -function () { -if (this.top == 0) { -return; -}var dim1 = this.top - this.xCombobox.getSelectedIndex (); -var dim2 = this.top - this.yCombobox.getSelectedIndex (); -var dim3 = this.top - this.zCombobox.getSelectedIndex (); -this.pcaModel.updateRcView (dim1, dim2, dim3); -this.rc.img = null; -this.rc.rotmat.setIdentity (); -this.rc.initAxes (); -this.rc.paint (this.rc.getGraphics ()); -}); -Clazz.overrideMethod (c$, "actionPerformed", -function (evt) { -if (evt.getSource () === this.inputData) { -this.showOriginalData (); -}if (evt.getSource () === this.resetButton) { -this.xCombobox.select (new Integer (0)); -this.yCombobox.select (new Integer (1)); -this.zCombobox.select (new Integer (2)); -this.doDimensionChange (); -}if (evt.getSource () === this.values) { -this.values_actionPerformed (); -}}, "java.awt.event.ActionEvent"); -Clazz.overrideMethod (c$, "itemStateChanged", -function (evt) { -if (evt.getSource () === this.xCombobox) { -this.xCombobox_actionPerformed (); -} else if (evt.getSource () === this.yCombobox) { -this.yCombobox_actionPerformed (); -} else if (evt.getSource () === this.zCombobox) { -this.zCombobox_actionPerformed (); -} else if (evt.getSource () === this.labels) { -this.labels_itemStateChanged (evt); -} else if (evt.getSource () === this.nuclSetting) { -if (!this.pcaModel.isNucleotide ()) { -this.pcaModel.setNucleotide (true); - new Thread (this).start (); -}} else if (evt.getSource () === this.protSetting) { -if (this.pcaModel.isNucleotide ()) { -this.pcaModel.setNucleotide (false); - new Thread (this).start (); -}}}, "java.awt.event.ItemEvent"); -Clazz.defineMethod (c$, "xCombobox_actionPerformed", -function () { -this.doDimensionChange (); -}); -Clazz.defineMethod (c$, "yCombobox_actionPerformed", -function () { -this.doDimensionChange (); -}); -Clazz.defineMethod (c$, "zCombobox_actionPerformed", -function () { -this.doDimensionChange (); -}); -Clazz.defineMethod (c$, "values_actionPerformed", -function () { -var cap = new jalview.appletgui.CutAndPasteTransfer (false, null); -var frame = new awt2swing.Frame (); -frame.add (cap); -jalview.bin.JalviewLite.addFrame (frame, jalview.util.MessageManager.getString ("label.pca_details"), 500, 500); -cap.setText (this.pcaModel.getDetails ()); -}); -Clazz.defineMethod (c$, "showOriginalData", -function () { -var gc = '-'; -try { -gc = this.av.getGapCharacter (); -} catch (ex) { -if (Clazz.exceptionOf (ex, Exception)) { -} else { -throw ex; -} -} -;var alAndColsel = this.pcaModel.getSeqtrings ().getAlignmentAndColumnSelection (gc); -if (alAndColsel != null && alAndColsel[0] != null) { -var al = new jalview.datamodel.Alignment (alAndColsel[0]); -var af = new jalview.appletgui.AlignFrame (al, this.av.applet, "Original Data for PCA", false); -af.viewport.setHiddenColumns (alAndColsel[1]); -}}); -Clazz.defineMethod (c$, "labels_itemStateChanged", -function (itemEvent) { -this.rc.showLabels (this.labels.getState ()); -}, "java.awt.event.ItemEvent"); -Clazz.defineMethod (c$, "jbInit", - function () { -this.setLayout (this.borderLayout1); -this.jPanel2.setLayout (this.flowLayout1); -this.jLabel1.setFont ( new java.awt.Font ("Verdana", 0, 12)); -this.jLabel1.setText ("x="); -this.jLabel2.setFont ( new java.awt.Font ("Verdana", 0, 12)); -this.jLabel2.setText ("y="); -this.jLabel3.setFont ( new java.awt.Font ("Verdana", 0, 12)); -this.jLabel3.setText ("z="); -this.jPanel2.setBackground (java.awt.Color.white); -this.zCombobox.setFont ( new java.awt.Font ("Verdana", 0, 12)); -this.zCombobox.addItemListener (this); -this.yCombobox.setFont ( new java.awt.Font ("Verdana", 0, 12)); -this.yCombobox.addItemListener (this); -this.xCombobox.setFont ( new java.awt.Font ("Verdana", 0, 12)); -this.xCombobox.addItemListener (this); -this.resetButton.setFont ( new java.awt.Font ("Verdana", 0, 12)); -this.resetButton.setLabel (jalview.util.MessageManager.getString ("action.reset")); -this.resetButton.addActionListener (this); -this.setMenuBar (this.menuBar1); -this.menu1.setLabel (jalview.util.MessageManager.getString ("action.file")); -this.menu2.setLabel (jalview.util.MessageManager.getString ("action.view")); -this.calcSettings.setLabel (jalview.util.MessageManager.getString ("action.change_params")); -this.labels.setLabel (jalview.util.MessageManager.getString ("label.labels")); -this.labels.addItemListener (this); -this.values.setLabel (jalview.util.MessageManager.getString ("label.output_values")); -this.values.addActionListener (this); -this.inputData.setLabel (jalview.util.MessageManager.getString ("label.input_data")); -this.nuclSetting.setLabel (jalview.util.MessageManager.getString ("label.nucleotide_matrix")); -this.nuclSetting.addItemListener (this); -this.protSetting.setLabel (jalview.util.MessageManager.getString ("label.protein_matrix")); -this.protSetting.addItemListener (this); -this.add (this.jPanel2, "South"); -this.jPanel2.add (this.jLabel1, null); -this.jPanel2.add (this.xCombobox, null); -this.jPanel2.add (this.jLabel2, null); -this.jPanel2.add (this.yCombobox, null); -this.jPanel2.add (this.jLabel3, null); -this.jPanel2.add (this.zCombobox, null); -this.jPanel2.add (this.resetButton, null); -this.menuBar1.add (this.menu1); -this.menuBar1.add (this.menu2); -this.menuBar1.add (this.calcSettings); -this.menu2.add (this.labels); -this.menu1.add (this.values); -this.menu1.add (this.inputData); -this.calcSettings.add (this.nuclSetting); -this.calcSettings.add (this.protSetting); -this.inputData.addActionListener (this); -}); -}); +Clazz.declarePackage ("jalview.appletgui"); +Clazz.load (["jalview.appletgui.EmbmenuFrame", "java.awt.event.ActionListener", "$.ItemListener", "awt2swing.Button", "$.CheckboxMenuItem", "$.Choice", "$.Label", "$.Menu", "$.MenuBar", "$.MenuItem", "$.Panel", "java.awt.BorderLayout", "$.FlowLayout"], "jalview.appletgui.PCAPanel", ["awt2swing.Frame", "jalview.appletgui.AlignFrame", "$.CutAndPasteTransfer", "$.RotatableCanvas", "jalview.bin.JalviewLite", "jalview.datamodel.Alignment", "jalview.util.MessageManager", "jalview.viewmodel.PCAModel", "java.awt.Color", "$.Font", "java.lang.Thread"], function () { +c$ = Clazz.decorateAsClass (function () { +this.rc = null; +this.av = null; +this.pcaModel = null; +this.top = 0; +this.jPanel2 = null; +this.jLabel1 = null; +this.jLabel2 = null; +this.jLabel3 = null; +this.xCombobox = null; +this.yCombobox = null; +this.zCombobox = null; +this.resetButton = null; +this.flowLayout1 = null; +this.borderLayout1 = null; +this.menuBar1 = null; +this.menu1 = null; +this.menu2 = null; +this.calcSettings = null; +this.labels = null; +this.protSetting = null; +this.nuclSetting = null; +this.values = null; +this.inputData = null; +Clazz.instantialize (this, arguments); +}, jalview.appletgui, "PCAPanel", jalview.appletgui.EmbmenuFrame, [Runnable, java.awt.event.ActionListener, java.awt.event.ItemListener]); +Clazz.prepareFields (c$, function () { +this.jPanel2 = new awt2swing.Panel (); +this.jLabel1 = new awt2swing.Label (); +this.jLabel2 = new awt2swing.Label (); +this.jLabel3 = new awt2swing.Label (); +this.xCombobox = new awt2swing.Choice (); +this.yCombobox = new awt2swing.Choice (); +this.zCombobox = new awt2swing.Choice (); +this.resetButton = new awt2swing.Button (); +this.flowLayout1 = new java.awt.FlowLayout (); +this.borderLayout1 = new java.awt.BorderLayout (); +this.menuBar1 = new awt2swing.MenuBar (); +this.menu1 = new awt2swing.Menu (); +this.menu2 = new awt2swing.Menu (); +this.calcSettings = new awt2swing.Menu (); +this.labels = new awt2swing.CheckboxMenuItem (); +this.protSetting = new awt2swing.CheckboxMenuItem (); +this.nuclSetting = new awt2swing.CheckboxMenuItem (); +this.values = new awt2swing.MenuItem (); +this.inputData = new awt2swing.MenuItem (); +}); +Clazz.makeConstructor (c$, +function (av) { +Clazz.superConstructor (this, jalview.appletgui.PCAPanel, []); +try { +this.jbInit (); +} catch (e) { +if (Clazz.exceptionOf (e, Exception)) { +e.printStackTrace (); +} else { +throw e; +} +} +for (var i = 1; i < 8; i++) { +this.xCombobox.addItem ("dim " + i); +this.yCombobox.addItem ("dim " + i); +this.zCombobox.addItem ("dim " + i); +} +this.av = av; +var selected = av.getSelectionGroup () != null && av.getSelectionGroup ().getSize () > 0; +var seqstrings = av.getAlignmentView (selected); +var nucleotide = av.getAlignment ().isNucleotide (); +var seqs; +if (!selected) { +seqs = av.getAlignment ().getSequencesArray (); +} else { +seqs = av.getSelectionGroup ().getSequencesInOrder (av.getAlignment ()); +}var sq = seqstrings.getSequences (); +var length = sq[0].getWidth (); +for (var i = 0; i < seqs.length; i++) { +if (sq[i].getWidth () != length) { +System.out.println ("Sequences must be equal length for PCA analysis"); +return; +}} +this.pcaModel = new jalview.viewmodel.PCAModel (seqstrings, seqs, nucleotide); +this.rc = new jalview.appletgui.RotatableCanvas (av); +this.embedMenuIfNeeded (this.rc); +this.add (this.rc, "Center"); +jalview.bin.JalviewLite.addFrame (this, jalview.util.MessageManager.getString ("label.principal_component_analysis"), 475, 400); +var worker = new Thread (this); +worker.start (); +}, "jalview.appletgui.AlignViewport"); +Clazz.overrideMethod (c$, "run", +function () { +this.calcSettings.setEnabled (false); +this.rc.setEnabled (false); +try { +this.nuclSetting.setState (this.pcaModel.isNucleotide ()); +this.protSetting.setState (!this.pcaModel.isNucleotide ()); +this.pcaModel.run (); +this.xCombobox.select (new Integer (0)); +this.yCombobox.select (new Integer (1)); +this.zCombobox.select (new Integer (2)); +this.pcaModel.updateRc (this.rc); +this.top = this.pcaModel.getTop (); +} catch (x) { +if (Clazz.exceptionOf (x, OutOfMemoryError)) { +System.err.println ("Out of memory when calculating PCA."); +return; +} else { +throw x; +} +} +this.calcSettings.setEnabled (true); +this.rc.setEnabled (true); +this.rc.repaint (); +this.repaint (); +}); +Clazz.defineMethod (c$, "doDimensionChange", +function () { +if (this.top == 0) { +return; +}var dim1 = this.top - this.xCombobox.getSelectedIndex (); +var dim2 = this.top - this.yCombobox.getSelectedIndex (); +var dim3 = this.top - this.zCombobox.getSelectedIndex (); +this.pcaModel.updateRcView (dim1, dim2, dim3); +this.rc.img = null; +this.rc.rotmat.setIdentity (); +this.rc.initAxes (); +this.rc.paint (this.rc.getGraphics ()); +}); +Clazz.overrideMethod (c$, "actionPerformed", +function (evt) { +if (evt.getSource () === this.inputData) { +this.showOriginalData (); +}if (evt.getSource () === this.resetButton) { +this.xCombobox.select (new Integer (0)); +this.yCombobox.select (new Integer (1)); +this.zCombobox.select (new Integer (2)); +this.doDimensionChange (); +}if (evt.getSource () === this.values) { +this.values_actionPerformed (); +}}, "java.awt.event.ActionEvent"); +Clazz.overrideMethod (c$, "itemStateChanged", +function (evt) { +if (evt.getSource () === this.xCombobox) { +this.xCombobox_actionPerformed (); +} else if (evt.getSource () === this.yCombobox) { +this.yCombobox_actionPerformed (); +} else if (evt.getSource () === this.zCombobox) { +this.zCombobox_actionPerformed (); +} else if (evt.getSource () === this.labels) { +this.labels_itemStateChanged (evt); +} else if (evt.getSource () === this.nuclSetting) { +if (!this.pcaModel.isNucleotide ()) { +this.pcaModel.setNucleotide (true); + new Thread (this).start (); +}} else if (evt.getSource () === this.protSetting) { +if (this.pcaModel.isNucleotide ()) { +this.pcaModel.setNucleotide (false); + new Thread (this).start (); +}}}, "java.awt.event.ItemEvent"); +Clazz.defineMethod (c$, "xCombobox_actionPerformed", +function () { +this.doDimensionChange (); +}); +Clazz.defineMethod (c$, "yCombobox_actionPerformed", +function () { +this.doDimensionChange (); +}); +Clazz.defineMethod (c$, "zCombobox_actionPerformed", +function () { +this.doDimensionChange (); +}); +Clazz.defineMethod (c$, "values_actionPerformed", +function () { +var cap = new jalview.appletgui.CutAndPasteTransfer (false, null); +var frame = new awt2swing.Frame (); +frame.add (cap); +jalview.bin.JalviewLite.addFrame (frame, jalview.util.MessageManager.getString ("label.pca_details"), 500, 500); +cap.setText (this.pcaModel.getDetails ()); +}); +Clazz.defineMethod (c$, "showOriginalData", +function () { +var gc = '-'; +try { +gc = this.av.getGapCharacter (); +} catch (ex) { +if (Clazz.exceptionOf (ex, Exception)) { +} else { +throw ex; +} +} +;var alAndColsel = this.pcaModel.getSeqtrings ().getAlignmentAndColumnSelection (gc); +if (alAndColsel != null && alAndColsel[0] != null) { +var al = new jalview.datamodel.Alignment (alAndColsel[0]); +var af = new jalview.appletgui.AlignFrame (al, this.av.applet, "Original Data for PCA", false); +af.viewport.setHiddenColumns (alAndColsel[1]); +}}); +Clazz.defineMethod (c$, "labels_itemStateChanged", +function (itemEvent) { +this.rc.showLabels (this.labels.getState ()); +}, "java.awt.event.ItemEvent"); +Clazz.defineMethod (c$, "jbInit", + function () { +this.setLayout (this.borderLayout1); +this.jPanel2.setLayout (this.flowLayout1); +this.jLabel1.setFont ( new java.awt.Font ("Verdana", 0, 12)); +this.jLabel1.setText ("x="); +this.jLabel2.setFont ( new java.awt.Font ("Verdana", 0, 12)); +this.jLabel2.setText ("y="); +this.jLabel3.setFont ( new java.awt.Font ("Verdana", 0, 12)); +this.jLabel3.setText ("z="); +this.jPanel2.setBackground (java.awt.Color.white); +this.zCombobox.setFont ( new java.awt.Font ("Verdana", 0, 12)); +this.zCombobox.addItemListener (this); +this.yCombobox.setFont ( new java.awt.Font ("Verdana", 0, 12)); +this.yCombobox.addItemListener (this); +this.xCombobox.setFont ( new java.awt.Font ("Verdana", 0, 12)); +this.xCombobox.addItemListener (this); +this.resetButton.setFont ( new java.awt.Font ("Verdana", 0, 12)); +this.resetButton.setLabel (jalview.util.MessageManager.getString ("action.reset")); +this.resetButton.addActionListener (this); +this.setMenuBar (this.menuBar1); +this.menu1.setLabel (jalview.util.MessageManager.getString ("action.file")); +this.menu2.setLabel (jalview.util.MessageManager.getString ("action.view")); +this.calcSettings.setLabel (jalview.util.MessageManager.getString ("action.change_params")); +this.labels.setLabel (jalview.util.MessageManager.getString ("label.labels")); +this.labels.addItemListener (this); +this.values.setLabel (jalview.util.MessageManager.getString ("label.output_values")); +this.values.addActionListener (this); +this.inputData.setLabel (jalview.util.MessageManager.getString ("label.input_data")); +this.nuclSetting.setLabel (jalview.util.MessageManager.getString ("label.nucleotide_matrix")); +this.nuclSetting.addItemListener (this); +this.protSetting.setLabel (jalview.util.MessageManager.getString ("label.protein_matrix")); +this.protSetting.addItemListener (this); +this.add (this.jPanel2, "South"); +this.jPanel2.add (this.jLabel1, null); +this.jPanel2.add (this.xCombobox, null); +this.jPanel2.add (this.jLabel2, null); +this.jPanel2.add (this.yCombobox, null); +this.jPanel2.add (this.jLabel3, null); +this.jPanel2.add (this.zCombobox, null); +this.jPanel2.add (this.resetButton, null); +this.menuBar1.add (this.menu1); +this.menuBar1.add (this.menu2); +this.menuBar1.add (this.calcSettings); +this.menu2.add (this.labels); +this.menu1.add (this.values); +this.menu1.add (this.inputData); +this.calcSettings.add (this.nuclSetting); +this.calcSettings.add (this.protSetting); +this.inputData.addActionListener (this); +}); +});