From 4831e7f2dece110dee88b3fe802d50b845ed9603 Mon Sep 17 00:00:00 2001 From: amwaterhouse Date: Thu, 12 Oct 2006 16:14:02 +0000 Subject: [PATCH] Add features from Popupmenu --- src/jalview/gui/FeatureRenderer.java | 88 +++++++++++++++++++++++++++++++--- src/jalview/gui/Finder.java | 31 +++++------- src/jalview/gui/PopupMenu.java | 45 +++++++++++++++++ 3 files changed, 139 insertions(+), 25 deletions(-) diff --git a/src/jalview/gui/FeatureRenderer.java b/src/jalview/gui/FeatureRenderer.java index afe29a0..d20fa63 100755 --- a/src/jalview/gui/FeatureRenderer.java +++ b/src/jalview/gui/FeatureRenderer.java @@ -25,6 +25,10 @@ import java.awt.*; import java.util.*; import java.awt.image.*; +import javax.swing.JComboBox; +import javax.swing.JPanel; +import javax.swing.JLabel; +import javax.swing.JOptionPane; /** @@ -413,17 +417,87 @@ public class FeatureRenderer } - public void addNewFeature(String name, Color col, String group) + static String lastFeatureAdded = "feature_1"; + static String lastSourceAdded = "Jalview"; + + public boolean createNewFeatures(SequenceI[] sequences, + SequenceFeature [] features) { - setColour(name, col); - if(av.featuresDisplayed==null) - av.featuresDisplayed = new Hashtable(); + JComboBox name = new JComboBox(); + JComboBox source = new JComboBox(); + + JPanel panel = new JPanel(new GridLayout(2, 2)); + panel.add(new JLabel("New Sequence Feature Name")); + panel.add(name); + panel.add(new JLabel("Source:")); + panel.add(source); + // name.setPreferredSize(new Dimension(300, 20)); + name.setEditable(true); + source.setEditable(true); + + 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()); + } + } + + name.setSelectedItem(lastFeatureAdded); + source.setSelectedItem(lastSourceAdded); - if(group == null) - group = "NOGROUP"; + int reply = JOptionPane.showInternalConfirmDialog(Desktop.desktop, + panel, "Create New Sequence Feature(s)", + JOptionPane.OK_CANCEL_OPTION); + + + if(reply==JOptionPane.OK_OPTION + && name.getSelectedItem()!=null + && source.getSelectedItem()!=null) + { + lastFeatureAdded = name.getSelectedItem().toString(); + lastSourceAdded = source.getSelectedItem().toString(); + for(int i=0; i