import java.awt.event.*;
import jalview.analysis.*;
+import jalview.bin.JalviewLite;
import jalview.commands.*;
import jalview.datamodel.*;
import jalview.io.*;
{
boolean toggleSeqs = !evt.isControlDown();
boolean toggleCols = !evt.isShiftDown();
- boolean hide = false;
- SequenceGroup sg = viewport.getSelectionGroup();
-
- if (toggleSeqs)
- {
- if (sg != null && sg.getSize() != viewport.alignment.getHeight())
- {
- hide = true;
- viewport.hideAllSelectedSeqs();
- }
- else if (!(toggleCols && viewport.colSel.getSelected().size() > 0))
- {
- viewport.showAllHiddenSeqs();
- }
- }
-
- if (toggleCols)
- {
- if (viewport.colSel.getSelected().size() > 0)
- {
- viewport.hideSelectedColumns();
- if (!toggleSeqs)
- {
- viewport.selectionGroup = sg;
- }
- }
- else if (!hide)
- {
- viewport.showAllHiddenColumns();
- }
- }
+ toggleHiddenRegions(toggleSeqs, toggleCols);
break;
}
{
if (evt.isAltDown())
{
- viewport.invertColumnSelection();
+ invertColSel_actionPerformed();
}
else
{
- this.invertSequenceMenuItem_actionPerformed();
+ invertSequenceMenuItem_actionPerformed();
}
}
break;
}
alignPanel.paintAlignment(true);
}
+ /**
+ * called by key handler and the hide all/show all menu items
+ * @param toggleSeqs
+ * @param toggleCols
+ */
+ private void toggleHiddenRegions(boolean toggleSeqs,
+ boolean toggleCols)
+ {
+ boolean hide = false;
+ SequenceGroup sg = viewport.getSelectionGroup();
+ if (!toggleSeqs && !toggleCols)
+ {
+ // Hide everything by the current selection - this is a hack - we do the
+ // invert and then hide
+ // first check that there will be visible columns after the invert.
+ if ((viewport.colSel != null
+ && viewport.colSel.getSelected() != null && viewport.colSel
+ .getSelected().size() > 0)
+ || (sg != null && sg.getSize() > 0 && sg.getStartRes() <= sg
+ .getEndRes()))
+ {
+ // now invert the sequence set, if required - empty selection implies
+ // that no hiding is required.
+ if (sg != null)
+ {
+ invertSequenceMenuItem_actionPerformed();
+ sg = viewport.getSelectionGroup();
+ toggleSeqs = true;
+
+ }
+ viewport.expandColSelection(sg, true);
+ // finally invert the column selection and get the new sequence
+ // selection and indicate it should be hidden.
+ invertColSel_actionPerformed();
+ toggleCols = true;
+ }
+ }
+ if (toggleSeqs)
+ {
+ if (sg != null && sg.getSize() != viewport.alignment.getHeight())
+ {
+ hide = true;
+ viewport.hideAllSelectedSeqs();
+ }
+ else if (!(toggleCols && viewport.colSel.getSelected().size() > 0))
+ {
+ viewport.showAllHiddenSeqs();
+ }
+ }
+
+ if (toggleCols)
+ {
+ if (viewport.colSel.getSelected().size() > 0)
+ {
+ viewport.hideSelectedColumns();
+ if (!toggleSeqs)
+ {
+ viewport.selectionGroup = sg;
+ }
+ }
+ else if (!hide)
+ {
+ viewport.showAllHiddenColumns();
+ }
+ }
+ }
public void keyReleased(KeyEvent evt)
{
}
{
delete_actionPerformed();
}
+ else if (source == grpsFromSelection)
+ {
+ makeGrpsFromSelection_actionPerformed();
+ }
else if (source == deleteGroups)
{
deleteGroups_actionPerformed();
else if (source == showSeqs)
{
viewport.showAllHiddenSeqs();
+ alignPanel.paintAlignment(true);
}
else if (source == hideColumns)
{
&& viewport.getSelectionGroup() != null)
{
viewport.hideAllSelectedSeqs();
+ alignPanel.paintAlignment(true);
+ }
+ else if (source == hideAllButSelection) {
+ toggleHiddenRegions(false,false);
+ alignPanel.paintAlignment(true);
+ }
+ else if (source == hideAllSelection) {
+ SequenceGroup sg = viewport.getSelectionGroup();
+ viewport.expandColSelection(sg, false);
+ viewport.hideAllSelectedSeqs();
+ viewport.hideSelectedColumns();
+ alignPanel.paintAlignment(true);
+ }
+ else if (source == showAllHidden) {
+ viewport.showAllHiddenColumns();
+ viewport.showAllHiddenSeqs();
+ alignPanel.paintAlignment(true);
}
else if (source == featureSettings)
{
this.setVisible(false);
}
}
-
+ protected void makeGrpsFromSelection_actionPerformed()
+ {
+ if (viewport.getSelectionGroup() != null)
+ {
+ SequenceGroup[] gps = jalview.analysis.Grouping.makeGroupsFrom(
+ viewport.getSequenceSelection(), viewport.getAlignmentView(
+ true).getSequenceStrings(viewport.getGapCharacter()),
+ viewport.alignment.getGroups());
+ viewport.alignment.deleteAllGroups();
+ viewport.sequenceColours = null;
+ viewport.setSelectionGroup(null);
+ // set view properties for each group
+ for (int g = 0; g < gps.length; g++)
+ {
+ // gps[g].setShowunconserved(viewport.getShowUnconserved());
+ gps[g].setIncludeAllConsSymbols(viewport.isIncludeAllConsensusSymbols());
+ viewport.alignment.addGroup(gps[g]);
+ Color col = new Color((int) (Math.random() * 255), (int) (Math
+ .random() * 255), (int) (Math.random() * 255));
+ col = col.brighter();
+ for (Enumeration sq = gps[g].getSequences(null).elements(); sq
+ .hasMoreElements(); viewport.setSequenceColour(
+ (SequenceI) sq.nextElement(), col))
+ ;
+ }
+ PaintRefresher.Refresh(this, viewport.getSequenceSetId());
+ // alignPanel.updateAnnotation();
+ alignPanel.paintAlignment(true);
+ }
+ }
protected void deleteGroups_actionPerformed()
{
viewport.alignment.deleteAllGroups();
PaintRefresher.Refresh(alignPanel, viewport.getSequenceSetId());
}
+ public void invertColSel_actionPerformed()
+ {
+ viewport.invertColumnSelection();
+ alignPanel.paintAlignment(true);
+ PaintRefresher.Refresh(alignPanel, viewport.getSequenceSetId());
+ }
void trimAlignment(boolean trimLeft)
{
class AboutPanel extends Canvas
{
String version;
-
- public AboutPanel(String version)
+ String builddate;
+ public AboutPanel(String version, String builddate)
{
this.version = version;
+ this.builddate = builddate;
}
public void paint(Graphics g)
// lite and application
g.setFont(new Font("Helvetica", Font.BOLD, 14));
g.drawString("JalviewLite - Release " + version, x, y += fh);
+ g.setFont(new Font("Helvetica", Font.BOLD, 12));
+ g.drawString("Build date: "+builddate, x, y += fh);
g.setFont(new Font("Helvetica", Font.PLAIN, 12));
g
.drawString(
}
}
- String version = "test";
- java.net.URL url = getClass().getResource("/.build_properties");
- if (url != null)
- {
- try
- {
- BufferedReader reader = new BufferedReader(new InputStreamReader(
- url.openStream()));
- String line;
- while ((line = reader.readLine()) != null)
- {
- if (line.indexOf("VERSION") > -1)
- {
- version = line.substring(line.indexOf("=") + 1);
- }
- }
- } catch (Exception ex)
- {
- ex.printStackTrace();
- }
- }
-
Frame frame = new Frame();
- frame.add(new AboutPanel(version));
+ frame.add(new AboutPanel(JalviewLite.getVersion(), JalviewLite.getBuildDate()));
jalview.bin.JalviewLite.addFrame(frame, "Jalview", 580, 220);
}
MenuItem deleteGroups = new MenuItem();
+ MenuItem grpsFromSelection= new MenuItem();
+
MenuItem delete = new MenuItem();
MenuItem copy = new MenuItem();
nucleotideColour.addActionListener(this);
deleteGroups.setLabel("Undefine Groups");
deleteGroups.addActionListener(this);
+ grpsFromSelection.setLabel("Make Groups for selection");
+ grpsFromSelection.addActionListener(this);
copy.setLabel("Copy");
copy.addActionListener(this);
cut.setLabel("Cut");
menu2.setLabel("Hide");
hideColumns.setLabel("Selected Columns");
hideSequences.setLabel("Selected Sequences");
+ hideAllButSelection.setLabel("All but Selected Region (Shift+Ctrl+H)");
+ hideAllSelection.setLabel("Selected Region");
+ showAllHidden.setLabel("All Sequences and Columns");
invertColSel.addActionListener(this);
showColumns.addActionListener(this);
showSeqs.addActionListener(this);
hideColumns.addActionListener(this);
hideSequences.addActionListener(this);
+ hideAllButSelection.addActionListener(this);
+ hideAllSelection.addActionListener(this);
+ showAllHidden.addActionListener(this);
formatMenu.setLabel("Format");
selectMenu.setLabel("Select");
newView.setLabel("New View");
helpMenu.add(about);
menu1.add(showColumns);
menu1.add(showSeqs);
+ menu1.add(showAllHidden);
menu2.add(hideColumns);
menu2.add(hideSequences);
+ menu2.add(hideAllSelection);
+ menu2.add(hideAllButSelection);
formatMenu.add(font);
formatMenu.add(seqLimits);
formatMenu.add(wrapMenuItem);
selectMenu.add(deselectAllSequenceMenuItem);
selectMenu.add(invertSequenceMenuItem);
selectMenu.add(invertColSel);
+ selectMenu.add(grpsFromSelection);
selectMenu.add(deleteGroups);
+
}
MenuItem featureSettings = new MenuItem();
MenuItem hideSequences = new MenuItem();
+ MenuItem hideAllButSelection = new MenuItem();
+ MenuItem hideAllSelection = new MenuItem();
+ MenuItem showAllHidden = new MenuItem();
+
Menu formatMenu = new Menu();
Menu selectMenu = new Menu();