From: Suzanna L. <su...@us...> - 2002-02-16 21:27:59
|
Update of /cvsroot/gmod/apollo/src/java/apollo/gui In directory usw-pr-cvs1:/tmp/cvs-serv30776/apollo/gui Modified Files: AnnotationChangeCoalescer.java AnnotationChangeLog.java AnnotationEditor.java AnnotationView.java BaseFineEditor.java DataLoader.java DrawableAnnotatedFeatureSet.java DrawableFeatureSet.java DrawableSeqFeature.java EvidencePanel.java FeatureEditorDialog.java FeatureTreePanel.java ResultView.java Log Message: give curators the ability to override strand and flip selected results to the opposite strand name changes and id changes in fly name adapter fixed bug with null pointer when comparing regions from history file Index: AnnotationChangeCoalescer.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/gui/AnnotationChangeCoalescer.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** AnnotationChangeCoalescer.java 25 Jan 2002 23:43:58 -0000 1.3 --- AnnotationChangeCoalescer.java 16 Feb 2002 21:27:56 -0000 1.4 *************** *** 110,114 **** AnnotationChangeEvent evt = (AnnotationChangeEvent) changes.elementAt(i); ! if (evt.getType() == FeatureChangeEvent.ANNOTATE) { ace = evt; --- 110,114 ---- AnnotationChangeEvent evt = (AnnotationChangeEvent) changes.elementAt(i); ! if (evt.getType() == FeatureChangeEvent.REDRAW) { ace = evt; Index: AnnotationChangeLog.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/gui/AnnotationChangeLog.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** AnnotationChangeLog.java 22 Oct 2001 23:50:49 -0000 1.4 --- AnnotationChangeLog.java 16 Feb 2002 21:27:56 -0000 1.5 *************** *** 65,69 **** } break; ! case FeatureChangeEvent.ANNOTATE: changed.addElement(evt.getAnnotation()); break; --- 65,69 ---- } break; ! case FeatureChangeEvent.REDRAW: changed.addElement(evt.getAnnotation()); break; Index: AnnotationEditor.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/gui/AnnotationEditor.java,v retrieving revision 1.62 retrieving revision 1.63 diff -C2 -d -r1.62 -r1.63 *** AnnotationEditor.java 25 Jan 2002 23:43:58 -0000 1.62 --- AnnotationEditor.java 16 Feb 2002 21:27:56 -0000 1.63 *************** *** 60,64 **** * 5. If you write new edits think if you need to do a consolidateGenes, * splitGenes or updateGenes. <BR> ! * 6. _setEnds calls often help. There is no automatic propogation of * limit changes in the Annotation tree. <BR> */ --- 60,64 ---- * 5. If you write new edits think if you need to do a consolidateGenes, * splitGenes or updateGenes. <BR> ! * 6. adjustEdges calls often help. There is no automatic propogation of * limit changes in the Annotation tree. <BR> */ *************** *** 102,106 **** * cursor (for the default edits at least). */ ! SelectionSet curSet; /** --- 102,106 ---- * cursor (for the default edits at least). */ ! SelectionSet cursorSet; /** *************** *** 204,208 **** * @param v The AnnotationView (currently unused in this method). * @param inSel Vector of features used for the selSet. ! * @param underCursor Vector of features used for the curSet. * @param inView Vector of features used for the viewSet. * @param inEvidence Vector of features used for the evidenceSet. --- 204,208 ---- * @param v The AnnotationView (currently unused in this method). * @param inSel Vector of features used for the selSet. ! * @param underCursor Vector of features used for the cursorSet. * @param inView Vector of features used for the viewSet. * @param inEvidence Vector of features used for the evidenceSet. *************** *** 223,227 **** * @param endBasePosition The position to set as this.endBasePosition. * @param inSel Vector of features used for the selSet. ! * @param underCursor Vector of features used for the curSet. * @param inView Vector of features used for the viewSet. * @param inEvidence Vector of features used for the evidenceSet. --- 223,227 ---- * @param endBasePosition The position to set as this.endBasePosition. * @param inSel Vector of features used for the selSet. ! * @param underCursor Vector of features used for the cursorSet. * @param inView Vector of features used for the viewSet. * @param inEvidence Vector of features used for the evidenceSet. *************** *** 245,249 **** * * @param inSel Vector of features used for the selSet. ! * @param underCursor Vector of features used for the curSet. * @param inView Vector of features used for the viewSet. * @param inEvidence Vector of features used for the evidenceSet. --- 245,249 ---- * * @param inSel Vector of features used for the selSet. ! * @param underCursor Vector of features used for the cursorSet. * @param inView Vector of features used for the viewSet. * @param inEvidence Vector of features used for the evidenceSet. *************** *** 257,261 **** selSet = new SelectionSet(inSel); ! curSet = new SelectionSet(underCursor); viewSet = new SelectionSet(inView); evidenceSet = new SelectionSet(inEvidence); --- 257,261 ---- selSet = new SelectionSet(inSel); ! cursorSet = new SelectionSet(underCursor); viewSet = new SelectionSet(inView); evidenceSet = new SelectionSet(inEvidence); *************** *** 267,271 **** */ protected void resetData() { ! selSet = curSet = viewSet = evidenceSet = null; basePosition = endBasePosition = -1; strandSet = false; --- 267,271 ---- */ protected void resetData() { ! selSet = cursorSet = viewSet = evidenceSet = null; basePosition = endBasePosition = -1; strandSet = false; *************** *** 276,280 **** * (the features from the Selection in the ResultView for the AnnotationView), * the viewSet (the features from the Selection in the AnnotationView) and ! * the selSet (all the features in the Selection). The curSet comes from the * underCursor Vector. * --- 276,280 ---- * (the features from the Selection in the ResultView for the AnnotationView), * the viewSet (the features from the Selection in the AnnotationView) and ! * the selSet (all the features in the Selection). The cursorSet comes from the * underCursor Vector. * *************** *** 301,305 **** * (the features from the Selection in the ResultView for the AnnotationView), * the viewSet (the features from the Selection in the AnnotationView) and ! * the selSet (all the features in the Selection). The curSet comes from the * underCursor Vector. Also sets the basePosition which is used in some edits. * --- 301,305 ---- * (the features from the Selection in the ResultView for the AnnotationView), * the viewSet (the features from the Selection in the AnnotationView) and ! * the selSet (all the features in the Selection). The cursorSet comes from the * underCursor Vector. Also sets the basePosition which is used in some edits. * *************** *** 323,327 **** * (the features from the Selection in the ResultView for the AnnotationView), * the viewSet (the features from the Selection in the AnnotationView) and ! * the selSet (all the features in the Selection). The curSet comes from the * underCursor Vector. Also sets the basePosition and defaultStrand (used in * some edits). --- 323,327 ---- * (the features from the Selection in the ResultView for the AnnotationView), * the viewSet (the features from the Selection in the AnnotationView) and ! * the selSet (all the features in the Selection). The cursorSet comes from the * underCursor Vector. Also sets the basePosition and defaultStrand (used in * some edits). *************** *** 357,363 **** */ public boolean mergeTranscriptsAllowed() { ! if (curSet.getTranscripts().size() == 1 && selSet.getTranscripts().size() == 1 && ! curSet.getTranscript(0) != selSet.getTranscript(0)) { return true; } --- 357,363 ---- */ public boolean mergeTranscriptsAllowed() { ! if (cursorSet.getTranscripts().size() == 1 && selSet.getTranscripts().size() == 1 && ! cursorSet.getTranscript(0) != selSet.getTranscript(0)) { return true; } *************** *** 367,371 **** /** * The default mergeTranscripts method. This merges a single transcript selected ! * from the curSet (under the cursor) and a single transcript from in the * selSet (which usually comes from the current Selection). */ --- 367,371 ---- /** * The default mergeTranscripts method. This merges a single transcript selected ! * from the cursorSet (under the cursor) and a single transcript from in the * selSet (which usually comes from the current Selection). */ *************** *** 374,378 **** Vector combinedTranscripts = new Vector(); ! combinedTranscripts.addElement(curSet.getTranscripts().elementAt(0)); combinedTranscripts.addElement(selSet.getTranscripts().elementAt(0)); --- 374,378 ---- Vector combinedTranscripts = new Vector(); ! combinedTranscripts.addElement(cursorSet.getTranscripts().elementAt(0)); combinedTranscripts.addElement(selSet.getTranscripts().elementAt(0)); *************** *** 423,427 **** consolidateGenes(gene1, changer); ! endEdit(changer, true, gene1, FeatureChangeEvent.ANNOTATE); return; --- 423,427 ---- consolidateGenes(gene1, changer); ! endEdit(changer, true, gene1, FeatureChangeEvent.REDRAW); return; *************** *** 432,436 **** */ public void printSets() { ! curSet .dump("curSet:"); selSet .dump("selSet:"); viewSet .dump("viewSet:"); --- 432,436 ---- */ public void printSets() { ! cursorSet .dump("cursorSet:"); selSet .dump("selSet:"); viewSet .dump("viewSet:"); *************** *** 601,610 **** public void setTranslationTerminus() { if (selSet.getDrawFeatures().size() != 1 || ! curSet.getFeatures().size() != 1) { showMessage(JOptionPane.ERROR_MESSAGE, "Must select exactly one terminus and one exon"); return; } ! if (!(curSet.getFeature(0) instanceof ExonI) || !(selSet.getDrawFeature(0) instanceof DrawableTerminalCodon)) { --- 601,610 ---- public void setTranslationTerminus() { if (selSet.getDrawFeatures().size() != 1 || ! cursorSet.getFeatures().size() != 1) { showMessage(JOptionPane.ERROR_MESSAGE, "Must select exactly one terminus and one exon"); return; } ! if (!(cursorSet.getFeature(0) instanceof ExonI) || !(selSet.getDrawFeature(0) instanceof DrawableTerminalCodon)) { *************** *** 614,618 **** } ! setTranslationTerminus((ExonI)curSet.getFeature(0), (DrawableTerminalCodon)selSet.getDrawFeature(0)); --- 614,618 ---- } ! setTranslationTerminus((ExonI)cursorSet.getFeature(0), (DrawableTerminalCodon)selSet.getDrawFeature(0)); *************** *** 632,636 **** trans.setOwner(System.getProperty("user.name")); trans.addProperty ("date", (new Date()).toString()); ! endEdit(changer, true, trans.getGene(), FeatureChangeEvent.ANNOTATE); } --- 632,636 ---- trans.setOwner(System.getProperty("user.name")); trans.addProperty ("date", (new Date()).toString()); ! endEdit(changer, true, trans.getGene(), FeatureChangeEvent.REDRAW); } *************** *** 687,691 **** exon); changer.addChange(ace); ! endEdit(changer, true, trans.getGene(), FeatureChangeEvent.ANNOTATE); } --- 687,691 ---- exon); changer.addChange(ace); ! endEdit(changer, true, trans.getGene(), FeatureChangeEvent.REDRAW); } *************** *** 697,706 **** public void setSpliceSite() { if (selSet.getDrawFeatures().size() != 1 || ! curSet.getFeatures().size() != 1) { showMessage(JOptionPane.ERROR_MESSAGE, "Must select exactly one splice site and one exon"); return; } ! if (!(curSet.getFeature(0) instanceof ExonI) || !(selSet.getDrawFeature(0) instanceof DrawableSpliceSite)) { showMessage(JOptionPane.ERROR_MESSAGE, --- 697,706 ---- public void setSpliceSite() { if (selSet.getDrawFeatures().size() != 1 || ! cursorSet.getFeatures().size() != 1) { showMessage(JOptionPane.ERROR_MESSAGE, "Must select exactly one splice site and one exon"); return; } ! if (!(cursorSet.getFeature(0) instanceof ExonI) || !(selSet.getDrawFeature(0) instanceof DrawableSpliceSite)) { showMessage(JOptionPane.ERROR_MESSAGE, *************** *** 709,713 **** } ! setSpliceSite((ExonI)curSet.getFeature(0), (DrawableSpliceSite)selSet.getDrawFeature(0)); } --- 709,713 ---- } ! setSpliceSite((ExonI)cursorSet.getFeature(0), (DrawableSpliceSite)selSet.getDrawFeature(0)); } *************** *** 807,811 **** changer.addChange(ace); ! endEdit(changer, true, trans.getGene(), FeatureChangeEvent.ANNOTATE); } --- 807,811 ---- changer.addChange(ace); ! endEdit(changer, true, trans.getGene(), FeatureChangeEvent.REDRAW); } *************** *** 890,893 **** --- 890,972 ---- /** + * Determine if there is anything at all selected to move to the + * other strand + * <BR> + */ + public boolean resultIsSelected () { + // not sure if this is the correct test, but it'll do for now + return (evidenceSet.getFeatures().size() > 0); + } + + /** + * The default addGeneOrTranscript. This methods creates a new Gene or + * Transcript from the selSet (by default the current Selection). + */ + public void flipResult() { + if (resultIsSelected()) + { + Vector features = evidenceSet.getSets(); + for (int i = 0; i < features.size(); i++) + { + if (!(features.elementAt(i) instanceof FeatureSetI)) + { + SeqFeatureI sf = (SeqFeatureI) features.elementAt (i); + System.err.println ("Whoa, this is not what I expected " + + sf.getName() + " of type " + + sf.getType() + " is a " + + sf.getClass().getName()); + continue; + } + + FeatureSetI feature = (FeatureSetI) features.elementAt(i); + // The parent is the analysis and contains all of the + // results that are on one strand + FeatureSetI old_parent = (FeatureSetI) feature.getRefFeature(); + if (old_parent == null) + { + System.err.println ("Whoa, this is not what I expected " + + feature.getName() + " of type " + + feature.getType() + " is an orphan "); + continue; + } + old_parent.deleteFeature (feature); + ResultChangeEvent rm_evt + = new ResultChangeEvent(this, + old_parent, + FeatureChangeEvent.DELETE, + ResultChangeEvent.RESULTSET, + old_parent, + feature); + getController().handleResultChangeEvent(rm_evt); + + feature.flipFlop(); + + FeatureSetI new_parent + = (FeatureSetI) feature.getRefFeature ("opposite"); + new_parent.addFeature (feature); + feature.addRefFeature ("opposite", old_parent); + + ResultChangeEvent add_evt + = new ResultChangeEvent(this, + new_parent, + FeatureChangeEvent.ADD, + ResultChangeEvent.RESULTSET, + new_parent, + feature); + getController().handleResultChangeEvent(add_evt); + + } + ResultChangeEvent evt + = new ResultChangeEvent(this, + null, + FeatureChangeEvent.REDRAW, + ResultChangeEvent.RESULTSET, + null, + null); + getController().handleResultChangeEvent(evt); + } + } + + /** * Determine if the current selection sets are compatible with the * the default adding evidence to exons method. *************** *** 896,900 **** */ public boolean addEvidenceExonsAllowed() { ! return goodEvidence (curSet.getTranscripts(), evidenceSet.getFeatures()); } --- 975,979 ---- */ public boolean addEvidenceExonsAllowed() { ! return goodEvidence (cursorSet.getTranscripts(), evidenceSet.getFeatures()); } *************** *** 952,961 **** /** ! * The default method to add evidence to exons. The curSet is used to determine * the transcript to add evidence to. The evidenceSet is used to determine * the features to use as evidence. */ public void addEvidenceExons() { ! switch (curSet.getTranscripts().size()) { case 0: showMessage(JOptionPane.ERROR_MESSAGE, --- 1031,1040 ---- /** ! * The default method to add evidence to exons. The cursorSet is used to determine * the transcript to add evidence to. The evidenceSet is used to determine * the features to use as evidence. */ public void addEvidenceExons() { ! switch (cursorSet.getTranscripts().size()) { case 0: showMessage(JOptionPane.ERROR_MESSAGE, *************** *** 963,967 **** break; case 1: ! addEvidenceExons(curSet.getTranscript(0), evidenceSet.getFeatures(), EvidenceConstants.SIMILARITY); --- 1042,1046 ---- break; case 1: ! addEvidenceExons(cursorSet.getTranscript(0), evidenceSet.getFeatures(), EvidenceConstants.SIMILARITY); *************** *** 988,992 **** addEvidenceExons(trans,features,changer,evidenceType); ! endEdit(changer, true, trans.getGene(), FeatureChangeEvent.ANNOTATE); } --- 1067,1071 ---- addEvidenceExons(trans,features,changer,evidenceType); ! endEdit(changer, true, trans.getGene(), FeatureChangeEvent.REDRAW); } *************** *** 1091,1095 **** removeEvidenceExons(trans,features,changer); ! endEdit(changer, true, trans.getGene(), FeatureChangeEvent.ANNOTATE); } --- 1170,1174 ---- removeEvidenceExons(trans,features,changer); ! endEdit(changer, true, trans.getGene(), FeatureChangeEvent.REDRAW); } *************** *** 1150,1154 **** public boolean addExonsAllowed() { ! return validNewExons (curSet.getTranscripts(), selSet.getFeatures()); } --- 1229,1233 ---- public boolean addExonsAllowed() { ! return validNewExons (cursorSet.getTranscripts(), selSet.getFeatures()); } *************** *** 1156,1163 **** * The default addExons which adds exons to a transcript. The features to add * as exons should be in the selSet, with the transcript to add to in the ! * curSet. */ public void addExons() { ! switch (curSet.getTranscripts().size()) { case 0: showMessage(JOptionPane.ERROR_MESSAGE,"Selected NO transcript to add exons to"); --- 1235,1242 ---- * The default addExons which adds exons to a transcript. The features to add * as exons should be in the selSet, with the transcript to add to in the ! * cursorSet. */ public void addExons() { ! switch (cursorSet.getTranscripts().size()) { case 0: showMessage(JOptionPane.ERROR_MESSAGE,"Selected NO transcript to add exons to"); *************** *** 1165,1169 **** break; case 1: ! addExons(curSet.getTranscript(0),selSet.getFeatures()); break; default: --- 1244,1248 ---- break; case 1: ! addExons(cursorSet.getTranscript(0),selSet.getFeatures()); break; default: *************** *** 1259,1263 **** addEvidenceExons(trans,features,changer,EvidenceConstants.SIMILARITY); ! endEdit(changer,true, trans.getGene(), FeatureChangeEvent.ANNOTATE); return; --- 1338,1342 ---- addEvidenceExons(trans,features,changer,EvidenceConstants.SIMILARITY); ! endEdit(changer,true, trans.getGene(), FeatureChangeEvent.REDRAW); return; *************** *** 1302,1306 **** public boolean addGeneOrTranscriptAllowed() { return (selSet.getFeatures().size() > 0 && ! curSet.getFeatures().size() == 0); } --- 1381,1385 ---- public boolean addGeneOrTranscriptAllowed() { return (selSet.getFeatures().size() > 0 && ! cursorSet.getFeatures().size() == 0); } *************** *** 1447,1451 **** addEvidenceExons(trans, features, changer, EvidenceConstants.SIMILARITY); consolidateGenes(gene, changer); ! endEdit(changer, true, gene, FeatureChangeEvent.ANNOTATE); return; --- 1526,1530 ---- addEvidenceExons(trans, features, changer, EvidenceConstants.SIMILARITY); consolidateGenes(gene, changer); ! endEdit(changer, true, gene, FeatureChangeEvent.REDRAW); return; *************** *** 1591,1595 **** true, editingExon.getRefFeature().getRefFeature(), ! FeatureChangeEvent.ANNOTATE); } --- 1670,1674 ---- true, editingExon.getRefFeature().getRefFeature(), ! FeatureChangeEvent.REDRAW); } *************** *** 1617,1621 **** changer.executeChanges(); ! endEdit(changer, true, gene, FeatureChangeEvent.ANNOTATE); } --- 1696,1700 ---- changer.executeChanges(); ! endEdit(changer, true, gene, FeatureChangeEvent.REDRAW); } *************** *** 1664,1668 **** consolidateGenes(gene, changer); ! endEdit(changer, true, gene, FeatureChangeEvent.ANNOTATE); return; --- 1743,1747 ---- consolidateGenes(gene, changer); ! endEdit(changer, true, gene, FeatureChangeEvent.REDRAW); return; *************** *** 1743,1747 **** consolidateGenes(trans.getGene(), changer); ! endEdit(changer, true, trans.getGene(), FeatureChangeEvent.ANNOTATE); } --- 1822,1826 ---- consolidateGenes(trans.getGene(), changer); ! endEdit(changer, true, trans.getGene(), FeatureChangeEvent.REDRAW); } *************** *** 1829,1834 **** SeqFeatureI annot, int change_type) { ! if (selSet != null && curSet != null && ! (selSet.getUsed() || curSet.getUsed())) { System.err.println("WARNING: Used selection or cursor set multiple times"); } --- 1908,1913 ---- SeqFeatureI annot, int change_type) { ! if (selSet != null && cursorSet != null && ! (selSet.getUsed() || cursorSet.getUsed())) { System.err.println("WARNING: Used selection or cursor set multiple times"); } *************** *** 1848,1852 **** editDescription = null; ! if (done && selSet != null && curSet != null) _setUsed(done); } --- 1927,1931 ---- editDescription = null; ! if (done && selSet != null && cursorSet != null) _setUsed(done); } *************** *** 1959,1963 **** tran.setOwner(System.getProperty("user.name")); tran.addProperty ("date", (new Date()).toString()); ! endEdit(changer, true, tran.getGene(), FeatureChangeEvent.ANNOTATE); } } --- 2038,2042 ---- tran.setOwner(System.getProperty("user.name")); tran.addProperty ("date", (new Date()).toString()); ! endEdit(changer, true, tran.getGene(), FeatureChangeEvent.REDRAW); } } *************** *** 2082,2086 **** updateGenes(gene,changer); ! endEdit(changer, true, gene, FeatureChangeEvent.ANNOTATE); } --- 2161,2165 ---- updateGenes(gene,changer); ! endEdit(changer, true, gene, FeatureChangeEvent.REDRAW); } *************** *** 2096,2100 **** /** * The default createAnnotation method for creating an unsupported annotation. ! * Nothing should be selected, or under the cursor (selSet and curSet should * be empty). The basePosition should be set, as should the default strand. * @see #setSelections(AnnotationView, Selection, Vector, long, int) --- 2175,2179 ---- /** * The default createAnnotation method for creating an unsupported annotation. ! * Nothing should be selected, or under the cursor (selSet and cursorSet should * be empty). The basePosition should be set, as should the default strand. * @see #setSelections(AnnotationView, Selection, Vector, long, int) *************** *** 2105,2109 **** "it uses the feature under the cursor."); } ! if (curSet.getFeatures().size() > 0) { showMessage(JOptionPane.ERROR_MESSAGE,"There are features under the cursor."); return; --- 2184,2188 ---- "it uses the feature under the cursor."); } ! if (cursorSet.getFeatures().size() > 0) { showMessage(JOptionPane.ERROR_MESSAGE,"There are features under the cursor."); return; *************** *** 2159,2163 **** /** * The default splitFeature method. This splits a single feature which should ! * be in the curSet (ie. by default under the cursor NOT selected), at the * basePosition (which should have been set using the appropriate setSelection * method). If endBasePosition is set it is used as the start of one of the --- 2238,2242 ---- /** * The default splitFeature method. This splits a single feature which should ! * be in the cursorSet (ie. by default under the cursor NOT selected), at the * basePosition (which should have been set using the appropriate setSelection * method). If endBasePosition is set it is used as the start of one of the *************** *** 2169,2180 **** "it uses the feature under the cursor."); } ! if (curSet.getFeatures().size() > 1) { showMessage(JOptionPane.ERROR_MESSAGE,"Can only split one feature at a time."); return; ! } else if (curSet.getFeatures().size() == 0) { showMessage(JOptionPane.ERROR_MESSAGE,"No feature under cursor."); return; } ! if (!(curSet.getFeature(0) instanceof ExonI)) { showMessage(JOptionPane.ERROR_MESSAGE,"Can only split an exon."); return; --- 2248,2259 ---- "it uses the feature under the cursor."); } ! if (cursorSet.getFeatures().size() > 1) { showMessage(JOptionPane.ERROR_MESSAGE,"Can only split one feature at a time."); return; ! } else if (cursorSet.getFeatures().size() == 0) { showMessage(JOptionPane.ERROR_MESSAGE,"No feature under cursor."); return; } ! if (!(cursorSet.getFeature(0) instanceof ExonI)) { showMessage(JOptionPane.ERROR_MESSAGE,"Can only split an exon."); return; *************** *** 2185,2191 **** } if (endBasePosition == -1) ! splitFeature((ExonI)curSet.getFeature(0),basePosition); else ! splitFeature((ExonI)curSet.getFeature(0), basePosition, endBasePosition); --- 2264,2270 ---- } if (endBasePosition == -1) ! splitFeature((ExonI)cursorSet.getFeature(0),basePosition); else ! splitFeature((ExonI)cursorSet.getFeature(0), basePosition, endBasePosition); *************** *** 2230,2234 **** changer.addChange(ace); changer.executeChanges(); ! endEdit(changer, true, tran.getGene(), FeatureChangeEvent.ANNOTATE); } else { --- 2309,2313 ---- changer.addChange(ace); changer.executeChanges(); ! endEdit(changer, true, tran.getGene(), FeatureChangeEvent.REDRAW); } else { *************** *** 2284,2293 **** { splitAllGenes(changer); ! endEdit(changer, true, gene, FeatureChangeEvent.ANNOTATE); } } /** ! * Set the selSet and curSet to the used state. Its useful to know if the * same selections have been used for multiple edits, which will usually * indicate an error. --- 2363,2372 ---- { splitAllGenes(changer); ! endEdit(changer, true, gene, FeatureChangeEvent.REDRAW); } } /** ! * Set the selSet and cursorSet to the used state. Its useful to know if the * same selections have been used for multiple edits, which will usually * indicate an error. *************** *** 2295,2299 **** private void _setUsed(boolean state) { selSet.setUsed(true); ! curSet.setUsed(true); } --- 2374,2378 ---- private void _setUsed(boolean state) { selSet.setUsed(true); ! cursorSet.setUsed(true); } *************** *** 2303,2308 **** */ public boolean deleteExonAllowed() { ! if (curSet.getFeatures().size() == 1 && ! curSet.getFeature(0) instanceof ExonI) { return true; } --- 2382,2387 ---- */ public boolean deleteExonAllowed() { ! if (cursorSet.getFeatures().size() == 1 && ! cursorSet.getFeature(0) instanceof ExonI) { return true; } *************** *** 2312,2316 **** /** * The default edit for deleting an exon from a transcript. This deletes the ! * first feature in the curSet (by default the features under the cursor). This * must be an ExonI. */ --- 2391,2395 ---- /** * The default edit for deleting an exon from a transcript. This deletes the ! * first feature in the cursorSet (by default the features under the cursor). This * must be an ExonI. */ *************** *** 2319,2327 **** if (deleteExonAllowed()) { AnnotationChangeCoalescer changer = beginEdit("delete exon"); ! purgeExon((ExonI)curSet.getFeature(0),changer); endEdit(changer, true, ! curSet.getFeature(0).getRefFeature().getRefFeature(), ! FeatureChangeEvent.ANNOTATE); } else { showMessage(JOptionPane.ERROR_MESSAGE, --- 2398,2406 ---- if (deleteExonAllowed()) { AnnotationChangeCoalescer changer = beginEdit("delete exon"); ! purgeExon((ExonI)cursorSet.getFeature(0),changer); endEdit(changer, true, ! cursorSet.getFeature(0).getRefFeature().getRefFeature(), ! FeatureChangeEvent.REDRAW); } else { showMessage(JOptionPane.ERROR_MESSAGE, *************** *** 2639,2643 **** trans.setTranslationEndFromStart(); ! endEdit(changer, true, gene, FeatureChangeEvent.ANNOTATE); } else { --- 2718,2722 ---- trans.setTranslationEndFromStart(); ! endEdit(changer, true, gene, FeatureChangeEvent.REDRAW); } else { *************** *** 2653,2659 **** protected void setGeneEnds(Gene gene) { for (int i=0; i<gene.size(); i++) { ! ((Transcript)gene.getFeatureAt(i))._setEnds(); } ! gene._setEnds(); } --- 2732,2738 ---- protected void setGeneEnds(Gene gene) { for (int i=0; i<gene.size(); i++) { ! ((Transcript)gene.getFeatureAt(i)).adjustEdges(); } ! gene.adjustEdges(); } Index: AnnotationView.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/gui/AnnotationView.java,v retrieving revision 1.86 retrieving revision 1.87 diff -C2 -d -r1.86 -r1.87 *** AnnotationView.java 25 Jan 2002 23:43:58 -0000 1.86 --- AnnotationView.java 16 Feb 2002 21:27:56 -0000 1.87 *************** *** 263,267 **** annot.getStrand() == 0)) { ! if (evt.getType() != FeatureChangeEvent.ANNOTATE) { System.out.println ("AnnotView repair " + evt.toString()); --- 263,267 ---- annot.getStrand() == 0)) { ! if (evt.getType() != FeatureChangeEvent.REDRAW) { System.out.println ("AnnotView repair " + evt.toString()); Index: BaseFineEditor.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/gui/BaseFineEditor.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** BaseFineEditor.java 22 Oct 2001 23:50:50 -0000 1.15 --- BaseFineEditor.java 16 Feb 2002 21:27:56 -0000 1.16 *************** *** 52,56 **** { if (evt.getSource() != editorPanel && ! evt.getType() == FeatureChangeEvent.ANNOTATE) { System.out.println ("Handling annot change in fine editor on " + evt.getAnnotation().getName()); --- 52,56 ---- { if (evt.getSource() != editorPanel && ! evt.getType() == FeatureChangeEvent.REDRAW) { System.out.println ("Handling annot change in fine editor on " + evt.getAnnotation().getName()); Index: DataLoader.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/gui/DataLoader.java,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** DataLoader.java 6 Jan 2002 22:20:33 -0000 1.24 --- DataLoader.java 16 Feb 2002 21:27:56 -0000 1.25 *************** *** 245,249 **** String regionb = adapterProperties.getProperty("region"); String adapterb = adapterProperties.getProperty("adapter"); ! for(int i=0; i < openHistoryLength; i++) { MultiProperties p = allProperties.getProperties("openHistory"+i); --- 245,251 ---- String regionb = adapterProperties.getProperty("region"); String adapterb = adapterProperties.getProperty("adapter"); ! for(int i = 0; ! i < openHistoryLength && regionb != null && adapterb != null; ! i++) { MultiProperties p = allProperties.getProperties("openHistory"+i); *************** *** 252,257 **** String regiona = p.getProperty("region"); String adaptera = p.getProperty("adapter"); ! if (!(regiona.equals(regionb) && ! adaptera.equals(adapterb))) history.addElement(p); } --- 254,259 ---- String regiona = p.getProperty("region"); String adaptera = p.getProperty("adapter"); ! if (regiona != null && adaptera != null && ! !(regiona.equals(regionb) && adaptera.equals(adapterb))) history.addElement(p); } Index: DrawableAnnotatedFeatureSet.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/gui/DrawableAnnotatedFeatureSet.java,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -d -r1.34 -r1.35 *** DrawableAnnotatedFeatureSet.java 25 Jan 2002 23:43:58 -0000 1.34 --- DrawableAnnotatedFeatureSet.java 16 Feb 2002 21:27:56 -0000 1.35 *************** *** 143,147 **** repair.setVisible(true); repair.setEvidenceFinder(annots.getEvidenceFinder()); ! repair._setEnds(); } else --- 143,147 ---- repair.setVisible(true); repair.setEvidenceFinder(annots.getEvidenceFinder()); ! repair.adjustEdges(); } else Index: DrawableFeatureSet.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/gui/DrawableFeatureSet.java,v retrieving revision 1.81 retrieving revision 1.82 diff -C2 -d -r1.81 -r1.82 *** DrawableFeatureSet.java 26 Nov 2001 21:27:11 -0000 1.81 --- DrawableFeatureSet.java 16 Feb 2002 21:27:56 -0000 1.82 *************** *** 440,456 **** // the purpose of the repairs is to keep the drawables in sync // with the additions and deletes coming from the annotation editor ! public DrawableFeatureSet repairFeatureSet(FeatureChangeEvent ace) { DrawableFeatureSet parent ! = (DrawableFeatureSet) findFeature(ace.getFirstFeature()); DrawableSeqFeature dsf ! = (DrawableSeqFeature) findFeature(ace.getSecondFeature()); ! ! switch (ace.getType()) { ! case AnnotationChangeEvent.ADD: ! if (ace.getSubType() != AnnotationChangeEvent.EVIDENCE) { // there must always be a parent to add to and delete from ! if (parentOkay (parent, ace)) { // if this is new then this may not be found --- 440,456 ---- // the purpose of the repairs is to keep the drawables in sync // with the additions and deletes coming from the annotation editor ! public DrawableFeatureSet repairFeatureSet(FeatureChangeEvent ce) { DrawableFeatureSet parent ! = (DrawableFeatureSet) findFeature(ce.getFirstFeature()); DrawableSeqFeature dsf ! = (DrawableSeqFeature) findFeature(ce.getSecondFeature()); ! ! switch (ce.getType()) { ! case FeatureChangeEvent.ADD: ! if (ce.getSubType() != AnnotationChangeEvent.EVIDENCE) { // there must always be a parent to add to and delete from ! if (parentOkay (parent, ce)) { // if this is new then this may not be found *************** *** 460,472 **** parent.deleteFeature(dsf); } ! parent.addFeature(ace.getSecondFeature()); } } break; ! case AnnotationChangeEvent.DELETE: ! if (ace.getSubType() != AnnotationChangeEvent.EVIDENCE) { // there must always be a a parent to add to and delete from ! if (parentOkay (parent, ace)) { // if this is new then this may not be found --- 460,472 ---- parent.deleteFeature(dsf); } ! parent.addFeature(ce.getSecondFeature()); } } break; ! case FeatureChangeEvent.DELETE: ! if (ce.getSubType() != AnnotationChangeEvent.EVIDENCE) { // there must always be a a parent to add to and delete from ! if (parentOkay (parent, ce)) { // if this is new then this may not be found *************** *** 479,483 **** { System.err.println("Could not delete " + ! ace.getSecondFeature().getName() + " from " + parent.getFeature().getName() + --- 479,483 ---- { System.err.println("Could not delete " + ! ce.getSecondFeature().getName() + " from " + parent.getFeature().getName() + *************** *** 488,501 **** break; case AnnotationChangeEvent.LIMITS: ! parent._setEnds(); break; } DrawableFeatureSet dfs ! = (DrawableFeatureSet) findFeature(ace.getChangeTop()); return dfs; } private boolean parentOkay (DrawableFeatureSet parent, ! FeatureChangeEvent ace) { if (parent == null) --- 488,501 ---- break; case AnnotationChangeEvent.LIMITS: ! parent.adjustEdges(); break; } DrawableFeatureSet dfs ! = (DrawableFeatureSet) findFeature(ce.getChangeTop()); return dfs; } private boolean parentOkay (DrawableFeatureSet parent, ! FeatureChangeEvent ce) { if (parent == null) *************** *** 503,511 **** try { throw new Exception ("Failed to find annotation to repair on " + ! ace.getSecondFeature().getName() + " of class " + ! ace.getSecondFeature().getClass().getName() + " for event " + ! ace.getType()); } catch (Exception e) { --- 503,511 ---- try { throw new Exception ("Failed to find annotation to repair on " + ! ce.getSecondFeature().getName() + " of class " + ! ce.getSecondFeature().getClass().getName() + " for event " + ! ce.getType()); } catch (Exception e) { *************** *** 596,603 **** } - public void setRefId(String id) { - feature.setRefId(id); - } - public boolean overlaps(SeqFeatureI se) { return fset.overlaps(se); --- 596,599 ---- *************** *** 625,630 **** } ! public void _setEnds() { ! fset._setEnds(); } --- 621,626 ---- } ! public void adjustEdges() { ! fset.adjustEdges(); } Index: DrawableSeqFeature.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/gui/DrawableSeqFeature.java,v retrieving revision 1.62 retrieving revision 1.63 diff -C2 -d -r1.62 -r1.63 *** DrawableSeqFeature.java 25 Oct 2001 16:57:49 -0000 1.62 --- DrawableSeqFeature.java 16 Feb 2002 21:27:56 -0000 1.63 *************** *** 27,31 **** protected int minsize = 3; protected int yindex; ! protected SeqFeatureI refFeature; protected long charHeight = 0; protected boolean labeled = false; --- 27,34 ---- protected int minsize = 3; protected int yindex; ! // this is a temporary fix until the artificial split between ! // reverse and positive is remedied ! protected Hashtable ref_features = new Hashtable(); ! // protected SeqFeatureI refFeature; protected long charHeight = 0; protected boolean labeled = false; *************** *** 607,617 **** return feature.getName(); } ! public void setId(String id) { ! feature.setId(id); ! } ! public String getId() { return feature.getId(); ! } ! public double getScore() { return feature.getScore(); } --- 610,620 ---- return feature.getName(); } ! public String getId() { return feature.getId(); ! } ! public void setId(String id) { ! feature.setId(id); ! } ! public double getScore() { return feature.getScore(); } *************** *** 676,685 **** //DIFF public SeqFeatureI getRefFeature() { ! return refFeature; } //DIFF public void setRefFeature(SeqFeatureI f) { ! refFeature = f; } --- 679,699 ---- //DIFF public SeqFeatureI getRefFeature() { ! return (getRefFeature ("primary")); ! } ! ! public SeqFeatureI getRefFeature(String type) { ! return ((SeqFeatureI) ref_features.get (type)); } //DIFF public void setRefFeature(SeqFeatureI f) { ! addRefFeature ("primary", f); ! } ! ! public void addRefFeature (String type, SeqFeatureI f) { ! if (f != null) ! ref_features.put (type, f); ! else ! ref_features.remove (type); } *************** *** 706,712 **** return feature.getRefId(); } - public void setRefId(String id) { - feature.setRefId(id); - } public Color getColour(String type) { --- 720,723 ---- *************** *** 746,749 **** --- 757,768 ---- feature.setHigh(high); } + + public void reverseComplement () { + feature.reverseComplement (); + } + + public void flipFlop () { + feature.flipFlop(); + } public String getSequence() { Index: EvidencePanel.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/gui/EvidencePanel.java,v retrieving revision 1.61 retrieving revision 1.62 diff -C2 -d -r1.61 -r1.62 *** EvidencePanel.java 1 Nov 2001 17:36:27 -0000 1.61 --- EvidencePanel.java 16 Feb 2002 21:27:56 -0000 1.62 *************** *** 117,121 **** public boolean handleAnnotationChangeEvent(AnnotationChangeEvent evt) { ! if (evt.getType() == FeatureChangeEvent.ANNOTATE) { showChangedFeature (evt.getChangeTop()); --- 117,121 ---- public boolean handleAnnotationChangeEvent(AnnotationChangeEvent evt) { ! if (evt.getType() == FeatureChangeEvent.REDRAW) { showChangedFeature (evt.getChangeTop()); *************** *** 125,129 **** public boolean handleResultChangeEvent(ResultChangeEvent evt) { ! if (evt.getType() == FeatureChangeEvent.ANNOTATE) { showChangedFeature (evt.getChangeTop()); --- 125,129 ---- public boolean handleResultChangeEvent(ResultChangeEvent evt) { ! if (evt.getType() == FeatureChangeEvent.REDRAW) { showChangedFeature (evt.getChangeTop()); *************** *** 133,137 **** public boolean handleFeatureChangeEvent(FeatureChangeEvent evt) { ! if (evt.getType() == FeatureChangeEvent.ANNOTATE) { showChangedFeature (evt.getChangeTop()); --- 133,137 ---- public boolean handleFeatureChangeEvent(FeatureChangeEvent evt) { ! if (evt.getType() == FeatureChangeEvent.REDRAW) { showChangedFeature (evt.getChangeTop()); Index: FeatureEditorDialog.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/gui/FeatureEditorDialog.java,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** FeatureEditorDialog.java 25 Jan 2002 23:43:58 -0000 1.22 --- FeatureEditorDialog.java 16 Feb 2002 21:27:56 -0000 1.23 *************** *** 424,428 **** = new AnnotationChangeEvent(this, annot, ! FeatureChangeEvent.ANNOTATE, AnnotationChangeEvent.GENE, annot, --- 424,428 ---- = new AnnotationChangeEvent(this, annot, ! FeatureChangeEvent.REDRAW, AnnotationChangeEvent.GENE, annot, *************** *** 702,706 **** if (evt.getAnnotation() == annot) { ! if (evt.getType() == FeatureChangeEvent.ANNOTATE || evt.getType() == FeatureChangeEvent.STATUS) // now we do something --- 702,706 ---- if (evt.getAnnotation() == annot) { ! if (evt.getType() == FeatureChangeEvent.REDRAW || evt.getType() == FeatureChangeEvent.STATUS) // now we do something Index: FeatureTreePanel.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/gui/FeatureTreePanel.java,v retrieving revision 1.42 retrieving revision 1.43 diff -C2 -d -r1.42 -r1.43 *** FeatureTreePanel.java 25 Oct 2001 16:57:50 -0000 1.42 --- FeatureTreePanel.java 16 Feb 2002 21:27:56 -0000 1.43 *************** *** 271,275 **** public boolean handleAnnotationChangeEvent(AnnotationChangeEvent evt) { ! if (evt.getType() == FeatureChangeEvent.ANNOTATE) { doInit = true; --- 271,275 ---- public boolean handleAnnotationChangeEvent(AnnotationChangeEvent evt) { ! if (evt.getType() == FeatureChangeEvent.REDRAW) { doInit = true; Index: ResultView.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/gui/ResultView.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** ResultView.java 4 Jan 2002 19:47:01 -0000 1.10 --- ResultView.java 16 Feb 2002 21:27:56 -0000 1.11 *************** *** 98,135 **** public boolean handleResultChangeEvent(ResultChangeEvent evt) { ! if (evt.getChangeTop() != null && evt.getTypeAsString() != null) { ! System.out.println("Handling ResultChangeEvent in " + getName()); ! System.out.println(" Top of changed " + evt.getChangeTop()); ! System.out.println(" changeTop type " + evt.getChangeTop().getClass().getName()); ! System.out.println(" dfset " + dfset); ! System.out.println(" changeTop strand " + evt.getChangeTop().getStrand()); ! System.out.println(" dfset strand " + dfset.getStrand()); ! System.out.println(" view strand " + getStrand()); ! System.out.println(" action type " + evt.getTypeAsString()); ! System.out.println(" action subtype " + evt.getSubTypeAsString()); ! ! if (dfset.size() > 0 && ! (evt.getChangeTop().getStrand() == getStrand() || ! evt.getChangeTop().getStrand() == 0)) { ! ! if (evt.getType() == FeatureChangeEvent.ANNOTATE) { ! ! System.err.println("ERROR: ANNOTATE not implemented forSetting repair to add"); ! return false; ! } ! ! dfset.repairFeatureSet(evt); ! ! stacker.layoutTiers(); ! visibleFeatures = getVisibleFeatures(); ! ! } else { ! System.out.println("Ignoring feature changes in " + getName()); ! } ! } else { ! System.out.println("Ignoring INVALID (null pointer for Annotation) feature change in " + getName()); ! } ! return true; } } --- 98,131 ---- public boolean handleResultChangeEvent(ResultChangeEvent evt) { ! if (evt.getSubType() == ResultChangeEvent.RESULTSET) { ! if (evt.getType() != ResultChangeEvent.REDRAW) ! { ! stacker.layoutTiers(); ! visibleFeatures = getVisibleFeatures(); ! } ! else ! { ! SeqFeatureI sf = evt.getChangeTop(); ! if (sf != null) ! { ! if (dfset.size() > 0 && ! (sf.getStrand() == getStrand() || ! sf.getStrand() == 0)) ! { ! System.out.println("Handling ResultChangeEvent in " ! + sf.getName() + ! " of type " + sf.getType()); ! dfset.repairFeatureSet(evt); ! } ! } ! } ! return true; ! } ! else ! return false; } } + + + |