X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FFeatureRenderer.java;h=ec03b859b49a66f09151777f4b5422246403778e;hb=012fc200ee0d124003524855ac7cd50be4b7456c;hp=afe29a047ee4764d5dda6a9582b7af049c630551;hpb=174230b4233d9ce80f94527768d2cd2f76da11ab;p=jalview.git diff --git a/src/jalview/gui/FeatureRenderer.java b/src/jalview/gui/FeatureRenderer.java index afe29a0..ec03b85 100755 --- a/src/jalview/gui/FeatureRenderer.java +++ b/src/jalview/gui/FeatureRenderer.java @@ -25,6 +25,8 @@ import java.awt.*; import java.util.*; import java.awt.image.*; +import javax.swing.*; +import javax.swing.JOptionPane; /** @@ -413,17 +415,122 @@ public class FeatureRenderer } - public void addNewFeature(String name, Color col, String group) + static String lastFeatureAdded; + static String lastFeatureGroupAdded; + static String lastDescriptionAdded; + + public boolean createNewFeatures(SequenceI[] sequences, + SequenceFeature [] features) { - setColour(name, col); - if(av.featuresDisplayed==null) - av.featuresDisplayed = new Hashtable(); + JPanel bigPanel = new JPanel(new BorderLayout()); + JComboBox name = new JComboBox(); + JComboBox source = new JComboBox(); + JTextArea description = new JTextArea(3,25); + + JPanel panel = new JPanel(new GridLayout(2, 2)); + panel.add(new JLabel("New Sequence Feature Name: ",JLabel.RIGHT)); + panel.add(name); + panel.add(new JLabel("Feature Group: ", JLabel.RIGHT)); + panel.add(source); + name.setEditable(true); + source.setEditable(true); + + bigPanel.add(panel, BorderLayout.NORTH); + panel = new JPanel(); + panel.add(new JLabel("Description: ", JLabel.RIGHT)); + description.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11)); + description.setLineWrap(true); + panel.add(new JScrollPane(description)); + bigPanel.add(panel, BorderLayout.CENTER); + + + Enumeration en; + if (av.featuresDisplayed != null) + { + en = av.featuresDisplayed.keys(); + while (en.hasMoreElements()) + { + name.addItem(en.nextElement().toString()); + } + } + + if (featureGroups != null) + { + en = featureGroups.keys(); + while (en.hasMoreElements()) + { + source.addItem(en.nextElement().toString()); + } + } + + if (lastFeatureAdded == null) + if (features[0].type != null) + lastFeatureAdded = features[0].type; + else + lastFeatureAdded = "feature_1"; + + if (lastFeatureGroupAdded == null) + if (features[0].featureGroup != null) + lastFeatureGroupAdded = features[0].featureGroup; + else + lastFeatureAdded = "Jalview"; + + + name.setSelectedItem(lastFeatureAdded); + source.setSelectedItem(lastFeatureGroupAdded); + description.setText( + lastDescriptionAdded == null ? + features[0].description : lastDescriptionAdded); - if(group == null) - group = "NOGROUP"; - av.featuresDisplayed.put(name, new Integer(col.getRGB())); + int reply = JOptionPane.showInternalConfirmDialog(Desktop.desktop, + bigPanel, "Create New Sequence Feature(s)", + JOptionPane.OK_CANCEL_OPTION); + + + if(reply==JOptionPane.OK_OPTION + && name.getSelectedItem()!=null + && source.getSelectedItem()!=null) + { + lastFeatureAdded = name.getSelectedItem().toString(); + lastFeatureGroupAdded = source.getSelectedItem().toString(); + lastDescriptionAdded = description.getText().replaceAll("\n"," "); + + jalview.io.FeaturesFile ffile = new jalview.io.FeaturesFile(); + + + for(int i=0; i