/*
* Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
* Copyright (C) $$Year-Rel$$ The Jalview Authors
*
* 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
* PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Jalview. If not, see .
* The Jalview Authors are detailed in the 'AUTHORS' file.
*/
package jalview.fts.api;
import java.util.Map;
import javax.swing.JTable;
/**
*
* @author tcnofoegbu
*
*/
public interface GFTSPanelI
{
/**
* Action performed when a text is entered in the search field.
*
* @param isFreshSearch
* if true a fresh search is executed else a pagination search is
* executed
*/
public void searchAction(boolean isFreshSearch);
/**
* Action performed when search results are selected and the 'ok' button is
* pressed.
*/
public void okAction();
/**
* Return the entered text
*
* @return the entered text
*/
public String getTypedText();
/**
* The JTable for presenting the query result
*
* @return JTable
*/
public JTable getResultTable();
/**
* Return the title to display on the search interface main panel
*
* @return String - the title
*/
public String getFTSFrameTitle();
/**
* Return a singleton instance of FTSRestClientI
*
* @return FTSRestClientI
*/
public FTSRestClientI getFTSRestClient();
/**
* Set error message when one occurs
*
* @param message
* the error message to set
*/
public void setErrorMessage(String message);
/**
* Updates the title displayed on the search interface's main panel
*
* @param newTitle
*/
public void updateSearchFrameTitle(String newTitle);
/**
* Controls the progress spinner, set to 'true' while search operation is in
* progress and 'false' after it completes
*
* @param isSearchInProgress
*/
public void setSearchInProgress(Boolean isSearchInProgress);
/**
* Action performed when previous page (<<) button is pressed pressed.
*/
public void prevPageAction();
/**
* Action performed when next page (>>) button is pressed pressed.
*/
public void nextPageAction();
/**
* Checks if the current service's search result is paginate-able
*
* @return true means the service provides paginated results
*/
public boolean isPaginationEnabled();
/**
* Updates the 'enabled' state for the previous page button
*
* @param isEnabled
*/
public void setPrevPageButtonEnabled(boolean isEnabled);
/**
* Updates the 'enabled' state for the next page button
*
* @param isEnabled
*/
public void setNextPageButtonEnabled(boolean isEnabled);
/**
* The HashMap used to store user preferences for summary table columns,
* window size and position
*
* @return
*/
public Map getTempUserPrefs();
/**
* Returns unique key used for storing an FTSs instance cache items in the
* cache data structure
*
* @return
*/
public String getCacheKey();
/**
*
* @return user preference name for configuring this FTS search's autosearch
* checkbox
*/
public String getAutosearchPreference();
}