label.most_polymer_residues = Most Polymer Residues
label.cached_structures = Cached Structures
label.free_text_search = Free Text Search
+label.annotation_name = Annotation Name
+label.annotation_description = Annotation Description
+label.edit_annotation_name_description = Edit Annotation Name/Description
+label.alignment = alignment
+label.pca = PCA
+label.create_image_of = Create {0} image of {1}
+label.click_to_edit = Click to edit, right-click for menu
+ label.configuration = Configuration
+ label.configure_feature_tooltip = Click to configure variable colour or filters
label.most_polymer_residues = Más Residuos de Polímeros
label.cached_structures = Estructuras en Caché
label.free_text_search = Búsqueda de texto libre
+label.annotation_name = Nombre de la anotación
+label.annotation_description = Descripción de la anotación
+label.edit_annotation_name_description = Editar el nombre/descripción de la anotación
+label.alignment = alineamiento
+label.pca = ACP
+label.create_image_of = Crear imagen {0} de {1}
+label.click_to_edit = Haga clic para editar, clic en el botón derecho para ver el menú
+ label.configuration = Configuración
+ label.configure_feature_tooltip = Haga clic para configurar el color o los filtros
for (int i = 0; i < command.seqs.length; i++)
{
- newDSNeeded = false;
- newDSWasNeeded = command.oldds != null && command.oldds[i] != null;
- if (command.seqs[i].getLength() < 1)
+ boolean newDSNeeded = false;
+ boolean newDSWasNeeded = command.oldds != null
+ && command.oldds[i] != null;
+ SequenceI sequence = command.seqs[i];
+ if (sequence.getLength() < 1)
{
- // ie this sequence was deleted, we need to
- // readd it to the alignment
+ /*
+ * sequence was deleted; re-add it to the alignment
+ */
if (command.alIndex[i] < command.al.getHeight())
{
- List<SequenceI> sequences;
- synchronized (sequences = command.al.getSequences())
+ List<SequenceI> sequences = command.al.getSequences();
+ synchronized (sequences)
{
if (!(command.alIndex[i] < 0))
{
public class Edit
{
- public SequenceI[] oldds;
- private SequenceI[] oldds;
++ SequenceI[] oldds;
+
+ /**
+ * start and end of sequence prior to edit
+ */
- private Range[] oldStartEnd;
++ Range[] oldStartEnd;
- private boolean fullAlignmentHeight = false;
+ boolean fullAlignmentHeight = false;
- Hashtable<SequenceI, AlignmentAnnotation[]> deletedAnnotationRows;
- private Map<SequenceI, AlignmentAnnotation[]> deletedAnnotationRows;
++ Map<SequenceI, AlignmentAnnotation[]> deletedAnnotationRows;
+
- private Map<String, Annotation[]> deletedAnnotations;
++ Map<String, Annotation[]> deletedAnnotations;
- Hashtable<String, Annotation[]> deletedAnnotations;
+ /*
+ * features deleted by the cut (re-add on Undo)
+ * (including the original of any shortened features)
+ */
- private Map<SequenceI, List<SequenceFeature>> deletedFeatures;
++ Map<SequenceI, List<SequenceFeature>> deletedFeatures;
- Hashtable<SequenceI, List<SequenceFeature>> editedFeatures;
+ /*
+ * shortened features added by the cut (delete on Undo)
+ */
- private Map<SequenceI, List<SequenceFeature>> truncatedFeatures;
++ Map<SequenceI, List<SequenceFeature>> truncatedFeatures;
- private AlignmentI al;
+ AlignmentI al;
- Action command;
- final private Action command;
++ final Action command;
char[][] string;
SequenceI[] seqs;
- private int[] alIndex;
+ int[] alIndex;
- int position, number;
- private int position;
++ int position;
+
- private int number;
++ int number;
- private char gapChar;
+ char gapChar;
public Edit(Action cmd, SequenceI[] sqs, int pos, int count,
char gap)
public void mouseReleased(MouseEvent evt)
{
mouseDragging = false;
+ ap.getSeqPanel().stopScrolling();
+ // todo res calculation should be a method on AlignViewport
- int res = (evt.getX() / av.getCharWidth())
+ int xCords = Math.max(0, evt.getX()); // prevent negative X coordinates
+
+ int res = (xCords / av.getCharWidth())
+ av.getRanges().getStartRes();
+
if (av.hasHiddenColumns())
{
res = av.getAlignment().getHiddenColumns()