X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FFeatureRenderer.java;h=be027ec1131f25f2a3d532f06683f773e7ee3e3d;hb=b07f18d4d94d3ba2c1f4e756a059d7a463eef8cd;hp=81d8ef5439268872bf992419aea5464c77f82992;hpb=c956ba7509e394cf70dbf049abe5fbc967222144;p=jalview.git diff --git a/src/jalview/appletgui/FeatureRenderer.java b/src/jalview/appletgui/FeatureRenderer.java index 81d8ef5..be027ec 100644 --- a/src/jalview/appletgui/FeatureRenderer.java +++ b/src/jalview/appletgui/FeatureRenderer.java @@ -22,11 +22,12 @@ package jalview.appletgui; 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; @@ -164,9 +165,20 @@ public class FeatureRenderer extends } + /** + * 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); @@ -189,7 +201,7 @@ public class FeatureRenderer extends // ///////////////////////////////////// // /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(); @@ -225,7 +237,7 @@ public class FeatureRenderer extends 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()); @@ -235,7 +247,7 @@ public class FeatureRenderer extends FeatureColourI col = getFeatureStyle(name.getText()); if (col == null) { - Color generatedColour = UserColourScheme + Color generatedColour = ColorUtils .createColourFromName(name.getText()); col = new FeatureColour(generatedColour); } @@ -251,33 +263,36 @@ public class FeatureRenderer extends tmp = new Panel(); panel.add(tmp); - tmp.add(new Label("Name: ", Label.RIGHT)); + tmp.add(new Label(MessageManager.getString("label.name:"), Label.RIGHT)); tmp.add(name); tmp = new Panel(); panel.add(tmp); - tmp.add(new Label("Group: ", Label.RIGHT)); + tmp.add(new Label(MessageManager.getString("label.group:"), Label.RIGHT)); tmp.add(source); tmp = new Panel(); panel.add(tmp); - tmp.add(new Label("Colour: ", Label.RIGHT)); + tmp.add(new Label(MessageManager.getString("label.colour"), Label.RIGHT)); tmp.add(colourPanel); bigPanel.add(panel, BorderLayout.NORTH); panel = new Panel(); - panel.add(new Label("Description: ", Label.RIGHT)); + panel.add(new Label(MessageManager.getString("label.description:"), + Label.RIGHT)); panel.add(new ScrollPane().add(description)); - if (!newFeatures) + if (!create) { bigPanel.add(panel, BorderLayout.SOUTH); panel = new Panel(); - panel.add(new Label(" Start:", Label.RIGHT)); + panel.add(new Label(MessageManager.getString("label.start"), + Label.RIGHT)); panel.add(start); - panel.add(new Label(" End:", Label.RIGHT)); + panel.add(new Label(MessageManager.getString("label.end"), + Label.RIGHT)); panel.add(end); bigPanel.add(panel, BorderLayout.CENTER); } @@ -286,15 +301,22 @@ public class FeatureRenderer extends 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"; + } } } @@ -310,7 +332,7 @@ public class FeatureRenderer extends } } - 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() }); @@ -320,7 +342,7 @@ public class FeatureRenderer extends dialog.setMainPanel(bigPanel); - if (newFeatures) + if (create) { name.setText(lastFeatureAdded); source.setText(lastFeatureGroupAdded); @@ -373,9 +395,6 @@ public class FeatureRenderer extends 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', ' '); @@ -386,7 +405,7 @@ public class FeatureRenderer extends lastFeatureGroupAdded = null; } - if (!newFeatures) + if (!create) { SequenceFeature sf = features[featureIndex];