X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignFrame.java;h=9566bb5731cf47301aecacb1e299a9f2c8b27436;hb=4c27b2c870cb1b4f858f7f4b52c4fe330a8e3b4c;hp=686ecbcd69938b117f0d6b80c95b2f78117d383b;hpb=d7b6fc2a38b90786ce62ea4e8a418e05b24e5352;p=jalview.git diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index 686ecbc..9566bb5 100755 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -36,8 +36,6 @@ public class AlignFrame extends GAlignFrame viewport = new AlignViewport(al,true,true,true,false); alignPanel = new AlignmentPanel(this, viewport); getContentPane().add(alignPanel, java.awt.BorderLayout.CENTER); - fontNameMenuItem.setText(viewport.getFont().getName()); - fontSizeMenuItem.setText(viewport.getFont().getSize()+""); addInternalFrameListener(new InternalFrameAdapter() { @@ -52,7 +50,6 @@ public class AlignFrame extends GAlignFrame } }); - AlignmentUtil.fetchSequenceFeatures(al, alignPanel); } protected void saveAs_actionPerformed(ActionEvent e) @@ -92,6 +89,23 @@ public class AlignFrame extends GAlignFrame htmlOutput = null; } + protected void createJPG_actionPerformed(ActionEvent e) + { + + int height = (viewport.alignment.getWidth() / viewport.getChunkWidth() +1) * viewport.chunkHeight; + int width = alignPanel.seqPanel.getWidth() + alignPanel.idPanel.getWidth(); + + + if(!viewport.getWrapAlignment()) + { + height = viewport.alignment.getHeight() * viewport.charHeight; + width = alignPanel.idPanel.getWidth() + viewport.alignment.getWidth() * viewport.charWidth; + } + + alignPanel.makeJPG( width, height); + } + + public void printMenuItem_actionPerformed(ActionEvent e) { //Putting in a thread avoids Swing painting problems @@ -131,8 +145,8 @@ public class AlignFrame extends GAlignFrame }catch(Exception ex){} } - ArrayList historyList = new ArrayList(); - ArrayList redoList = new ArrayList(); + Stack historyList = new Stack(); + Stack redoList = new Stack(); void updateEditMenuBar() { @@ -270,6 +284,7 @@ public class AlignFrame extends GAlignFrame protected void pasteThis_actionPerformed(ActionEvent e) { + addHistoryItem("Paste"); paste(false); } @@ -327,13 +342,24 @@ public class AlignFrame extends GAlignFrame protected void delete_actionPerformed(ActionEvent e) { + addHistoryItem("Delete"); if (viewport.getRubberbandGroup() == null) return; SequenceGroup sg = viewport.getRubberbandGroup(); for (int i=0;i < sg.sequences.size(); i++) - viewport.getAlignment().deleteSequence(sg.getSequenceAt(i)); + { + SequenceI seq = sg.getSequenceAt(i); + int index = viewport.getAlignment().findIndex(seq); + seq.deleteChars(sg.getStartRes(), sg.getEndRes()+1); + if(seq.getSequence().length()<1) + viewport.getAlignment().deleteSequence(seq); + else + viewport.getAlignment().getSequences().setElementAt(seq, index); + } + + viewport.setRubberbandGroup(null); viewport.alignment.deleteGroup(sg); viewport.resetSeqLimits( alignPanel.seqPanel.seqCanvas.getHeight()); if(viewport.getAlignment().getHeight()<1) @@ -493,55 +519,15 @@ public class AlignFrame extends GAlignFrame } - - public void fontNameMenuItem_actionPerformed(ActionEvent e) - { - String fonts[] = java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames(); - - - String selection = JOptionPane.showInternalInputDialog(this, - "Select font", - "Font selection", - JOptionPane.QUESTION_MESSAGE, - null,fonts - ,fontNameMenuItem.getText()).toString(); - if(selection!=null) - { - fontNameMenuItem.setText(selection); - SetFont(); - } - - } - - public void fontSizeMenuItem_actionPerformed(ActionEvent e) - { - String selection = JOptionPane.showInternalInputDialog(this, - "Select font size", - "Font size", - JOptionPane.QUESTION_MESSAGE, - null, new String[]{"1","2","4","6","8","10","12","14","16","18","20"} - ,fontSizeMenuItem.getText()).toString(); - if(selection!=null) - { - fontSizeMenuItem.setText(selection); - SetFont(); - } - } - - public void fontStyleMenuItem_actionPerformed(ActionEvent e) + public void font_actionPerformed(ActionEvent e) { - String selection = JOptionPane.showInternalInputDialog(this, - "Select font style", - "Font style", - JOptionPane.QUESTION_MESSAGE, - null, new String[]{"plain", "bold", "italic"} - ,fontStyleMenuItem.getText()).toString(); - if(selection!=null) - { - fontStyleMenuItem.setText(selection); - SetFont(); - } - + JOptionPane op = new JOptionPane(); + JInternalFrame frame = op.createInternalFrame(this, "Change Font"); + FontChooser fc = new FontChooser( alignPanel ); + frame.setClosable(true); + frame.setContentPane(fc); + frame.setSize(480, 100); + frame.setVisible(true); } protected void colourTextMenuItem_actionPerformed(ActionEvent e) @@ -550,21 +536,6 @@ public class AlignFrame extends GAlignFrame alignPanel.RefreshPanels(); } - void SetFont() - { - int style = java.awt.Font.PLAIN; - if(fontStyleMenuItem.getText().equals("bold")) - style = java.awt.Font.BOLD; - else if(fontStyleMenuItem.getText().equals("italic")) - style = java.awt.Font.ITALIC; - - viewport.setFont(new java.awt.Font(fontNameMenuItem.getText(), - style, - Integer.parseInt(fontSizeMenuItem.getText()))); - alignPanel.RefreshPanels(); - - } - protected void wrapMenuItem_actionPerformed(ActionEvent e) { viewport.setWrapAlignment( wrapMenuItem.isSelected() ); @@ -594,6 +565,11 @@ public class AlignFrame extends GAlignFrame public void sequenceFeatures_actionPerformed(ActionEvent evt) { viewport.showSequenceFeatures(sequenceFeatures.isSelected()); + if(viewport.showSequenceFeatures && !((Alignment)viewport.alignment).featuresAdded) + { + AlignmentUtil.fetchSequenceFeatures( viewport.alignment , alignPanel); + ((Alignment)viewport.alignment).featuresAdded = true; + } alignPanel.RefreshPanels(); } @@ -956,22 +932,19 @@ if ( viewport.getConservationSelected() ) return; } - JInternalFrame frame = new javax.swing.JInternalFrame(); TreePanel tp=null; if (viewport.getSelection() != null && viewport.getSelection().size() > 3) { tp = new TreePanel(viewport, viewport.getSelection().asVector(),type, pwType, - viewport.getStartRes(), viewport.getEndRes()); + 0, viewport.alignment.getWidth()); } else { tp = new TreePanel(viewport, viewport.getAlignment().getSequences(), - type, pwType, viewport.getStartRes(), - viewport.getEndRes()); + type, pwType, 0, viewport.alignment.getWidth()); } - frame.setContentPane(tp); - Desktop.addInternalFrame(frame, title, 600, 500); + Desktop.addInternalFrame(tp, title, 600, 500); } @@ -1000,7 +973,7 @@ if ( viewport.getConservationSelected() ) image = new Image[9]; for(int i=0; i<9; i++) { - java.net.URL url = getClass().getResource("/dna" + (i+1) + ".gif"); + java.net.URL url = getClass().getResource("/images/dna" + (i+1) + ".gif"); if (url != null) { image[i] = java.awt.Toolkit.getDefaultToolkit().createImage(url);