javax.swing.AbstractAction openAction
javax.swing.AbstractAction saveAsAction
DataFormat
javax.swing.AbstractAction propertiesAction
SequenceCanvasProperties
javax.swing.AbstractAction cutAct
The "Cut" menu item action. This action will copy any content currently selected in the canvas to the clipboard, and then delete that selected content. This behaviour is identical to the "Cut" action in most word processor programs (e.g. Office, OpenOffice, etc.)
Please note that this method will not work if the read only property is set. This method will check the readonly property by checking the editable field. If the editable field is set to false this method will not paste or execute any further code.
javax.swing.AbstractAction copyAct
SequenceCanvas.copyClipboard()
javax.swing.AbstractAction pasteAct
The "Paste" menu item action. This action will delete any currently selected content, and then write the content in the clipboard (if any) to the canvas. This behaviour is almost identical to the "Paste" action in most word processor programs (e.g. Office, OpenOffice, etc.) with only the odd minor differences due to this being a sequence canvas.
Please note that this method will not work if the read only property is set. This method will check the readonly property by checking the editable field. If the editable field is set to false this method will not paste or execute any further code.
SequenceCanvas.pasteClipboard()
javax.swing.AbstractAction changeCaseAction
The "Change case" menu item action. This action will call the change case method of either the sequence list or text area (depending on which object - the list of text area - was used last). In turn, the case of any selected string will be changed, according to the rules outlined in either changeCase method (these rules should be the same for both!)
Please see either the sequence list or sequence text area's changeCase function for further details.
javax.swing.AbstractAction splitAction
javax.swing.AbstractAction joinAction
java.awt.Font currentFont
javax.swing.Box mainDisplay
Dataset datamodel
SequenceList nameList
SequenceCanvasObject currentPane
javax.swing.JScrollPane dataPane
javax.swing.JScrollPane altDataPane
javax.swing.Box canvasPane
SequenceCanvas.dataPane
,
SequenceCanvas.splitPane
javax.swing.JSplitPane splitPane
SequenceCanvas canvasSelf
javax.swing.JLabel status
javax.swing.JLabel insertStatus
javax.swing.JMenuItem selectByNameMenuItem
SequenceList.selectByNameAction
javax.swing.JMenuItem splitMenuItem
SequenceCanvas.splitAction
javax.swing.JMenuItem joinMenuItem
SequenceCanvas.joinAction
javax.swing.JMenuItem groupMI
SequenceList.groupAction
javax.swing.JMenuItem ungroupMI
SequenceList.ungroupAction
javax.swing.JMenuItem getInfoMI
SequenceList.getInfoAction
boolean editable
java.util.List<E> colourMasks
ColourMask DEFAULT_MASK
SequenceCanvas.getDefaultMask()
SequenceCanvas canvas
javax.swing.SpinnerNumberModel fSizeM
javax.swing.JCheckBox boldCB
javax.swing.JButton closeB
long lastClickTime
int lastClickEntry
SequenceList list
Dataset datamodel
SequenceCanvas canvas
javax.swing.AbstractAction selectGroupAction
javax.swing.AbstractAction getInfoAction
javax.swing.AbstractAction deleteAction
javax.swing.AbstractAction selectAllAction
javax.swing.AbstractAction selectByNameAction
javax.swing.AbstractAction groupAction
javax.swing.AbstractAction ungroupAction
javax.swing.JPopupMenu popup
java.awt.event.MouseAdapter popupMouseAdapter
int rowHeight
int colWidth
SequenceCanvas canvas
boolean insertMode
boolean selectionMove
Used to track whether the shift key is pressed. This will determine whether the selection is resized or cancelled when the user moved the cursor using the keyboard (up/down/left/right), or when the user clicks somewhere within the text area.
To sum up: (1) if this variable is set to false, then the SHIFT key is NOT currently pressed, therefore moving the cursor in the text area should CANCEL the current selection (if any text is selected); (2) if this variable is set to true then the SHIFT key IS currently pressed, therefore moving the cursor in the text area should SHRINK OR STRETCH the current selection (or create a new selection if no text is selected).
SequenceTextArea.selectionMouse
boolean selectionMouse
SequenceTextArea.selectionMove
int col
int row
int sx
The column number/X-coordinate of the selection start position.
When moving the cursor without selecting text, the sx and sy variables follow (contain the same values as) the current text caret ('row' and 'col' variables). However, when a text selection is begun (by holding on the shift key or dragging the mouse), the sx and sy variables are fixed the position where the text selection began (they no longer follow the text caret). Therefore, the selection area can be calculated as the difference between the text caret position ('row' and 'col') and the selection position ('sx' and 'sy').
For speed and to make code maintenance easier, the selection start position is ONLY modified by the changePosition function. Also for speed, with the exception of isSelectionEmpty(), every other function, which handles selections, uses minsx and minsy instead of sx directly. This is because virtually every selection algorithm needs to perform calculations based on the difference between the two points in a selection (the start and end points); using minsx and maxsx simplifies these calculations, and avoids negative numbers.
NOTE: if 'sx' is is the same as the variable 'col', then there is currently no text selected.
int sy
The row number/Y-coordinate of the selection start position.
When moving the cursor without selecting text, the sx and sy variables follow (contain the same values as) the current text caret ('row' and 'col' variables). However, when a text selection is begun (by holding on the shift key or dragging the mouse), the sx and sy variables are fixed the position where the text selection began (they no longer follow the text caret). Therefore, the selection area can be calculated as the difference between the text caret position ('row' and 'col') and the selection position ('sx' and 'sy').
For speed and to make code maintenance easier, the selection start position is ONLY modified by the changePosition function. Also for speed, every function, which handles selections, uses minsy and minsy instead of sy directly. This is because virtually every selection algorithm needs to perform calculations based on the difference between the two points in a selection (the start and end points); using minsy and maxsy simplifies these calculations, and avoids negative numbers.
NOTE: if 'sy' is is the same as the variable 'col', then there is MAY STILL be text selected. However, the text selected would be limited within ONE row.
int minsx
The mathematical minimum of the X-coordinates for the current text position (caret) and the selection start position. Although this value could be calculated on the fly by using the Math.min function, this value is instead cached to enable faster drawing.
This variable is also used in other bodies of code (such as text deletion and insertion code) because using this variable, instead using of sx/sy directly, can also speed up these other functions.
NOTE: this value should only be modified by the changePosition function!
int minsy
The mathematical minimum of the Y-coordinates for the current text position (caret) and the selection start position. Although this value could be calculated on the fly by using the Math.min function, this value is instead cached to enable faster drawing.
This variable is also used in other bodies of code (such as text deletion and insertion code) because using this variable, instead using of sx/sy directly, can also speed up these other functions.
NOTE: this value should only be modified by the changePosition function!
int maxsx
The mathematical maximum of the X-coordinates for the current text position (caret) and the selection start position. Although this value could be calculated on the fly by using the Math.min function, this value is instead cached to enable faster drawing.
This variable is also used in other bodies of code (such as text deletion and insertion code) because using this variable, instead using of sx/sy directly, can also speed up these other functions.
NOTE: this value should only be modified by the changePosition function!
int maxsy
The mathematical maximum of the X-coordinates for the current text position (caret) and the selection start position. Although this value could be calculated on the fly by using the Math.min function, this value is instead cached to enable faster drawing.
This variable is also used in other bodies of code (such as text deletion and insertion code) because using this variable, instead using of sx/sy directly, can also speed up these other functions.
NOTE: this value should only be modified by the changePosition function!
javax.swing.JPopupMenu popup
SequenceCanvas
Dataset datamodel
int longestline
SequenceTextArea.refreshSize()
,
SequenceTextArea.updateLength(int, int)
,
Component.getSize()
,
Component.setSize(java.awt.Dimension)
,
JComponent.getPreferredSize()
,
JComponent.setPreferredSize(java.awt.Dimension)
SequenceTextArea blTextAreaSelf
SequenceCanvas canvas
java.util.List<E> lines
Each y is stored as a linked list of sequence wrappers. Each sequence wrapper is characterized by a sequence and an index offset. The index offset is used to determine the offset of the sequence within the document.
Seq.Type type
java.lang.String name
java.lang.String description
Seq.Topology topology
Seq.Direction direction
Seq.Strandedness strandedness
java.lang.StringBuffer sequence
java.lang.CharSequence original
This variable stores the original header of the sequence if the sequence was loaded from a GenBANK file. This is useful for preserving header metadata, such as annotation features, CDS, etc. This variable is left null for sequences which are not read from GenBANK files.
In addition, if a sequence is modified, its GenBANK original header (stored in this variable) is lost (set this variable to null) because the header will no longer be applicable. For example, if part of a sequence is deleted or changed, then the features in the sequence will no longer be valid, and so we delete the original header from memory.
In summary:
GenBANK original headers are stored from GenBANK files read into
BioLegato. These headers are used for ensuring that CDS, annotation, and
other header data (when present) is not lost from unaltered GenBANK files
read into BioLegato.
int[] sequences
javax.swing.JComboBox<E> maskbox
javax.swing.JTextField namebox
javax.swing.JCheckBox pAlignCB
javax.swing.JCheckBox pAmbigCB
javax.swing.JCheckBox pUnambCB
javax.swing.JComboBox<E> typebox
javax.swing.JComboBox<E> directionbox
javax.swing.JComboBox<E> topologybox
javax.swing.JComboBox<E> strandbox
Dataset datamodel
Copyright © 2008-2022 University of Manitoba.