From: Mark G. <mg...@us...> - 2002-03-01 02:17:34
|
Update of /cvsroot/gmod/apollo/src/java/apollo/gui In directory usw-pr-cvs1:/tmp/cvs-serv12179/gui Modified Files: Tag: sanger_branch DetailInfo.java DrawableSeqFeature.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: DetailInfo.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/gui/DetailInfo.java,v retrieving revision 1.5.2.12 retrieving revision 1.5.2.13 diff -C2 -d -r1.5.2.12 -r1.5.2.13 *** DetailInfo.java 28 Feb 2002 21:40:37 -0000 1.5.2.12 --- DetailInfo.java 1 Mar 2002 02:17:31 -0000 1.5.2.13 *************** *** 258,286 **** } public static String getName(SeqFeatureI feature) { ! String name = ""; ! if (feature instanceof FeaturePair) { ! SeqFeatureI hit = ((FeaturePair)feature).getHitFeature(); ! SequenceI seq = (SequenceI) hit.getRefSequence(); ! if (seq != null && seq.getDisplayId() != null) { ! name = seq.getDisplayId(); ! } else { ! name = hit.getName() != null ? hit.getName() : ""; ! } ! } else if (feature instanceof FeatureSet) { // This is problematic for annotations. If its a transcript or gene // then you want the name of just that, not of its first subpart ! FeatureSet fset = (FeatureSet)feature; ! if (fset.getFeatureAt(0) instanceof FeaturePair) { ! FeaturePair fp = (FeaturePair)fset.getFeatureAt(0); ! name = fp.getHname(); ! } else { ! name = fset.getFeatureAt(0).getName(); ! } ! } else { ! name = feature.getName(); ! } ! return name; } --- 258,298 ---- } + /** The whole logic of this section has been put into the individual + * getDisplayName() methods of the various classes + */ public static String getName(SeqFeatureI feature) { ! return feature.getDisplayName(); ! // String name = ""; ! // if (feature instanceof FeaturePair) { ! // SeqFeatureI hit = ((FeaturePair)feature).getHitFeature(); ! // SequenceI seq = (SequenceI) hit.getRefSequence(); ! // if (seq != null && seq.getDisplayId() != null) { ! // name = seq.getDisplayId(); ! // } else { ! // name = hit.getName() != null ? hit.getName() : ""; ! // } // This is problematic for annotations. If its a transcript or gene // then you want the name of just that, not of its first subpart ! // we need a general solution - we should just be able to say ! // getName() on a feature and the appropriate name should come back ! // if the feature has to get its name from its kid fine - but do that ! // in the getName method (or possibly when the data is being made?) ! // but not here - There could even be a new method getDisplayName ! // in DrawableSeqFeature? or SeqFeature? ! // } else if (feature instanceof FeatureSet ! // && ! (feature instanceof Gene) ! // && ! (feature instanceof Transcript) ) { // refactor ! // FeatureSet fset = (FeatureSet)feature; ! // if (fset.getFeatureAt(0) instanceof FeaturePair) { ! // FeaturePair fp = (FeaturePair)fset.getFeatureAt(0); ! // name = fp.getHname(); ! // } else { ! // name = fset.getFeatureAt(0).getName(); ! // } ! // } else { ! // name = feature.getName(); ! // } ! // return name; } Index: DrawableSeqFeature.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/gui/DrawableSeqFeature.java,v retrieving revision 1.48.2.46 retrieving revision 1.48.2.47 diff -C2 -d -r1.48.2.46 -r1.48.2.47 *** DrawableSeqFeature.java 28 Feb 2002 22:00:41 -0000 1.48.2.46 --- DrawableSeqFeature.java 1 Mar 2002 02:17:31 -0000 1.48.2.47 *************** *** 612,615 **** --- 612,618 ---- return feature.getName(); } + public String getDisplayName() { + return feature.getDisplayName(); + } public void setId(String id) { feature.setId(id); |