X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fjbgui%2FGStructureChooser.java;h=8cb5b3c7623317727fa302db1ddfc538f275f1e5;hb=a7169b1c72607f3c9357195b4999869650a2a891;hp=10e000f60287693e33a2cfec30eefa0aa4707fb5;hpb=57738a1f3c19b1c3a00bd3ac5108f8cd0af32f99;p=jalview.git diff --git a/src/jalview/jbgui/GStructureChooser.java b/src/jalview/jbgui/GStructureChooser.java index 10e000f..8cb5b3c 100644 --- a/src/jalview/jbgui/GStructureChooser.java +++ b/src/jalview/jbgui/GStructureChooser.java @@ -21,24 +21,16 @@ 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; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Font; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; import java.awt.GridLayout; +import java.awt.Insets; import java.awt.Point; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -67,8 +59,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 +68,17 @@ 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.structure.StructureImportSettings; +import jalview.structure.StructureImportSettings.TFType; +import jalview.util.MessageManager; +import jalview.util.Platform; import net.miginfocom.swing.MigLayout; @SuppressWarnings("serial") @@ -90,6 +93,8 @@ public abstract class GStructureChooser extends JPanel { private static final Font VERDANA_12 = new Font("Verdana", 0, 12); + private static final Font VERDANA_10 = new Font("Verdana", 0, 10); + public static final String VIEWS_FILTER = "VIEWS_FILTER"; protected static final String VIEWS_FROM_FILE = "VIEWS_FROM_FILE"; @@ -101,6 +106,8 @@ public abstract class GStructureChooser extends JPanel */ protected static final String VIEWS_LOCAL_PDB = "VIEWS_LOCAL_PDB"; + protected JPanel actionsPanel; + protected JPanel statusPanel = new JPanel(); public JLabel statusBar = new JLabel(); @@ -116,12 +123,29 @@ public abstract class GStructureChooser extends JPanel protected StringBuilder errorWarning = new StringBuilder(); + protected JButton btn_cancel; + protected JButton btn_add; protected JButton btn_newView; protected JButton btn_pdbFromFile = new JButton(); + protected JLabel lbl_pdbFile = new JLabel(); + + protected JLabel lbl_chooseTempFacType = new JLabel(); + + protected JComboBox combo_tempFacAs = new JComboBox<>(); + + protected boolean tempFacAsChanged = false; + + protected JButton btn_paeMatrixFile = new JButton(); + + protected JLabel lbl_paeFile = new JLabel(); + + // holder for icon and button + protected JPanel pnl_queryTDB; + protected JButton btn_queryTDB = new JButton(); protected JCheckBox chk_superpose = new JCheckBox( @@ -156,7 +180,7 @@ public abstract class GStructureChooser extends JPanel protected JLabel lbl_pdbManualFetchStatus = new JLabel(errorImage); - protected JLabel lbl_fromFileStatus = new JLabel(errorImage); + // protected JLabel lbl_fromFileStatus = new JLabel(errorImage); protected AssociateSeqPanel idInputAssSeqPanel = new AssociateSeqPanel(); @@ -265,6 +289,7 @@ public abstract class GStructureChooser extends JPanel try { jbInit(); + mainFrame.setFrameIcon(null); mainFrame.setVisible(false); mainFrame.invalidate(); mainFrame.pack(); @@ -393,10 +418,9 @@ public abstract class GStructureChooser extends JPanel } }); - JButton btn_cancel = new JButton( - MessageManager.getString("action.cancel")); + btn_cancel = new JButton(MessageManager.getString("action.cancel")); btn_cancel.setFont(VERDANA_12); - btn_cancel.addActionListener(new java.awt.event.ActionListener() + btn_cancel.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) @@ -477,7 +501,7 @@ public abstract class GStructureChooser extends JPanel MessageManager.formatMessage("action.new_structure_view_with", StructureViewer.getViewerType().toString())); btn_newView.setFont(VERDANA_12); - btn_newView.addActionListener(new java.awt.event.ActionListener() + btn_newView.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) @@ -502,7 +526,7 @@ public abstract class GStructureChooser extends JPanel btn_add = new JButton(MessageManager.getString("action.add")); btn_add.setFont(VERDANA_12); - btn_add.addActionListener(new java.awt.event.ActionListener() + btn_add.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) @@ -525,7 +549,7 @@ public abstract class GStructureChooser extends JPanel btn_pdbFromFile.setFont(VERDANA_12); String btn_title = MessageManager.getString("label.select_pdb_file"); btn_pdbFromFile.setText(btn_title + " "); - btn_pdbFromFile.addActionListener(new java.awt.event.ActionListener() + btn_pdbFromFile.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) @@ -544,6 +568,51 @@ public abstract class GStructureChooser extends JPanel } } }); + lbl_pdbFile.setFont(VERDANA_10); + lbl_pdbFile.setFont(VERDANA_10); + + lbl_chooseTempFacType.setFont(VERDANA_12); + lbl_chooseTempFacType.setText( + MessageManager.getString("label.interpret_tempfac_as")); + + combo_tempFacAs.setFont(VERDANA_12); + for (TFType t : TFType.values()) + { + combo_tempFacAs.addItem(t); + } + combo_tempFacAs.addItemListener(new ItemListener() + { + @Override + public void itemStateChanged(ItemEvent e) + { + // used to determine if we should guess pLDDT or leave a user-choice + tempFacAsChanged = true; + } + }); + + btn_paeMatrixFile.setFont(VERDANA_12); + btn_paeMatrixFile + .setText(MessageManager.getString("label.add_pae_matrix_file")); + btn_paeMatrixFile.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent e) + { + paeMatrixFile_actionPerformed(); + } + }); + btn_paeMatrixFile.addKeyListener(new KeyAdapter() + { + @Override + public void keyPressed(KeyEvent evt) + { + if (evt.getKeyCode() == KeyEvent.VK_ENTER) + { + paeMatrixFile_actionPerformed(); + } + } + }); + lbl_paeFile.setFont(VERDANA_10); JScrollPane scrl_foundStructures = new JScrollPane(tbl_summary); scrl_foundStructures.setPreferredSize(new Dimension(width, height)); @@ -594,18 +663,28 @@ 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); - JPanel actionsPanel = new JPanel(new MigLayout()); + actionsPanel = new JPanel(new MigLayout()); actionsPanel.add(targetView, "left"); actionsPanel.add(btn_add, "wrap"); actionsPanel.add(chk_superpose, "left"); @@ -614,19 +693,62 @@ 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); pnl_main.add(pnl_controls, BorderLayout.CENTER); lbl_loading.setVisible(false); - JPanel pnl_fileChooser = new JPanel(new FlowLayout()); - pnl_fileChooser.add(btn_pdbFromFile); - pnl_fileChooser.add(lbl_fromFileStatus); + // JPanel pnl_fileChooser = new JPanel(new FlowLayout()); + // pnl_fileChooser.add(btn_pdbFromFile); + // pnl_fileChooser.add(lbl_fromFileStatus); + + JPanel pnl_fileOptions = new JPanel(); + pnl_fileOptions.setLayout(new GridBagLayout()); + GridBagConstraints gbc = new GridBagConstraints(); + gbc.gridx = 0; + gbc.gridy = 0; + gbc.weightx = 0.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(0, 0, 2, 0); + gbc.fill = GridBagConstraints.NONE; + gbc.anchor = GridBagConstraints.FIRST_LINE_START; + // pnl_fileOptions.add(pnl_fileChooser, gbc); + pnl_fileOptions.add(btn_pdbFromFile, gbc); + gbc.gridy++; + gbc.insets = new Insets(0, 0, 18, 0); + pnl_fileOptions.add(lbl_pdbFile, gbc); + gbc.gridy++; + + gbc.insets = new Insets(0, 0, 2, 0); + pnl_fileOptions.add(new JLabel( + MessageManager.getString("label.structure_import_options")), + gbc); + gbc.gridy++; + + gbc.insets = new Insets(0, 0, 6, 0); + pnl_fileOptions.add(lbl_chooseTempFacType, gbc); + gbc.gridy++; + gbc.insets = new Insets(0, 0, 18, 0); + pnl_fileOptions.add(combo_tempFacAs, gbc); + gbc.gridy++; + gbc.insets = new Insets(0, 0, 6, 0); + pnl_fileOptions.add(btn_paeMatrixFile, gbc); + gbc.gridy++; + gbc.insets = new Insets(0, 0, 2, 0); + gbc.weighty = 1.0; + pnl_fileOptions.add(lbl_paeFile, gbc); + JPanel pnl_fileChooserBL = new JPanel(new BorderLayout()); - pnl_fileChooserBL.add(fileChooserAssSeqPanel, BorderLayout.NORTH); - pnl_fileChooserBL.add(pnl_fileChooser, BorderLayout.CENTER); + pnl_fileChooserBL.add(fileChooserAssSeqPanel, BorderLayout.PAGE_START); + pnl_fileChooserBL.add(pnl_fileOptions, BorderLayout.CENTER); JPanel pnl_idInput = new JPanel(new FlowLayout()); pnl_idInput.add(txt_search); @@ -931,6 +1053,8 @@ public abstract class GStructureChooser extends JPanel protected abstract void pdbFromFile_actionPerformed(); + protected abstract void paeMatrixFile_actionPerformed(); + protected abstract void txt_search_ActionPerformed(); protected abstract void populateCmbAssociateSeqOptions( @@ -942,4 +1066,17 @@ 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; + } + + public void setPdbOptionsEnabled(boolean b) + { + lbl_chooseTempFacType.setEnabled(b); + combo_tempFacAs.setEnabled(b); + btn_paeMatrixFile.setEnabled(b); + lbl_paeFile.setEnabled(b); + } +}