package jalview.fts.core;
-import jalview.fts.api.FTSDataColumnI;
-import jalview.fts.api.GFTSPanelI;
-import jalview.fts.core.FTSDataColumnPreferences.PreferenceSource;
-import jalview.gui.Desktop;
-import jalview.gui.IProgressIndicator;
-import jalview.gui.JvSwingUtils;
-import jalview.gui.SequenceFetcher;
-import jalview.io.cache.JvCacheableInputBox;
-import jalview.util.MessageManager;
-
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Dimension;
import javax.swing.event.InternalFrameEvent;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
-import javax.swing.text.JTextComponent;
+
+import jalview.bin.Cache;
+import jalview.fts.api.FTSDataColumnI;
+import jalview.fts.api.GFTSPanelI;
+import jalview.fts.core.FTSDataColumnPreferences.PreferenceSource;
+import jalview.gui.Desktop;
+import jalview.gui.IProgressIndicator;
+import jalview.gui.JvSwingUtils;
+import jalview.gui.SequenceFetcher;
+import jalview.io.cache.JvCacheableInputBox;
+import jalview.util.MessageManager;
+import jalview.util.Platform;
/**
* This class provides the swing GUI layout for FTS Panel and implements most of
getFTSFrameTitle());
protected JTabbedPane tabs = new JTabbedPane();
+
protected IProgressIndicator progressIndicator;
protected JComboBox<FTSDataColumnI> cmb_searchTarget = new JComboBox<>();
protected JLabel lbl_blank = new JLabel(balnkPlaceholderImage);
- private JTabbedPane tabbedPane = new JTabbedPane();
+ JTabbedPane tabbedPane = new JTabbedPane();
private JPanel pnl_actions = new JPanel();
{
tabs.addTab(MessageManager.getString("label.retrieve_ids"),
fetcher);
- fetcher.setDatabaseChooserVisible(false);
- fetcher.embedWithFTSPanel(this);
+ fetcher.embedIn(this);
}
mainFrame.setMinimumSize(new Dimension(MIN_WIDTH, MIN_HEIGHT));
final JPanel ftsPanel = this;
public void focusGained(FocusEvent e)
{
// TODO: make selected tab gain focus in correct widget
- if (tabs != null
- && tabs.getSelectedComponent() == ftsPanel)
+ if (tabs != null && tabs.getSelectedComponent() == ftsPanel)
{
- txt_search.requestFocusInWindow();
+ txt_search.getComponent().requestFocusInWindow();
}
}
});
private void jbInit() throws Exception
{
- txt_search = new JvCacheableInputBox<>(getCacheKey());
+ txt_search = new JvCacheableInputBox<>(getCacheKey(), 45);
populateCmbSearchTargetOptions();
Integer width = getTempUserPrefs().get("FTSPanel.width") == null ? 800
: getTempUserPrefs().get("FTSPanel.width");
btn_autosearch.setText(MessageManager.getString("option.autosearch"));
btn_autosearch.setToolTipText(
MessageManager.getString("option.enable_disable_autosearch"));
- btn_autosearch.setSelected(
- jalview.bin.Cache.getDefault(getAutosearchPreference(), true));
+ // disable autosearch by default
+ btn_autosearch.setSelected(!Platform.isJS()
+ && Cache.getDefault(getAutosearchPreference(), false));
btn_autosearch.addActionListener(new java.awt.event.ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
- jalview.bin.Cache.setProperty(getAutosearchPreference(),
+ Cache.setProperty(getAutosearchPreference(),
Boolean.toString(btn_autosearch.isSelected()));
}
});
"label.separate_multiple_query_values", new Object[]
{ getCmbSearchTarget().getSelectedItem().toString() });
}
- txt_search.setToolTipText(
+ txt_search.getComponent().setToolTipText(
JvSwingUtils.wrapTooltip(true, tooltipText));
+ // if (btn_autosearch.isSelected())
searchAction(true);
+
+ setCmbSearchTargetTooltip();
}
}
});
- txt_search.setFont(VERDANA_12);
+ txt_search.getComponent().setFont(VERDANA_12);
- txt_search.getEditor().getEditorComponent()
- .addKeyListener(new KeyAdapter()
- {
- @Override
- public void keyPressed(KeyEvent e)
- {
- if (e.getKeyCode() == KeyEvent.VK_ENTER)
- {
- if (getTypedText() == null || getTypedText().isEmpty())
- {
- return;
- }
- String primaryKeyName = getFTSRestClient()
- .getPrimaryKeyColumn().getName();
- if (primaryKeyName.equalsIgnoreCase(getCmbSearchTarget()
- .getSelectedItem().toString()))
- {
- // TODO: nicer to show the list in the result set before
- // viewing in Jalview perhaps ?
- transferToSequenceFetcher(getTypedText());
- }
- else
- {
- performSearchAction();
- }
- }
- }
- });
+ txt_search.addKeyListener(new KeyAdapter()
+ {
+ @Override
+ public void keyPressed(KeyEvent e)
+ {
+ if (e.getKeyCode() == KeyEvent.VK_ENTER)
+ {
+ if (getTypedText() == null || getTypedText().isEmpty())
+ {
+ return;
+ }
+ String primaryKeyName = getFTSRestClient().getPrimaryKeyColumn()
+ .getName();
+ if (primaryKeyName.equalsIgnoreCase(
+ getCmbSearchTarget().getSelectedItem().toString()))
+ {
+ // TODO: nicer to show the list in the result set before
+ // viewing in Jalview perhaps ?
+ transferToSequenceFetcher(getTypedText());
+ }
+ else
+ {
+ performSearchAction();
+ }
+ }
+ }
+ });
final DeferredTextInputListener listener = new DeferredTextInputListener(
1500, new ActionListener()
{
}
}
}, false);
- ((JTextComponent) txt_search.getEditor().getEditorComponent())
- .getDocument().addDocumentListener(listener);
+ txt_search.addDocumentListener(listener);
txt_search.addFocusListener(new FocusListener()
{
txt_search.addActionListener(new ActionListener()
{
-
@Override
public void actionPerformed(ActionEvent e)
{
btn_ok.setEnabled(false);
btn_next_page.setEnabled(false);
btn_prev_page.setEnabled(false);
- txt_search.setEnabled(false);
+ txt_search.getComponent().setEnabled(false);
cmb_searchTarget.setEnabled(false);
previousWantedFields = getFTSRestClient()
.getAllDefaultDisplayedFTSDataColumns()
btn_back.setEnabled(true);
btn_cancel.setEnabled(true);
refreshPaginatorState();
- txt_search.setEnabled(true);
+ txt_search.getComponent().setEnabled(true);
cmb_searchTarget.setEnabled(true);
if (wantedFieldsUpdated())
{
pnl_actions.add(btn_cancel);
pnl_results.add(tabbedPane);
+ setCmbSearchTargetTooltip();
pnl_inputs.add(cmb_searchTarget);
- pnl_inputs.add(txt_search);
+ pnl_inputs.add(txt_search.getComponent());
pnl_inputs.add(txt_help);
pnl_inputs.add(btn_autosearch);
pnl_inputs.add(lbl_loading);
this.add(pnl_inputs, java.awt.BorderLayout.NORTH);
this.add(pnl_results, java.awt.BorderLayout.CENTER);
this.add(pnl_actions, java.awt.BorderLayout.SOUTH);
+ mainFrame.setFrameIcon(null);
mainFrame.setVisible(true);
if (tabs != null)
{
return cmb_searchTarget;
}
- public JComboBox<String> getTxtSearch()
- {
- return txt_search;
- }
-
public JInternalFrame getMainFrame()
{
return mainFrame;
}
}
+ /**
+ * Action on Back button is to close this panel and open a new Sequence
+ * Fetcher panel
+ */
public void btn_back_ActionPerformed()
{
closeAction();
public void transferToSequenceFetcher(String ids)
{
- seqFetcher.getTextArea().setText(ids);
+ seqFetcher.setQuery(ids);
Thread worker = new Thread(seqFetcher);
worker.start();
}
lbl_blank.setVisible(true);
btn_ok.setEnabled(false);
mainFrame.setTitle(getFTSFrameTitle());
- referesh();
+ refresh();
tbl_summary.setModel(new DefaultTableModel());
tbl_summary.setVisible(false);
}
}
}
- public void referesh()
+ public void refresh()
{
mainFrame.setTitle(getFTSFrameTitle());
}
+ @Override
+ public abstract void okAction();
+
+ private void setCmbSearchTargetTooltip()
+ {
+ JComboBox<FTSDataColumnI> cmb = getCmbSearchTarget();
+ if (cmb.isEnabled())
+ {
+ boolean isAll = "all"
+ .equalsIgnoreCase(cmb.getSelectedItem().toString());
+ FTSDataColumnI index = (FTSDataColumnI) cmb.getSelectedItem();
+ String indexCode = index.getAltCode();
+ String dbName = getDbName();
+ String message = isAll ? MessageManager
+ .formatMessage("label.search_db_all", new Object[]
+ { dbName })
+ : MessageManager.formatMessage("label.search_db_index",
+ new Object[]
+ { dbName, indexCode });
+ cmb.setToolTipText(message);
+ }
+ else
+ {
+ cmb.setToolTipText("");
+ }
+ }
}