Update of /cvsroot/gmod/apollo/src/java/apollo/datamodel In directory usw-pr-cvs1:/tmp/cvs-serv12179/datamodel Modified Files: Tag: sanger_branch FeaturePair.java FeatureSet.java GenericAnnotationSet.java SeqFeature.java SeqFeatureI.java Log Message: DetailInfo.getName now calls feature.getDisplayName(). SeqFeature.getDisplayName just returns getName. FeatureSet.getDisplayName returns its first childs name, unless the first child is a FeaturePair, then it returns the FeaturePairs Hname. GenericAnnotationSet overrides FeatureSets behaviour and just returns its name. FeaturePair returns its sequences display id if it has one, otherwise it returns its hit name. This code is drawn from what was previously in DetailInfo.getName. I am trying to make it so ensembls stuff doesnt break, which needs the FeatureSet and FeaturePair stuff. My fear here is that this logic is specific to ensembl's data and not to others. If this is in fact true then this naming issue has to be dealt with in the data adapter or the data itself. I guess I'm also wondering why isnt the FeaturePair name and FeatureSet name given these names to begin with? In other words why not put these names in the data or have the data adapters figure them? Unless these solutions are general, then its fine of course. Index: FeaturePair.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/datamodel/FeaturePair.java,v retrieving revision 1.10.2.2 retrieving revision 1.10.2.3 diff -C2 -d -r1.10.2.2 -r1.10.2.3 *** FeaturePair.java 6 Nov 2001 14:23:39 -0000 1.10.2.2 --- FeaturePair.java 1 Mar 2002 02:17:31 -0000 1.10.2.3 *************** *** 59,62 **** --- 59,74 ---- return f1.getName(); } + + /** Code taken from DetailInfo.getName() */ + public String getDisplayName() { + SeqFeatureI hit = getHitFeature(); + SequenceI seq = (SequenceI) hit.getRefSequence(); + if (seq != null && seq.getDisplayId() != null) { + return seq.getDisplayId(); + } else { + return hit.getName() != null ? hit.getName() : ""; + } + } + public void setId(String id) { f1.setId(id); Index: FeatureSet.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/datamodel/FeatureSet.java,v retrieving revision 1.29.2.19 retrieving revision 1.29.2.20 diff -C2 -d -r1.29.2.19 -r1.29.2.20 *** FeatureSet.java 28 Feb 2002 21:29:52 -0000 1.29.2.19 --- FeatureSet.java 1 Mar 2002 02:17:31 -0000 1.29.2.20 *************** *** 287,290 **** --- 287,303 ---- } + /** Code taken from DetailInfo.getName. The default behavior for a FeatureSet + * is to get your name from your first kid, but why doesnt the FeatureSet have a name + * itself? And if the first kid is a FeaturePair then getHname from kid + */ + public String getDisplayName() { + if (getFeatureAt(0) instanceof FeaturePair) { + FeaturePair fp = (FeaturePair)getFeatureAt(0); + return fp.getHname(); + } else { + return getFeatureAt(0).getName(); + } + } + // Internal methods public void _setEnds() { Index: GenericAnnotationSet.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/datamodel/GenericAnnotationSet.java,v retrieving revision 1.13.2.3 retrieving revision 1.13.2.4 diff -C2 -d -r1.13.2.3 -r1.13.2.4 *** GenericAnnotationSet.java 7 Nov 2001 22:45:47 -0000 1.13.2.3 --- GenericAnnotationSet.java 1 Mar 2002 02:17:31 -0000 1.13.2.4 *************** *** 75,78 **** --- 75,84 ---- return null; } + + /** Have to override FeatureSets displayName stuff and just return the name */ + public String getDisplayName() { + return getName(); + } + public void setDescription(String desc) { id.setDescription(desc); Index: SeqFeature.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/datamodel/SeqFeature.java,v retrieving revision 1.33.2.17 retrieving revision 1.33.2.18 diff -C2 -d -r1.33.2.17 -r1.33.2.18 *** SeqFeature.java 28 Feb 2002 21:25:52 -0000 1.33.2.17 --- SeqFeature.java 1 Mar 2002 02:17:31 -0000 1.33.2.18 *************** *** 250,253 **** --- 250,260 ---- } + /** getDisplayName defaults to getName(), subclasses can override to + * change display name + */ + public String getDisplayName() { + return getName(); + } + public void setId(String id) { this.id = id; Index: SeqFeatureI.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/datamodel/SeqFeatureI.java,v retrieving revision 1.15.2.9 retrieving revision 1.15.2.10 diff -C2 -d -r1.15.2.9 -r1.15.2.10 *** SeqFeatureI.java 28 Feb 2002 21:25:52 -0000 1.15.2.9 --- SeqFeatureI.java 1 Mar 2002 02:17:31 -0000 1.15.2.10 *************** *** 21,25 **** public String getName(); public void setName(String name); ! public long getStart(); public void setStart(long start); --- 21,27 ---- public String getName(); public void setName(String name); ! /** The name of the feature is not necasarily the name that should be displayed */ ! public String getDisplayName(); ! public long getStart(); public void setStart(long start); |