From: Mark G. <mg...@us...> - 2002-05-30 23:48:39
|
Update of /cvsroot/gmod/apollo/src/java/apollo/gui In directory usw-pr-cvs1:/tmp/cvs-serv24307 Modified Files: Tag: sanger_branch ApolloFrame.java FeatureEditorDialog.java FeatureTreePanel.java GeneEditPanel.java MouseManager.java Selection.java SelectionManager.java TablePanel.java Log Message: Selection coordination with annot info at the transcript level now working. Index: ApolloFrame.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/gui/ApolloFrame.java,v retrieving revision 1.70.2.52 retrieving revision 1.70.2.53 diff -C2 -d -r1.70.2.52 -r1.70.2.53 *** ApolloFrame.java 30 May 2002 19:03:10 -0000 1.70.2.52 --- ApolloFrame.java 30 May 2002 23:48:35 -0000 1.70.2.53 *************** *** 265,268 **** --- 265,269 ---- szap = new StrandedZoomableApolloPanel (true,true,controller); selectionManager = new SelectionManager(); + selectionManager.setController(controller); // for now szap.getApolloPanel().setSelectionManager(selectionManager); ftp.setSelectionManager(selectionManager); Index: FeatureEditorDialog.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/gui/FeatureEditorDialog.java,v retrieving revision 1.15.2.19 retrieving revision 1.15.2.20 diff -C2 -d -r1.15.2.19 -r1.15.2.20 *** FeatureEditorDialog.java 30 May 2002 01:34:58 -0000 1.15.2.19 --- FeatureEditorDialog.java 30 May 2002 23:48:35 -0000 1.15.2.20 *************** *** 120,126 **** setTitle(in.getName() + " Annotation Information"); // setListData triggers unneeded selection event ! dontFireSelection = true; genePanel.setListData (annots, in); ! dontFireSelection = false; // loadTranscript (); } --- 120,126 ---- setTitle(in.getName() + " Annotation Information"); // setListData triggers unneeded selection event ! //dontFireSelection = true; genePanel.setListData (annots, in); ! //dontFireSelection = false; // loadTranscript (); } *************** *** 129,134 **** --- 129,136 ---- public void loadTranscript () { Gene clone = (Gene) genePanel.getSelectedFeature(); + //dontFireSelection = true; transcriptPanel.setListData(clone.getFeatures(), (GenericAnnotationSetI) clone.getFeatureAt (0)); + //dontFireSelection = false; } *************** *** 490,499 **** selectionManager = sm; JList featList = transcriptPanel.getFeatureList(); featList.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { if (dontFireSelection || e.getValueIsAdjusting()) return; ! JList featList = transcriptPanel.getFeatureList(); ! SeqFeatureI feat = (SeqFeatureI)featList.getSelectedValue(); ! if (feat != null) selectionManager.select(feat); } } ); } --- 492,505 ---- selectionManager = sm; JList featList = transcriptPanel.getFeatureList(); + //JList featList = genePanel.getFeatureList(); featList.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { if (dontFireSelection || e.getValueIsAdjusting()) return; ! JList tranList = transcriptPanel.getFeatureList(); ! //JList featList = genePanel.getFeatureList(); ! Transcript clone = (Transcript)tranList.getSelectedValue(); ! Transcript real_tran = genePanel.cloneToRealTranscript(clone); ! if (real_tran != null) ! selectionManager.select(real_tran,FeatureEditorDialog.this); } } ); } *************** *** 530,533 **** --- 536,540 ---- evt.getSource() != this && evt.getFeatures().size() > 0) { + dontFireSelection = true; SeqFeatureI sf = (SeqFeatureI)evt.getFeatures().elementAt(0); Gene previous_gene = annot; *************** *** 536,540 **** --- 543,557 ---- loadGUI(annot); } + if (sf instanceof Transcript) { + Transcript clone = genePanel.realToCloneTranscript((Transcript)sf); + transcriptPanel.featureList.setSelectedValue(clone,true); + } + else if (sf instanceof Exon) { + Transcript t = (Transcript)sf.getRefFeature(); + Transcript clone = genePanel.realToCloneTranscript(t); + transcriptPanel.featureList.setSelectedValue(clone,true); + } } + dontFireSelection = false; return false; } Index: FeatureTreePanel.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/gui/FeatureTreePanel.java,v retrieving revision 1.39.2.9 retrieving revision 1.39.2.10 diff -C2 -d -r1.39.2.9 -r1.39.2.10 *** FeatureTreePanel.java 29 May 2002 01:48:16 -0000 1.39.2.9 --- FeatureTreePanel.java 30 May 2002 23:48:35 -0000 1.39.2.10 *************** *** 369,373 **** } //controller.handleFeatureSelectionEvent(new FeatureSelectionEvent(this,sf)); ! selectionManager.select(sf); } --- 369,373 ---- } //controller.handleFeatureSelectionEvent(new FeatureSelectionEvent(this,sf)); ! selectionManager.select(sf,this); } Index: GeneEditPanel.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/gui/Attic/GeneEditPanel.java,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** GeneEditPanel.java 6 May 2002 14:43:46 -0000 1.1.2.1 --- GeneEditPanel.java 30 May 2002 23:48:35 -0000 1.1.2.2 *************** *** 11,14 **** --- 11,15 ---- import java.util.Hashtable; import java.util.Enumeration; + import com.sun.java.util.collections.HashMap; import java.io.IOException; *************** *** 30,33 **** --- 31,38 ---- public class GeneEditPanel extends FeatureEditPanel { + /** Table size should perhaps be higher than 32 which is just one row, + at the moment there is only one row of data */ + private static final Dimension tableSize = new Dimension(400,32); + ReadWriteField featureTypeList = new ReadWriteField(true); JTextArea bigCommentField = new JTextArea(10,3); *************** *** 41,47 **** private DbxRefTableModel model; // dbxref table model ! /** Table size should perhaps be higher than 32 which is just one row, ! at the moment there is only one row of data */ ! private static final Dimension tableSize = new Dimension(400,32); public GeneEditPanel(FeatureEditorDialog frame, --- 46,54 ---- private DbxRefTableModel model; // dbxref table model ! ! /** Map cloned transcripts back to their real transcript which is needed for ! * selection event */ ! private HashMap cloneToRealTranscriptHash = new HashMap(); ! private HashMap realToCloneTranscriptHash = new HashMap(); public GeneEditPanel(FeatureEditorDialog frame, *************** *** 371,374 **** --- 378,384 ---- out.setIsProblematic(in.isProblematic()); out.setType(in.getType()); + // Start and end needed for equality for sending out clone in selection + out.setStart(in.getStart()); + out.setEnd(in.getEnd()); for(int i=0; i < in.getComments().size(); i++) *************** *** 385,390 **** --- 395,410 ---- out.addProperty (type, prop); } + cloneToRealTranscriptHash.put(out,in); + realToCloneTranscriptHash.put(in,out); return out; } + + /** Returns the real model for the cloned transcript */ + Transcript cloneToRealTranscript(Transcript clone) { + return (Transcript)cloneToRealTranscriptHash.get(clone); + } + Transcript realToCloneTranscript(Transcript real) { + return (Transcript)realToCloneTranscriptHash.get(real); + } /** Index: MouseManager.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/gui/Attic/MouseManager.java,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -C2 -d -r1.1.2.2 -r1.1.2.3 *** MouseManager.java 28 May 2002 02:38:06 -0000 1.1.2.2 --- MouseManager.java 30 May 2002 23:48:35 -0000 1.1.2.3 *************** *** 46,50 **** //selectionManager.select(newPick,exclusiveSelection,selectParents); ! selectionManager.select(clickedFeatures,exclusiveSelection,selectParents); } --- 46,51 ---- //selectionManager.select(newPick,exclusiveSelection,selectParents); ! selectionManager.select(clickedFeatures,exclusiveSelection,selectParents, ! apolloPanel); } Index: Selection.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/gui/Selection.java,v retrieving revision 1.16.2.6 retrieving revision 1.16.2.7 diff -C2 -d -r1.16.2.6 -r1.16.2.7 *** Selection.java 29 May 2002 23:19:15 -0000 1.16.2.6 --- Selection.java 30 May 2002 23:48:35 -0000 1.16.2.7 *************** *** 116,121 **** /** This method takes opposite approach from above method. Selection only has model. * views have view features. Views get queried to see which model items their ! * view features contains. This means we dont have to keep view features in selection. ! * nor view sources. just model. */ private Vector getSelected(ViewI vw) { --- 116,121 ---- /** This method takes opposite approach from above method. Selection only has model. * views have view features. Views get queried to see which model items their ! * view features contains. This means we dont have to keep view features in ! * selection, nor view sources, just model. */ private Vector getSelected(ViewI vw) { Index: SelectionManager.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/gui/Attic/SelectionManager.java,v retrieving revision 1.1.2.4 retrieving revision 1.1.2.5 diff -C2 -d -r1.1.2.4 -r1.1.2.5 *** SelectionManager.java 29 May 2002 23:19:15 -0000 1.1.2.4 --- SelectionManager.java 30 May 2002 23:48:35 -0000 1.1.2.5 *************** *** 3,6 **** --- 3,7 ---- import apollo.datamodel.FeatureList; import apollo.datamodel.SeqFeatureI; + import apollo.gui.event.FeatureSelectionEvent; /** *************** *** 21,24 **** --- 22,26 ---- private ApolloPanel apolloPanel; + private Controller controller; // for now SelectionManager() {} *************** *** 29,33 **** /** Process selection of Selection */ //void select(Selection sel,boolean exclusiveSelection,boolean selectParents) { ! void select(FeatureList feats,boolean exclusiveSelection,boolean selectParents) { if (exclusiveSelection) clearSelections(); //if (selectParents) apolloPanel.getPickViewFocus().selectParents(sel); --- 31,36 ---- /** Process selection of Selection */ //void select(Selection sel,boolean exclusiveSelection,boolean selectParents) { ! void select(FeatureList feats,boolean exclusiveSelection,boolean selectParents, ! Object source) { if (exclusiveSelection) clearSelections(); //if (selectParents) apolloPanel.getPickViewFocus().selectParents(sel); *************** *** 40,52 **** // eventually wont be necasary // replace with selectionListener.select(selectionEvent) ! apolloPanel.fireFeatureSelectionEvent(newPick); //apolloPanel.highlightEdges(sel,true); //apolloPanel.repaint(); } ! void select(SeqFeatureI feat) { FeatureList fl = new FeatureList(); fl.addFeature(feat); ! select(fl,true,false); } --- 43,56 ---- // eventually wont be necasary // replace with selectionListener.select(selectionEvent) ! //apolloPanel.fireFeatureSelectionEvent(newPick); ! fireFeatureSelectionEvent(newPick,source); //apolloPanel.highlightEdges(sel,true); //apolloPanel.repaint(); } ! void select(SeqFeatureI feat,Object source) { FeatureList fl = new FeatureList(); fl.addFeature(feat); ! select(fl,true,false,source); } *************** *** 62,65 **** --- 66,77 ---- siteViews[i].clearSelections(); } + } + + // for now - eventually wont need - incremental change + void setController(Controller c) { controller = c; } + + private void fireFeatureSelectionEvent(Selection sel,Object source) { + FeatureSelectionEvent e = new FeatureSelectionEvent(source,sel); + controller.handleFeatureSelectionEvent(e); } } Index: TablePanel.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/gui/TablePanel.java,v retrieving revision 1.4.2.7 retrieving revision 1.4.2.8 diff -C2 -d -r1.4.2.7 -r1.4.2.8 *** TablePanel.java 29 May 2002 23:19:15 -0000 1.4.2.7 --- TablePanel.java 30 May 2002 23:48:35 -0000 1.4.2.8 *************** *** 155,159 **** // = new FeatureSelectionEvent(this, selected); //controller.handleFeatureSelectionEvent(evt); ! selectionManager.select(feature); setToFeature (feature); } --- 155,159 ---- // = new FeatureSelectionEvent(this, selected); //controller.handleFeatureSelectionEvent(evt); ! selectionManager.select(feature,this); setToFeature (feature); } |