break;
case KeyEvent.VK_DOWN:
- if (viewport.cursorMode)
- {
- alignPanel.seqPanel.moveCursor(0, 1);
- }
- else
- {
+ if (evt.isAltDown() || !viewport.cursorMode)
moveSelectedSequences(false);
- }
+ if(viewport.cursorMode)
+ alignPanel.seqPanel.moveCursor(0, 1);
break;
case KeyEvent.VK_UP:
- if (viewport.cursorMode)
- {
- alignPanel.seqPanel.moveCursor(0, -1);
- }
- else
- {
+ if (evt.isAltDown() || !viewport.cursorMode)
moveSelectedSequences(true);
- }
+ if(viewport.cursorMode)
+ alignPanel.seqPanel.moveCursor(0, -1);
+
break;
case KeyEvent.VK_LEFT:
- if (viewport.cursorMode)
- {
+ if (evt.isAltDown() || !viewport.cursorMode)
+ slideSequences(false,
+ alignPanel.seqPanel.getKeyboardNo1());
+ else
alignPanel.seqPanel.moveCursor( -1, 0);
- }
+
+
break;
case KeyEvent.VK_RIGHT:
- if (viewport.cursorMode)
- {
- alignPanel.seqPanel.moveCursor(1, 0);
- }
+ if (evt.isAltDown() || !viewport.cursorMode)
+ slideSequences(true,
+ alignPanel.seqPanel.getKeyboardNo1());
+ else
+ alignPanel.seqPanel.moveCursor( 1, 0);
break;
case KeyEvent.VK_SPACE:
break;
}
}
+
+ public void keyReleased(KeyEvent evt)
+ {
+ switch(evt.getKeyCode())
+ {
+ case KeyEvent.VK_LEFT:
+ if (evt.isAltDown() || !viewport.cursorMode)
+ viewport.firePropertyChange("alignment", null,
+ viewport.getAlignment().getSequences());
+ break;
+
+ case KeyEvent.VK_RIGHT:
+ if (evt.isAltDown() || !viewport.cursorMode)
+ viewport.firePropertyChange("alignment", null,
+ viewport.getAlignment().getSequences());
+ break;
+ }
+ }
});
}
}
}
- alignPanel.repaint();
+ alignPanel.paintAlignment(true);
}
+
+ synchronized void slideSequences(boolean right, int size)
+ {
+ if(viewport.hasHiddenColumns)
+ {
+ JOptionPane.showInternalMessageDialog(Desktop.desktop,
+ "Slide Sequences not available with hidden columns",
+ "Slide Sequence not Available",
+ JOptionPane.WARNING_MESSAGE);
+ return;
+ }
+ Vector sg = new Vector();
+ if(viewport.cursorMode)
+ {
+ sg.addElement(viewport.alignment.getSequenceAt(
+ alignPanel.seqPanel.seqCanvas.cursorY));
+ }
+ else if(viewport.getSelectionGroup()!=null
+ && viewport.getSelectionGroup().getSize()!=viewport.alignment.getHeight())
+ {
+ sg = viewport.getSelectionGroup().getSequences(
+ viewport.hiddenRepSequences);
+ }
+
+ if(sg.size()<1)
+ {
+ return;
+ }
+
+ Vector invertGroup = new Vector();
+
+ for (int i = 0; i < viewport.alignment.getHeight(); i++)
+ {
+ if(!sg.contains(viewport.alignment.getSequenceAt(i)))
+ invertGroup.add(viewport.alignment.getSequenceAt(i));
+ }
+
+ SequenceI[] seqs1 = new SequenceI[sg.size()];
+ for (int i = 0; i < sg.size(); i++)
+ seqs1[i] = (SequenceI) sg.elementAt(i);
+
+ SequenceI[] seqs2 = new SequenceI[invertGroup.size()];
+ for (int i = 0; i < invertGroup.size(); i++)
+ seqs2[i] = (SequenceI) invertGroup.elementAt(i);
+
+ SlideSequencesCommand ssc;
+ if (right)
+ ssc = new SlideSequencesCommand("Slide Sequences",
+ seqs2, seqs1, size,
+ viewport.getGapCharacter()
+ );
+ else
+ ssc = new SlideSequencesCommand("Slide Sequences",
+ seqs1, seqs2, size,
+ viewport.getGapCharacter()
+ );
+
+ int groupAdjustment = 0;
+ if (ssc.getGapsInsertedBegin() && right)
+ {
+ if (viewport.cursorMode)
+ alignPanel.seqPanel.moveCursor(size, 0);
+ else
+ groupAdjustment = size;
+ }
+ else if (!ssc.getGapsInsertedBegin() && !right)
+ {
+ if (viewport.cursorMode)
+ alignPanel.seqPanel.moveCursor( -size, 0);
+ else
+ groupAdjustment = -size;
+ }
+
+ if (groupAdjustment != 0)
+ {
+ viewport.getSelectionGroup().setStartRes(
+ viewport.getSelectionGroup().getStartRes() + groupAdjustment);
+ viewport.getSelectionGroup().setEndRes(
+ viewport.getSelectionGroup().getEndRes() + groupAdjustment);
+ }
+
+
+ boolean appendHistoryItem = false;
+ if(viewport.historyList!=null
+ && viewport.historyList.size()>0
+ && viewport.historyList.peek() instanceof SlideSequencesCommand)
+ {
+ appendHistoryItem = ssc.appendSlideCommand(
+ (SlideSequencesCommand)viewport.historyList.peek())
+ ;
+ }
+
+ if(!appendHistoryItem)
+ addHistoryItem(ssc);
+
+ repaint();
+ }
+
+
/**
* DOCUMENT ME!
*
viewport.sequenceColours = null;
viewport.setSelectionGroup(null);
PaintRefresher.Refresh(this, viewport.getSequenceSetId());
- alignPanel.repaint();
+ alignPanel.paintAlignment(true);
}
/**
sg.setEndRes(viewport.alignment.getWidth() - 1);
viewport.setSelectionGroup(sg);
- alignPanel.repaint();
+ alignPanel.paintAlignment(true);
PaintRefresher.Refresh(alignPanel, viewport.getSequenceSetId());
}
viewport.setSelectionGroup(null);
alignPanel.seqPanel.seqCanvas.highlightSearchResults(null);
alignPanel.idPanel.idCanvas.searchResults = null;
- alignPanel.repaint();
+ alignPanel.paintAlignment(true);
PaintRefresher.Refresh(alignPanel, viewport.getSequenceSetId());
}
sg.addOrRemove(viewport.getAlignment().getSequenceAt(i), false);
}
- alignPanel.repaint();
+ alignPanel.paintAlignment(true);
PaintRefresher.Refresh(alignPanel, viewport.getSequenceSetId());
}
public void invertColSel_actionPerformed(ActionEvent e)
{
viewport.invertColumnSelection();
- alignPanel.repaint();
+ alignPanel.paintAlignment(true);
}
/**
viewport.setShowJVSuffix(seqLimits.isSelected());
alignPanel.idPanel.idCanvas.setPreferredSize(alignPanel.calculateIdWidth());
- alignPanel.repaint();
+ alignPanel.paintAlignment(true);
}
public void idRightAlign_actionPerformed(ActionEvent e)
{
viewport.rightAlignIds = idRightAlign.isSelected();
- alignPanel.repaint();
+ alignPanel.paintAlignment(true);
}
/**
protected void colourTextMenuItem_actionPerformed(ActionEvent e)
{
viewport.setColourText(colourTextMenuItem.isSelected());
- alignPanel.repaint();
+ alignPanel.paintAlignment(true);
}
/**
public void hideSelSequences_actionPerformed(ActionEvent e)
{
viewport.hideAllSelectedSeqs();
- alignPanel.repaint();
+ alignPanel.paintAlignment(true);
}
public void hideSelColumns_actionPerformed(ActionEvent e)
{
viewport.hideSelectedColumns();
- alignPanel.repaint();
+ alignPanel.paintAlignment(true);
}
public void hiddenMarkers_actionPerformed(ActionEvent e)
protected void scaleAbove_actionPerformed(ActionEvent e)
{
viewport.setScaleAboveWrapped(scaleAbove.isSelected());
- alignPanel.repaint();
+ alignPanel.paintAlignment(true);
}
/**
protected void scaleLeft_actionPerformed(ActionEvent e)
{
viewport.setScaleLeftWrapped(scaleLeft.isSelected());
- alignPanel.repaint();
+ alignPanel.paintAlignment(true);
}
/**
protected void scaleRight_actionPerformed(ActionEvent e)
{
viewport.setScaleRightWrapped(scaleRight.isSelected());
- alignPanel.repaint();
+ alignPanel.paintAlignment(true);
}
/**
public void viewBoxesMenuItem_actionPerformed(ActionEvent e)
{
viewport.setShowBoxes(viewBoxesMenuItem.isSelected());
- alignPanel.repaint();
+ alignPanel.paintAlignment(true);
}
/**
public void viewTextMenuItem_actionPerformed(ActionEvent e)
{
viewport.setShowText(viewTextMenuItem.isSelected());
- alignPanel.repaint();
+ alignPanel.paintAlignment(true);
}
/**
protected void renderGapsMenuItem_actionPerformed(ActionEvent e)
{
viewport.setRenderGaps(renderGapsMenuItem.isSelected());
- alignPanel.repaint();
+ alignPanel.paintAlignment(true);
}
public FeatureSettings featureSettings;
public void showSeqFeatures_actionPerformed(ActionEvent evt)
{
viewport.setShowSequenceFeatures(showSeqFeatures.isSelected());
- alignPanel.repaint();
+ alignPanel.paintAlignment(true);
if (alignPanel.getOverviewPanel() != null)
{
alignPanel.getOverviewPanel().updateOverviewImage();
alignPanel.getOverviewPanel().updateOverviewImage();
}
- alignPanel.repaint();
+
+
+
+ alignPanel.paintAlignment(true);
}
/**
viewport.getAlignment().getSequenceAt(0));
addHistoryItem(new OrderCommand("Pairwise Sort", oldOrder,
viewport.alignment));
- alignPanel.repaint();
+ alignPanel.paintAlignment(true);
}
/**
SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray();
AlignmentSorter.sortByID(viewport.getAlignment());
addHistoryItem(new OrderCommand("ID Sort", oldOrder, viewport.alignment));
- alignPanel.repaint();
+ alignPanel.paintAlignment(true);
}
/**
AlignmentSorter.sortByGroup(viewport.getAlignment());
addHistoryItem(new OrderCommand("Group Sort", oldOrder, viewport.alignment));
- alignPanel.repaint();
+ alignPanel.paintAlignment(true);
}
/**
addHistoryItem(new OrderCommand(order.getName(), oldOrder,
viewport.alignment));
- alignPanel.repaint();
+ alignPanel.paintAlignment(true);
}
});
}
oldOrder,
viewport.alignment));
- alignPanel.repaint();
+ alignPanel.paintAlignment(true);
}
});
{
viewport.showSequenceFeatures = true;
showSeqFeatures.setSelected(true);
- alignPanel.repaint();
+ alignPanel.paintAlignment(true);
}
return featuresFile;
viewport.getAlignment(),
0, false);
alignPanel.adjustAnnotationHeight();
- alignPanel.repaint();
+ alignPanel.paintAlignment(true);
}
else
{