974cc8867771b6540b65cc16e2165ac37ccd75ba
[jalview.git] / src / jalview / fts / api / GFTSPanelI.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3  * Copyright (C) $$Year-Rel$$ The Jalview Authors
4  * 
5  * This file is part of Jalview.
6  * 
7  * Jalview is free software: you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License 
9  * as published by the Free Software Foundation, either version 3
10  * of the License, or (at your option) any later version.
11  *  
12  * Jalview is distributed in the hope that it will be useful, but 
13  * WITHOUT ANY WARRANTY; without even the implied warranty 
14  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
15  * PURPOSE.  See the GNU General Public License for more details.
16  * 
17  * You should have received a copy of the GNU General Public License
18  * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
19  * The Jalview Authors are detailed in the 'AUTHORS' file.
20  */
21
22 package jalview.fts.api;
23
24 import java.util.Map;
25
26 import javax.swing.JTable;
27
28 /**
29  * 
30  * @author tcnofoegbu
31  *
32  */
33 public interface GFTSPanelI
34 {
35
36   /**
37    * Action performed when a text is entered in the search field.
38    * 
39    * @param isFreshSearch
40    *          if true a fresh search is executed else a pagination search is
41    *          executed
42    */
43   public void searchAction(boolean isFreshSearch);
44
45   /**
46    * Action performed when search results are selected and the 'ok' button is
47    * pressed.
48    */
49   public void okAction();
50
51   /**
52    * Return the entered text
53    * 
54    * @return the entered text
55    */
56   public String getTypedText();
57
58   /**
59    * The JTable for presenting the query result
60    * 
61    * @return JTable
62    */
63   public JTable getResultTable();
64
65   /**
66    * Return the title to display on the search interface main panel
67    * 
68    * @return String - the title
69    */
70   public String getFTSFrameTitle();
71
72   /**
73    * Return a singleton instance of FTSRestClientI
74    * 
75    * @return FTSRestClientI
76    */
77   public FTSRestClientI getFTSRestClient();
78
79   /**
80    * Set error message when one occurs
81    * 
82    * @param message
83    *          the error message to set
84    */
85   public void setErrorMessage(String message);
86
87   /**
88    * Updates the title displayed on the search interface's main panel
89    * 
90    * @param newTitle
91    */
92   public void updateSearchFrameTitle(String newTitle);
93
94   /**
95    * Controls the progress spinner, set to 'true' while search operation is in
96    * progress and 'false' after it completes
97    * 
98    * @param isSearchInProgress
99    */
100   public void setSearchInProgress(Boolean isSearchInProgress);
101
102   /**
103    * Action performed when previous page (<<) button is pressed pressed.
104    */
105   public void prevPageAction();
106
107   /**
108    * Action performed when next page (>>) button is pressed pressed.
109    */
110   public void nextPageAction();
111
112   /**
113    * Checks if the current service's search result is paginate-able
114    * 
115    * @return true means the service provides paginated results
116    */
117   public boolean isPaginationEnabled();
118
119   /**
120    * Updates the 'enabled' state for the previous page button
121    * 
122    * @param isEnabled
123    */
124   public void setPrevPageButtonEnabled(boolean isEnabled);
125
126   /**
127    * Updates the 'enabled' state for the next page button
128    * 
129    * @param isEnabled
130    */
131   public void setNextPageButtonEnabled(boolean isEnabled);
132
133   /**
134    * The HashMap used to store user preferences for summary table columns,
135    * window size and position
136    * 
137    * @return
138    */
139   public Map<String, Integer> getTempUserPrefs();
140
141   /**
142    * Returns unique key used for storing an FTSs instance cache items in the
143    * cache data structure
144    * 
145    * @return
146    */
147   public String getCacheKey();
148
149   /**
150    * 
151    * @return user preference name for configuring this FTS search's autosearch
152    *         checkbox
153    */
154   public String getAutosearchPreference();
155 }