X-Git-Url: http://source.jalview.org/gitweb/?p=jalview.git;a=blobdiff_plain;f=src%2Fjalview%2Fjbgui%2FGStructureChooser.java;h=d8101e3d7bc4f40d4dc6044caed00c353a4079e6;hp=ccccfb4035e64e6de932074a917cb1702cbaceff;hb=fa9da54fb97cb2eacb1af7859024d90166bddb8f;hpb=a20a6bc5758a4c6cb221d42174ace2f48e0002b3 diff --git a/src/jalview/jbgui/GStructureChooser.java b/src/jalview/jbgui/GStructureChooser.java index ccccfb4..d8101e3 100644 --- a/src/jalview/jbgui/GStructureChooser.java +++ b/src/jalview/jbgui/GStructureChooser.java @@ -21,17 +21,6 @@ package jalview.jbgui; -import jalview.datamodel.SequenceI; -import jalview.fts.api.FTSDataColumnI; -import jalview.fts.core.FTSDataColumnPreferences; -import jalview.fts.core.FTSDataColumnPreferences.PreferenceSource; -import jalview.fts.service.pdb.PDBFTSRestClient; -import jalview.gui.AlignmentPanel; -import jalview.gui.Desktop; -import jalview.gui.JvSwingUtils; -import jalview.gui.StructureViewer; -import jalview.util.MessageManager; - import java.awt.BorderLayout; import java.awt.CardLayout; import java.awt.Component; @@ -68,7 +57,6 @@ import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.ListCellRenderer; import javax.swing.Timer; -import javax.swing.UIManager; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.event.DocumentEvent; @@ -76,6 +64,14 @@ import javax.swing.event.DocumentListener; import javax.swing.event.InternalFrameEvent; import javax.swing.table.TableColumn; +import jalview.datamodel.SequenceI; +import jalview.fts.api.FTSDataColumnI; +import jalview.fts.core.FTSDataColumnPreferences; +import jalview.gui.AlignmentPanel; +import jalview.gui.Desktop; +import jalview.gui.JvSwingUtils; +import jalview.gui.StructureViewer; +import jalview.util.MessageManager; import net.miginfocom.swing.MigLayout; @SuppressWarnings("serial") @@ -121,7 +117,10 @@ public abstract class GStructureChooser extends JPanel protected JButton btn_newView; protected JButton btn_pdbFromFile = new JButton(); - + + // holder for icon and button + protected JPanel pnl_queryTDB; + protected JButton btn_queryTDB = new JButton(); protected JCheckBox chk_superpose = new JCheckBox( @@ -149,8 +148,8 @@ public abstract class GStructureChooser extends JPanel protected ImageIcon warningImage = new ImageIcon( getClass().getResource("/images/warning.gif")); - protected ImageIcon tdbImage = new ImageIcon( - getClass().getResource("/images/3d-beacons-logo-transparent.png")); + protected ImageIcon tdbImage = new ImageIcon(getClass() + .getResource("/images/3d-beacons-logo-transparent.png")); protected JLabel lbl_loading = new JLabel(loadingImage); @@ -169,8 +168,9 @@ public abstract class GStructureChooser extends JPanel protected JTabbedPane pnl_filter = new JTabbedPane(); protected abstract FTSDataColumnPreferences getFTSDocFieldPrefs(); - protected abstract void setFTSDocFieldPrefs(FTSDataColumnPreferences newPrefs); + protected abstract void setFTSDocFieldPrefs( + FTSDataColumnPreferences newPrefs); protected FTSDataColumnI[] previousWantedFields; @@ -251,12 +251,13 @@ public abstract class GStructureChooser extends JPanel + "...\"") : JvSwingUtils.wrapTooltip(true, toolTipText))); return toolTipText; - } + } }; public GStructureChooser() { } + protected void initDialog() { @@ -272,29 +273,33 @@ public abstract class GStructureChooser extends JPanel e.printStackTrace(); } } - + // BH SwingJS optimization // (a) 100-ms interruptable timer for text entry -- BH 1/10/2019 // (b) two-character minimum, at least for JavaScript. - - private Timer timer; - - protected void txt_search_ActionPerformedDelayed() { - if (timer != null) { - timer.stop(); - } - timer = new Timer(300, new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - txt_search_ActionPerformed(); - } - }); - timer.setRepeats(false); - timer.start(); + + private Timer timer; + + protected void txt_search_ActionPerformedDelayed() + { + if (timer != null) + { + timer.stop(); + } + timer = new Timer(300, new ActionListener() + { + + @Override + public void actionPerformed(ActionEvent e) + { + txt_search_ActionPerformed(); + } + }); + timer.setRepeats(false); + timer.start(); } // - + /** * Initializes the GUI default properties * @@ -320,6 +325,7 @@ public abstract class GStructureChooser extends JPanel super.mousePressed(e); } } + @Override public void mouseClicked(MouseEvent e) { @@ -334,21 +340,22 @@ public abstract class GStructureChooser extends JPanel { if (!popupAction(e)) { - validateSelections(); + validateSelections(); } } + boolean popupAction(MouseEvent e) { - if (e.isPopupTrigger()) - { - Point pt = e.getPoint(); - int selectedRow = tbl_summary.rowAtPoint(pt); - if (showPopupFor(selectedRow,pt.x,pt.y)) - { - return true; - } - } - return false; + if (e.isPopupTrigger()) + { + Point pt = e.getPoint(); + int selectedRow = tbl_summary.rowAtPoint(pt); + if (showPopupFor(selectedRow, pt.x, pt.y)) + { + return true; + } + } + return false; } }); tbl_summary.addKeyListener(new KeyAdapter() @@ -465,7 +472,9 @@ public abstract class GStructureChooser extends JPanel } }); - btn_newView = new JButton(MessageManager.getString("action.new_view")); + btn_newView = new JButton( + MessageManager.formatMessage("action.new_structure_view_with", + StructureViewer.getViewerType().toString())); btn_newView.setFont(VERDANA_12); btn_newView.addActionListener(new java.awt.event.ActionListener() { @@ -487,6 +496,9 @@ public abstract class GStructureChooser extends JPanel } }); + // TODO: JAL-3898 - get list of available external programs to view + // structures with + btn_add = new JButton(MessageManager.getString("action.add")); btn_add.setFont(VERDANA_12); btn_add.addActionListener(new java.awt.event.ActionListener() @@ -581,11 +593,12 @@ public abstract class GStructureChooser extends JPanel }); chk_invertFilter.addItemListener(this); + btn_queryTDB = new JButton( + MessageManager.getString("label.search_3dbeacons")); btn_queryTDB.setFont(VERDANA_12); - //btn_queryTDB.setPreferredSize(new Dimension(200,22)); - btn_queryTDB.setText(MessageManager.getString("label.search_3dbeacons")); - btn_queryTDB.setToolTipText(MessageManager.getString("label.find_models_from_3dbeacons")); - btn_queryTDB.setIcon(tdbImage); + btn_queryTDB.setToolTipText( + MessageManager.getString("label.find_models_from_3dbeacons")); + btn_queryTDB.setPreferredSize(new Dimension(300, 24)); btn_queryTDB.setVisible(false); targetView.setVisible(false); @@ -599,11 +612,16 @@ public abstract class GStructureChooser extends JPanel JPanel pnl_main = new JPanel(new BorderLayout()); JPanel pnl_controls = new JPanel(); - pnl_main.add(btn_queryTDB,BorderLayout.NORTH); + pnl_queryTDB = new JPanel(new FlowLayout()); + pnl_queryTDB.setBackground(getBackground()); + pnl_queryTDB.add(new JLabel(tdbImage)); + pnl_queryTDB.add(btn_queryTDB); + pnl_queryTDB.setVisible(false); + pnl_main.add(pnl_queryTDB, BorderLayout.NORTH); pnl_controls.add(cmb_filterOption); pnl_controls.add(lbl_loading); pnl_controls.add(chk_invertFilter); - pnl_main.add(pnl_controls,BorderLayout.CENTER); + pnl_main.add(pnl_controls, BorderLayout.CENTER); lbl_loading.setVisible(false); JPanel pnl_fileChooser = new JPanel(new FlowLayout()); @@ -708,9 +726,9 @@ public abstract class GStructureChooser extends JPanel Desktop.addInternalFrame(mainFrame, frameTitle, width, height); } + protected abstract boolean showPopupFor(int selectedRow, int x, int y); -protected abstract boolean showPopupFor(int selectedRow, int x, int y); -protected void closeAction(int preferredHeight) + protected void closeAction(int preferredHeight) { // System.out.println(">>>>>>>>>> closing internal frame!!!"); // System.out.println("width : " + mainFrame.getWidth());