if (col != null)
{
fcol = new FeatureColour(col);
- updateColourButton(mainPanel, colour, new FeatureColour(col));
+ updateColourButton(mainPanel, colour, fcol);
}
}
else
end.setValue(new Integer(firstFeature.getEnd()));
description.setText(firstFeature.getDescription());
updateColourButton(mainPanel, colour,
- (oldcol = fcol = getFeatureStyle(name.getText())));
+ (oldcol = fcol = getFeatureStyle(featureType)));
Object[] options;
if (!create)
{
FeaturesFile ffile = new FeaturesFile();
- if (reply == JvOptionPane.OK_OPTION && name.getText().length() > 0)
+ final String enteredType = name.getText().trim();
+ final String enteredGroup = group.getText().trim();
+ final String enteredDescription = description.getText().replaceAll("\n", " ");
+
+ if (reply == JvOptionPane.OK_OPTION && enteredType.length() > 0)
{
/*
* update default values only if creating using default values
*/
if (useLastDefaults)
{
- lastFeatureAdded = name.getText().trim();
- lastFeatureGroupAdded = group.getText().trim();
+ lastFeatureAdded = enteredType;
+ lastFeatureGroupAdded = enteredGroup;
// TODO: determine if the null feature group is valid
if (lastFeatureGroupAdded.length() < 1)
{
{
/*
* YES_OPTION corresponds to the Amend button
- * need to refresh Feature Settings if type, group or colour changed
+ * need to refresh Feature Settings if type, group or colour changed;
+ * note we don't force the feature to be visible - the user has been
+ * warned if a hidden feature type or group was entered
*/
- String newType = name.getText().trim();
- String newFeatureGroup = group.getText().trim();
- String newDescription = description.getText().replaceAll("\n", " ");
- boolean refreshSettings = (!featureType.equals(sf.type) || !featureGroup
- .equals(sf.featureGroup));
+ boolean refreshSettings = (!featureType.equals(enteredType) || !featureGroup
+ .equals(enteredGroup));
refreshSettings |= (fcol != oldcol);
- setColour(newType, fcol);
-/*?*/ getFeaturesDisplayed().setVisible(newType);
+ setColour(enteredType, fcol);
int newBegin = sf.begin;
int newEnd = sf.end;
try
* (to ensure integrity of SequenceFeatures data store)
*/
sequences.get(0).deleteFeature(sf);
- SequenceFeature newSf = new SequenceFeature(newType,
- newDescription, newBegin, newEnd, sf.getScore(),
- newFeatureGroup);
+ SequenceFeature newSf = new SequenceFeature(enteredType,
+ enteredDescription, newBegin, newEnd, sf.getScore(),
+ enteredGroup);
// ensure any additional properties are copied
if (sf.otherDetails != null)
{
else
// NEW FEATURES ADDED
{
- if (reply == JvOptionPane.OK_OPTION && lastFeatureAdded.length() > 0)
+ if (reply == JvOptionPane.OK_OPTION && enteredType.length() > 0)
{
for (int i = 0; i < sequences.size(); i++)
{
SequenceFeature sf = features.get(i);
- sf.type = name.getText().trim();
- // fix for JAL-1538 - always set feature group here
- sf.featureGroup = group.getText().trim();
- sf.description = description.getText().replaceAll("\n", " ");
- sequences.get(i).addSequenceFeature(sf);
- ffile.parseDescriptionHTML(sf, false);
+ SequenceFeature sf2 = new SequenceFeature(enteredType,
+ enteredDescription, sf.getBegin(), sf.getEnd(),
+ Float.NaN, enteredGroup);
+ sequences.get(i).addSequenceFeature(sf2);
+ ffile.parseDescriptionHTML(sf2, false);
}
- setColour(lastFeatureAdded, fcol);
+ setColour(enteredType, fcol);
featuresAdded();