/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9.0b2)
- * Copyright (C) 2015 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
*
* This file is part of Jalview.
*
import jalview.api.FeatureColourI;
import jalview.datamodel.SearchResults;
+import jalview.datamodel.SearchResultsI;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
import jalview.io.FeaturesFile;
import jalview.schemes.FeatureColour;
-import jalview.schemes.UserColourScheme;
+import jalview.util.ColorUtils;
import jalview.util.MessageManager;
import jalview.viewmodel.AlignmentViewport;
}
+ /**
+ * Shows a dialog allowing the user to create, or amend or delete, sequence
+ * features.
+ *
+ * @param sequences
+ * @param features
+ * @param create
+ * @param ap
+ * @param featureType
+ * @return
+ */
boolean amendFeatures(final SequenceI[] sequences,
- final SequenceFeature[] features, boolean newFeatures,
- final AlignmentPanel ap)
+ final SequenceFeature[] features, boolean create,
+ final AlignmentPanel ap, String featureType)
{
Panel bigPanel = new Panel(new BorderLayout());
final TextField name = new TextField(16);
// /////////////////////////////////////
// /MULTIPLE FEATURES AT SELECTED RESIDUE
- if (!newFeatures && features.length > 1)
+ if (!create && features.length > 1)
{
panel = new Panel(new GridLayout(4, 1));
tmp = new Panel();
start.setText(features[index].getBegin() + "");
end.setText(features[index].getEnd() + "");
- SearchResults highlight = new SearchResults();
+ SearchResultsI highlight = new SearchResults();
highlight.addResult(sequences[0], features[index].getBegin(),
features[index].getEnd());
FeatureColourI col = getFeatureStyle(name.getText());
if (col == null)
{
- Color generatedColour = UserColourScheme
+ Color generatedColour = ColorUtils
.createColourFromName(name.getText());
col = new FeatureColour(generatedColour);
}
Label.RIGHT));
panel.add(new ScrollPane().add(description));
- if (!newFeatures)
+ if (!create)
{
bigPanel.add(panel, BorderLayout.SOUTH);
bigPanel.add(panel, BorderLayout.CENTER);
}
- if (lastFeatureAdded == null)
+ if (featureType != null)
{
- if (features[0].type != null)
- {
- lastFeatureAdded = features[0].type;
- }
- else
+ lastFeatureAdded = featureType;
+ }
+ else
+ {
+ if (lastFeatureAdded == null)
{
- lastFeatureAdded = "feature_1";
+ if (features[0].type != null)
+ {
+ lastFeatureAdded = features[0].type;
+ }
+ else
+ {
+ lastFeatureAdded = "feature_1";
+ }
}
}
}
}
- String title = newFeatures ? MessageManager
+ String title = create ? MessageManager
.getString("label.create_new_sequence_features")
: MessageManager.formatMessage("label.amend_delete_features",
new String[] { sequences[0].getName() });
dialog.setMainPanel(bigPanel);
- if (newFeatures)
+ if (create)
{
name.setText(lastFeatureAdded);
source.setText(lastFeatureGroupAdded);
if (dialog.accept)
{
- // This ensures that the last sequence
- // is refreshed and new features are rendered
- lastSeq = null;
lastFeatureAdded = name.getText().trim();
lastFeatureGroupAdded = source.getText().trim();
lastDescriptionAdded = description.getText().replace('\n', ' ');
lastFeatureGroupAdded = null;
}
- if (!newFeatures)
+ if (!create)
{
SequenceFeature sf = features[featureIndex];