X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FFeatureRenderer.java;h=435e78d80a3a78eb8076f003528aae717840b395;hb=5f3cd06105c207686e3637f40a04146076a73c87;hp=b9e92e2cb0f0d51ced557289f233d16735dc882c;hpb=b94e9d2b3e667c6925e3e40bac63de219fc717a7;p=jalview.git diff --git a/src/jalview/appletgui/FeatureRenderer.java b/src/jalview/appletgui/FeatureRenderer.java index b9e92e2..435e78d 100644 --- a/src/jalview/appletgui/FeatureRenderer.java +++ b/src/jalview/appletgui/FeatureRenderer.java @@ -53,6 +53,7 @@ import java.awt.event.MouseEvent; import java.awt.event.TextEvent; import java.awt.event.TextListener; import java.util.Hashtable; +import java.util.List; /** * DOCUMENT ME! @@ -182,8 +183,8 @@ public class FeatureRenderer extends * @param ap * @return */ - boolean amendFeatures(final SequenceI[] sequences, - final SequenceFeature[] features, boolean create, + boolean amendFeatures(final List sequences, + final List features, boolean create, final AlignmentPanel ap) { final Panel bigPanel = new Panel(new BorderLayout()); @@ -223,22 +224,20 @@ public class FeatureRenderer extends // ///////////////////////////////////// // /MULTIPLE FEATURES AT SELECTED RESIDUE - if (!create && features.length > 1) + if (!create && features.size() > 1) { panel = new Panel(new GridLayout(4, 1)); tmp = new Panel(); tmp.add(new Label("Select Feature: ")); overlaps = new Choice(); - for (int i = 0; i < features.length; i++) + for (SequenceFeature sf : features) { - String item = features[i].getType() + "/" + features[i].getBegin() - + "-" + features[i].getEnd(); - - if (features[i].getFeatureGroup() != null) + String item = sf.getType() + "/" + sf.getBegin() + "-" + + sf.getEnd(); + if (sf.getFeatureGroup() != null) { - item += " (" + features[i].getFeatureGroup() + ")"; + item += " (" + sf.getFeatureGroup() + ")"; } - overlaps.addItem(item); } @@ -253,15 +252,16 @@ public class FeatureRenderer extends if (index != -1) { featureIndex = index; - name.setText(features[index].getType()); - description.setText(features[index].getDescription()); - group.setText(features[index].getFeatureGroup()); - start.setText(features[index].getBegin() + ""); - end.setText(features[index].getEnd() + ""); + SequenceFeature sf = features.get(index); + name.setText(sf.getType()); + description.setText(sf.getDescription()); + group.setText(sf.getFeatureGroup()); + start.setText(sf.getBegin() + ""); + end.setText(sf.getEnd() + ""); SearchResultsI highlight = new SearchResults(); - highlight.addResult(sequences[0], features[index].getBegin(), - features[index].getEnd()); + highlight.addResult(sequences.get(0), sf.getBegin(), + sf.getEnd()); ap.seqPanel.seqCanvas.highlightSearchResults(highlight); @@ -269,8 +269,8 @@ public class FeatureRenderer extends FeatureColourI col = getFeatureStyle(name.getText()); if (col == null) { - Color generatedColour = ColorUtils - .createColourFromName(name.getText()); + Color generatedColour = ColorUtils.createColourFromName(name + .getText()); col = new FeatureColour(generatedColour); } @@ -328,16 +328,17 @@ public class FeatureRenderer extends * if feature type has not been supplied by the caller * (e.g. for Amend, or create features from Find) */ - boolean useLastDefaults = features[0].getType() == null; - String featureType = useLastDefaults ? lastFeatureAdded : features[0] + SequenceFeature firstFeature = features.get(0); + boolean useLastDefaults = firstFeature.getType() == null; + String featureType = useLastDefaults ? lastFeatureAdded : firstFeature .getType(); String featureGroup = useLastDefaults ? lastFeatureGroupAdded - : features[0].getFeatureGroup(); + : firstFeature.getFeatureGroup(); String title = create ? MessageManager .getString("label.create_new_sequence_features") : MessageManager.formatMessage("label.amend_delete_features", - new String[] { sequences[0].getName() }); + new String[] { sequences.get(0).getName() }); final JVDialog dialog = new JVDialog(ap.alignFrame, title, true, 385, 240); @@ -362,9 +363,9 @@ public class FeatureRenderer extends }); } - start.setText(features[0].getBegin() + ""); - end.setText(features[0].getEnd() + ""); - description.setText(features[0].getDescription()); + start.setText(firstFeature.getBegin() + ""); + end.setText(firstFeature.getEnd() + ""); + description.setText(firstFeature.getDescription()); // lookup (or generate) the feature colour FeatureColourI fcol = getFeatureStyle(name.getText()); // simply display the feature color in a box @@ -406,7 +407,7 @@ public class FeatureRenderer extends if (!create) { - SequenceFeature sf = features[featureIndex]; + SequenceFeature sf = features.get(featureIndex); if (dialog.accept) { if (!colourPanel.isGcol) @@ -429,13 +430,13 @@ public class FeatureRenderer extends * replace the feature by deleting it and adding a new one * (to ensure integrity of SequenceFeatures data store) */ - sequences[0].deleteFeature(sf); + sequences.get(0).deleteFeature(sf); SequenceFeature newSf = new SequenceFeature(sf, newBegin, newEnd, enteredGroup, sf.getScore()); newSf.setDescription(enteredDesc); ffile.parseDescriptionHTML(newSf, false); // amend features dialog only updates one sequence at a time - sequences[0].addSequenceFeature(newSf); + sequences.get(0).addSequenceFeature(newSf); boolean typeOrGroupChanged = (!featureType.equals(sf.type) || !featureGroup .equals(sf.featureGroup)); @@ -447,7 +448,7 @@ public class FeatureRenderer extends } if (deleteFeature) { - sequences[0].deleteFeature(sf); + sequences.get(0).deleteFeature(sf); // ensure Feature Settings reflects removal of feature / group featuresAdded(); } @@ -459,13 +460,13 @@ public class FeatureRenderer extends */ if (dialog.accept && name.getText().length() > 0) { - for (int i = 0; i < sequences.length; i++) + for (int i = 0; i < sequences.size(); i++) { - SequenceFeature sf = features[i]; + SequenceFeature sf = features.get(i); SequenceFeature sf2 = new SequenceFeature(enteredType, enteredDesc, sf.getBegin(), sf.getEnd(), enteredGroup); ffile.parseDescriptionHTML(sf2, false); - sequences[i].addSequenceFeature(sf2); + sequences.get(i).addSequenceFeature(sf2); } Color newColour = colourPanel.getBackground();