📄 alignjframe.java
字号:
public void actionPerformed(ActionEvent e) { matFrame.setMatrix(mat); matFrame.setVisible(true); matFrame.toFront(); } });// colour display JMenuItem showColour = new JMenuItem("Colour Display"); viewMenu.add(showColour); final ColourJFrame colFrame = new ColourJFrame(this); showColour.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Point pos = getLocationOnScreen(); pos.x = pos.x + getWidth(); if(pos.x+colFrame.getWidth() > dScreen.getWidth()) pos.x = (int)(dScreen.getWidth()-colFrame.getWidth()); colFrame.setLocation(pos); colFrame.setCurrentColour(currentColour); colFrame.setVisible(true); colFrame.toFront(); } }); viewMenu.add(new JSeparator()); colourMenus(viewMenu); //pretty plot final JMenuItem pretty = new JMenuItem("Colour Identical/Matches"); viewMenu.add(pretty); viewMenu.add(new JSeparator());//draw black box final JCheckBoxMenuItem drawBoxes = new JCheckBoxMenuItem("Draw boxes",false); drawBoxes.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { gsc.setDrawBoxes(drawBoxes.isSelected()); } }); viewMenu.add(drawBoxes);//draw colored boxes final JCheckBoxMenuItem drawColorBox = new JCheckBoxMenuItem("Colour boxes",true); drawColorBox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { gsc.setDrawColor(drawColorBox.isSelected()); } }); viewMenu.add(drawColorBox); pretty.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(ppj == null) ppj = new PrettyPlotJFrame(gsc); else ppj.setGraphicSequenceCollection(gsc); gsc.setMatrix(mat); ppj.setVisible(true); } }); menuBar.add(viewMenu);// calculate menu JMenu calculateMenu = new JMenu("Calculate"); menuBar.add(calculateMenu);// consensus sequence final ConsensusOptions options = new ConsensusOptions(jspSequence); calculateCons.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { setCursor(cbusy); gsc.deleteSequence("Consensus"); float wgt = getTotalWeight(gsc.getSequenceCollection()); float plu = 0.f; try { plu = options.getPlurality(); } catch(NumberFormatException nfe) { plu = wgt/2.f; } float cas = 0.f; try { cas = options.getCase(); } catch(NumberFormatException nfe) { cas = wgt/2.f; } Consensus conseq = new Consensus(mat, gsc.getSequenceCollection(), plu,cas, options.getIdentity()); int fontSize = gsc.getFontSize(); gsc.addSequence(conseq.getConsensusSequence(),true,0,fontSize);// if(pretty.isSelected())// gsc.setPrettyPlot(pretty.isSelected(),ppj); Dimension dpane = gsc.getPanelSize(); gsc.setPreferredSize(dpane); gsc.setNamePanelWidth(gsc.getNameWidth()); jspSequence.setViewportView(gsc); setCursor(cdone); calculateCons.setText("Recalculate consensus"); } }); calculateMenu.add(calculateCons); JMenuItem consOptions = new JMenuItem("Set consensus options..."); consOptions.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { Vector vseq = gsc.getSequenceCollection();// Enumeration enumer = vseq.elements(); float wgt = getTotalWeight(gsc.getSequenceCollection()); options.setCase(wgt/2.f); options.setPlurality(wgt/2.f); options.setGraphicSequenceCollection(gsc); } catch(NullPointerException npe){} options.setMatrix(mat); options.setVisible(true); } }); calculateMenu.add(consOptions); calculateMenu.add(new JSeparator());// %age identity between pairs JMenuItem calculateId = new JMenuItem("Identity table"); calculateId.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { IDTableJFrame idtab = new IDTableJFrame(gsc.getSequenceCollection()); idtab.setVisible(true); } }); calculateMenu.add(calculateId); calculateMenu.add(new JSeparator());// consensus plot calculatePlotCon.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { setCursor(cbusy); gsc.showConsensusPlot(mat,2); setCursor(cdone); calculatePlotCon.setText("Recalculate Consensus plot"); } }); calculateMenu.add(calculatePlotCon); calculateMenu.add(new JSeparator());// sort by id JMenuItem test = new JMenuItem("Sort by ID"); calculateMenu.add(test); test.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { gsc.idSort(); jspSequence.setViewportView(gsc); } }); // font menu String sizes[] = {"10", "12", "14", "16", "18"}; final JComboBox fntSize = new JComboBox(sizes); fntSize.setSelectedItem("12"); menuBar.add(fntSize); fntSize.setEditable(true); Dimension dfont = new Dimension(50,20); fntSize.setPreferredSize(dfont); fntSize.setMaximumSize(dfont); fntSize.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String fsize = (String)fntSize.getSelectedItem(); if(gsc !=null) gsc.setFontSizeForCollection(Integer.parseInt(fsize)); } }); setJMenuBar(menuBar);// help manu JMenu helpMenu = new JMenu("Help"); menuBar.add(helpMenu); JMenuItem aboutMenu = new JMenuItem("About"); helpMenu.add(aboutMenu); aboutMenu.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { ClassLoader cl = this.getClass().getClassLoader(); try { URL inURL = cl.getResource("resources/readmeAlign.html"); new Browser(inURL,"resources/readmeAlign.html"); } catch (Exception ex) { JOptionPane.showMessageDialog(null, "Jemboss Alignment Viewer Guide not found!", "Error", JOptionPane.ERROR_MESSAGE); } } });// set size of sequence panel Dimension d = new Dimension(700,300); jspSequence.setPreferredSize(d); JPanel seqNamePanel = new JPanel(new BorderLayout()); seqNamePanel.add(jspSequence,BorderLayout.CENTER); mainPane.add(jspSequence,BorderLayout.CENTER); Border loweredbevel = BorderFactory.createLoweredBevelBorder(); Border raisedbevel = BorderFactory.createRaisedBevelBorder(); Border compound = BorderFactory.createCompoundBorder(raisedbevel,loweredbevel); statusField.setBorder(compound); statusField.setEditable(false); statusField.setText("Current matrix: "+mat.getCurrentMatrixName()); mainPane.add(statusField,BorderLayout.SOUTH); addWindowListener(new winExit()); pack(); setLocation( (int)(dScreen.getWidth()-getWidth())/3, (int)(dScreen.getHeight()-getHeight())/3 ); } public static float getTotalWeight(Vector vseq) { float wgt = 0.f; vseq = gsc.getSequenceCollection(); Enumeration enumer = vseq.elements(); while(enumer.hasMoreElements()) { Sequence s = (Sequence)enumer.nextElement(); if(!s.getName().equals("Consensus")) wgt+=s.getWeight(); } return wgt; } /** * * Set the scoring matrix * @param mat scoring matrix to use * */ public void setMatrix(Matrix mat) { this.mat = mat; } /** * * Force a re-display of the sequences with a new colour * scheme. * @param hash hash of the colour scheme * */ public void repaintSequences(Hashtable hash) { gsc.setColorScheme(hash); gsc.repaint(); } /** * * Given a Vector of Sequence display them in the editor * @param seqVector vector containing Sequence objects * */ protected void openMethod(Vector seqVector) { gsc = new GraphicSequenceCollection(seqVector, jspSequence,true,false,true,true, statusField);// set colour scheme gsc.setColorScheme(SequenceProperties.residueColor); currentColour = (Hashtable)SequenceProperties.residueColor.clone(); residueColor.setSelected(true); jspSequence.setViewportView(gsc); colourScheme("Residue colour"); } /** * * Update the status bar with the selected colour scheme * being used. * @param colScheme name of colour scheme * */ protected void colourScheme(String colScheme) { String status = statusField.getText(); int ncol = status.indexOf("Colour Scheme: "); if(ncol > -1) statusField.setText(status.substring(0,ncol)+ "Colour Scheme: "+colScheme); else statusField.setText(status+" "+ "Colour Scheme: "+colScheme); } /** * * Constructs the colour menus * */ private void colourMenus(JMenu viewMenu) { ButtonGroup group = new ButtonGroup();// property colour menus JMenu propertyMenu = new JMenu("Colour by Property"); viewMenu.add(propertyMenu); JCheckBoxMenuItem acidColor = new JCheckBoxMenuItem("Red=acidic, Blue=basic"); propertyMenu.add(acidColor); group.add(acidColor); acidColor.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { gsc.setColorScheme(SequenceProperties.acidColor); jspSequence.setViewportView(gsc); currentColour = SequenceProperties.acidColor; colourScheme("Red=acidic, Blue=basic"); } }); JCheckBoxMenuItem polarColor = new JCheckBoxMenuItem("Red=polar"); propertyMenu.add(polarColor); group.add(polarColor); polarColor.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { gsc.setColorScheme(SequenceProperties.polarColor); jspSequence.setViewportView(gsc); currentColour = SequenceProperties.polarColor; colourScheme("Red=polar"); } }); JCheckBoxMenuItem hydrophobicColor = new JCheckBoxMenuItem("Red=Hydrophobic"); propertyMenu.add(hydrophobicColor); group.add(hydrophobicColor); hydrophobicColor.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { gsc.setColorScheme(SequenceProperties.hydrophobicColor); jspSequence.setViewportView(gsc); currentColour = SequenceProperties.hydrophobicColor; colourScheme("Red=Hydrophobic"); } }); JCheckBoxMenuItem aromaticColor = new JCheckBoxMenuItem("Red=Aromatic, Blue=Aliphatic"); propertyMenu.add(aromaticColor); group.add(aromaticColor); aromaticColor.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { gsc.setColorScheme(SequenceProperties.aromaticColor); jspSequence.setViewportView(gsc); currentColour = SequenceProperties.aromaticColor; colourScheme("Red=Aromatic, Blue=Aliphatic"); } }); JCheckBoxMenuItem surfaceColor = new JCheckBoxMenuItem("Red=Surface, Blue=Buried"); propertyMenu.add(surfaceColor); group.add(surfaceColor); surfaceColor.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { gsc.setColorScheme(SequenceProperties.surfaceColor); jspSequence.setViewportView(gsc); currentColour = SequenceProperties.surfaceColor; colourScheme("Red=Surface, Blue=Buried"); } }); JCheckBoxMenuItem chargeColor = new JCheckBoxMenuItem("Red=Positive, Blue=Negative"); propertyMenu.add(chargeColor); group.add(chargeColor); chargeColor.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { gsc.setColorScheme(SequenceProperties.chargeColor); jspSequence.setViewportView(gsc); currentColour = SequenceProperties.chargeColor; colourScheme("Red=Positive, Blue=Negative"); } });
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -