/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.5)
- * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8)
+ * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle
*
* This file is part of Jalview.
*
* Jalview is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
- *
+ *
* Jalview is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR
import java.util.*;
-import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
*/
public Finder()
{
+ this(null, null);
+ focusfixed = false;
+ }
+
+ public Finder(AlignViewport viewport, AlignmentPanel alignPanel)
+ {
+ av = viewport;
+ ap = alignPanel;
+ focusfixed = true;
frame = new JInternalFrame();
frame.setContentPane(this);
frame.setLayer(JLayeredPane.PALETTE_LAYER);
}
/**
- * gets the topmost alignment window and sets av and ap accordingly
+ * do we only search a given alignment view ?
+ */
+ private boolean focusfixed;
+
+ /**
+ * if !focusfixed and not in a desktop environment, checks that av and ap are
+ * valid. Otherwise, gets the topmost alignment window and sets av and ap
+ * accordingly
*
* @return false if no alignment window was found
*/
boolean getFocusedViewport()
{
+ if (focusfixed || Desktop.desktop == null)
+ {
+ if (ap != null && av != null)
+ {
+ return true;
+ }
+ // we aren't in a desktop environment, so give up now.
+ return false;
+ }
// now checks further down the window stack to fix bug
// https://mantis.lifesci.dundee.ac.uk/view.php?id=36008
JInternalFrame[] frames = Desktop.desktop.getAllFrames();
// TODO: add switches to control what is searched - sequences, IDS,
// descriptions, features
jalview.analysis.Finder finder = new jalview.analysis.Finder(
- av.alignment, av.getSelectionGroup(), seqIndex, resIndex);
+ av.getAlignment(), av.getSelectionGroup(), seqIndex, resIndex);
finder.setCaseSensitive(caseSensitive.isSelected());
finder.setFindAll(findAll);
{
String message = (idMatch.size() > 0) ? "" + idMatch.size() + " IDs"
: "";
- if (idMatch.size() > 0 && searchResults.getSize() > 0)
+ if (searchResults != null)
{
- message += " and ";
+ if (idMatch.size() > 0 && searchResults.getSize() > 0)
+ {
+ message += " and ";
+ }
+ message += searchResults.getSize() + " subsequence matches found.";
}
- message += searchResults.getSize() + " subsequence matches found.";
JOptionPane.showInternalMessageDialog(this, message, null,
JOptionPane.INFORMATION_MESSAGE);
resIndex = -1;