File: Mauve%20Notes.txt

package info (click to toggle)
mauve-aligner 2.4.0%2B4736-6
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 2,496 kB
  • sloc: java: 28,417; xml: 301; sh: 97; makefile: 21
file content (95 lines) | stat: -rw-r--r-- 3,646 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
MauveFrame has the menu items, an AlignFrame and A DnDRearrangementPanel.

AlignFrame provides a GUI interface to the alignment tool, and so is of
no consequence at the moment.  

DnDRearrangementPanel extends RearrangmentPanel by allowing drag-and-drop
opening of alignment files.  This is especially useful for setting up the
viewing window with multiple alignments.  

RearrangementPanel is the mother of all GUI elements.

============

Initial plan of attack:

RearrangementPanel currently maintains two parallel Vectors of RulePanels and 
RRSequencePanels, as well as a bunch of arrays and some fields that constitute 
the data model for the application.  We need to add to this some number of
panels containing feature data a la FastBeadDemo.

Rather than further complicate an already overly large class, I will convert the
RearrangementPanel into (basically) an association of a collection of child panels,
each of which will contain a ruler, sequence and optional feature display.  The 
RearrangementPanel will also maintain a reference to a separate data model.  This
data model will contain the arrays etc that the RearrangementPanel currently holds, 
plus whatever additional data is necessary for the feature display.

============

General problems
- Data model and GUI code are too intertwined
- Lots of commented-out code
- No tests, manual or otherwise
- Spotty comments

============


How sequencePanel vector is used:

DnDRearrangementPanel:
	drag
		- To determine the target for dragging
	* drop
		- To determine the sequencePanel target for dropping
		- To determine the rulerPanel target for dropping

LcbLinePanel
	- To obtain LCBs that should be connected
	
RearrangementPanel
	actionPerformed
		- to add or remove mouse listeners when the hand button is activated
	*X alignView
		- to find the viewable range(*) given a clicked-on sequence 
		- to adjust the viewable range for all the other sequences
		- to adjust the viewable range for all the other rulers
	highlightRegions
		- to iterate through sequences, clearing highlighting and then redrawing.  In some indirect way, this causes the highlight lines to move around under the mouse.
	*X initMatchDisplay
		- Add a ruler for each sequence in the model
		- Add a sequencePanel for each sequence in the model.
	keyPressed
		- to iterate through sequences, toggling different pieces of the display of each sequence (boxes, lines, etc)
	* layoutDisplay
		- to iterate through sequences, forcing their being relaid-out
		- includes relaying-out ruler
	print
		- to iterate through sequences, doing some stuff for printing (seems to construct a different layout for printing, I think).
	* reorderSequences
		- to put sequencePanels in a different order, based on an array of integers
		- to put rulerPanels in a different order, based on an array of integers
		- sequencePanels vector is replaced entirely in this method
		- rulerPanels vector is replaced entirely in this method
	*X repaintSequencePanels
		- to iterate through and repaint every sequence and ruler panel
	stateChanged
		- to iterate through sequences and either show blocky or non-block stuff
	* zoomAndMove
		- to iterate through sequences and change their viewable ranges, redraw.  
		- to iterate through rulers and change their viewable ranges, redraw.

==============================


          Matches      XMFA      LCBs       Sim

MUMS         X

MAUVE        X                     X

XMFA         *          X          X         X
		
		* XMFA matches come from the XMFA file, used differently.