Merge branch 'develop' into releases/Release_2_11_2_Branch
[jalview.git] / src / jalview / jbgui / GStructureChooser.java
index 10e000f..834e873 100644 (file)
 
 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;
@@ -39,6 +28,7 @@ import java.awt.Dimension;
 import java.awt.FlowLayout;
 import java.awt.Font;
 import java.awt.GridLayout;
+import java.awt.Insets;
 import java.awt.Point;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
@@ -67,8 +57,8 @@ import javax.swing.JTabbedPane;
 import javax.swing.JTable;
 import javax.swing.JTextField;
 import javax.swing.ListCellRenderer;
+import javax.swing.SwingConstants;
 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 +66,15 @@ 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 jalview.util.Platform;
 import net.miginfocom.swing.MigLayout;
 
 @SuppressWarnings("serial")
@@ -122,6 +121,9 @@ public abstract class GStructureChooser extends JPanel
 
   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(
@@ -594,13 +596,23 @@ public abstract class GStructureChooser extends JPanel
     });
 
     chk_invertFilter.addItemListener(this);
-    btn_queryTDB.setFont(VERDANA_12);
-    // btn_queryTDB.setPreferredSize(new Dimension(200,22));
+    btn_queryTDB = new JButton();
+    if (Platform.isMac())
+    {
+      // needed to make icon button have round corners in vaqua
+      btn_queryTDB.putClientProperty("JButton.buttonType", "bevel");
+    }
+    btn_queryTDB.setMargin(new Insets(0, 16, 0, 20));
     btn_queryTDB
             .setText(MessageManager.getString("label.search_3dbeacons"));
+    btn_queryTDB.setIconTextGap(12);
+    btn_queryTDB.setIcon(tdbImage);
+    btn_queryTDB.setVerticalTextPosition(SwingConstants.CENTER);
+    btn_queryTDB.setHorizontalTextPosition(SwingConstants.TRAILING);
+    btn_queryTDB.setFont(VERDANA_12);
     btn_queryTDB.setToolTipText(
             MessageManager.getString("label.find_models_from_3dbeacons"));
-    btn_queryTDB.setIcon(tdbImage);
+    // btn_queryTDB.setPreferredSize(new Dimension(200, 32));
     btn_queryTDB.setVisible(false);
 
     targetView.setVisible(false);
@@ -614,7 +626,13 @@ 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();
+    pnl_queryTDB.setLayout(new FlowLayout(FlowLayout.CENTER, 4, 4));
+    pnl_queryTDB.setBackground(getBackground());
+    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);
@@ -942,4 +960,9 @@ public abstract class GStructureChooser extends JPanel
   protected abstract void tabRefresh();
 
   protected abstract void validateSelections();
-}
\ No newline at end of file
+
+  public JInternalFrame getFrame()
+  {
+    return mainFrame;
+  }
+}