*/
package jalview.jbgui;
-import jalview.bin.Cache;
-import jalview.fts.core.FTSDataColumnPreferences;
-import jalview.fts.core.FTSDataColumnPreferences.PreferenceSource;
-import jalview.fts.service.pdb.PDBFTSRestClient;
-import jalview.gui.Desktop;
-import jalview.gui.JalviewBooleanRadioButtons;
-import jalview.gui.JvOptionPane;
-import jalview.gui.JvSwingUtils;
-import jalview.gui.StructureViewer.ViewerType;
-import jalview.io.BackupFilenameParts;
-import jalview.io.BackupFiles;
-import jalview.io.BackupFilesPresetEntry;
-import jalview.io.IntKeyStringValueEntry;
-import jalview.util.MessageManager;
-import jalview.util.Platform;
-
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;
+import jalview.bin.Cache;
+import jalview.fts.core.FTSDataColumnPreferences;
+import jalview.fts.core.FTSDataColumnPreferences.PreferenceSource;
+import jalview.fts.service.pdb.PDBFTSRestClient;
+import jalview.gui.Desktop;
+import jalview.gui.JalviewBooleanRadioButtons;
+import jalview.gui.JvOptionPane;
+import jalview.gui.JvSwingUtils;
+import jalview.gui.StructureViewer.ViewerType;
+import jalview.io.BackupFilenameParts;
+import jalview.io.BackupFiles;
+import jalview.io.BackupFilesPresetEntry;
+import jalview.io.IntKeyStringValueEntry;
+import jalview.util.MessageManager;
+import jalview.util.Platform;
+
/**
* Base class for the Preferences panel.
*
protected JComboBox<String> structViewer = new JComboBox<>();
- protected JTextField chimeraPath = new JTextField();
+ protected JLabel structureViewerPathLabel;
+
+ protected JTextField structureViewerPath = new JTextField();
protected ButtonGroup mappingMethod = new ButtonGroup();
structureTab.setBorder(new TitledBorder(
MessageManager.getString("label.structure_options")));
structureTab.setLayout(null);
- final int width = 400;
+ final int width = 420;
final int height = 22;
final int lineSpacing = 25;
int ypos = 15;
viewerLabel.setFont(LABEL_FONT);
viewerLabel.setHorizontalAlignment(SwingConstants.LEFT);
viewerLabel.setText(MessageManager.getString("label.structure_viewer"));
- viewerLabel.setBounds(new Rectangle(10, ypos, 200, height));
+ viewerLabel.setBounds(new Rectangle(10, ypos, 220, height));
structureTab.add(viewerLabel);
+ /*
+ * add all external viewers as options here - check
+ * when selected whether the program is installed
+ */
structViewer.setFont(LABEL_FONT);
- structViewer.setBounds(new Rectangle(160, ypos, 120, height));
+ structViewer.setBounds(new Rectangle(190, ypos, 120, height));
structViewer.addItem(ViewerType.JMOL.name());
structViewer.addItem(ViewerType.CHIMERA.name());
+ structViewer.addItem(ViewerType.CHIMERAX.name());
+ structViewer.addItem(ViewerType.PYMOL.name());
structViewer.addActionListener(new ActionListener()
{
@Override
structureTab.add(structViewer);
ypos += lineSpacing;
- JLabel pathLabel = new JLabel();
- pathLabel.setFont(new java.awt.Font("SansSerif", 0, 11));
- pathLabel.setHorizontalAlignment(SwingConstants.LEFT);
- pathLabel.setText(MessageManager.getString("label.chimera_path"));
- pathLabel.setBounds(new Rectangle(10, ypos, 140, height));
- structureTab.add(pathLabel);
-
- chimeraPath.setFont(LABEL_FONT);
- chimeraPath.setText("");
+ structureViewerPathLabel = new JLabel();
+ structureViewerPathLabel.setFont(LABEL_FONT);// new Font("SansSerif", 0, 11));
+ structureViewerPathLabel.setHorizontalAlignment(SwingConstants.LEFT);
+ structureViewerPathLabel.setText(MessageManager
+ .formatMessage("label.viewer_path", "Chimera(X)"));
+ structureViewerPathLabel.setBounds(new Rectangle(10, ypos, 170, height));
+ structureViewerPathLabel.setEnabled(false);
+ structureTab.add(structureViewerPathLabel);
+
+ structureViewerPath.setFont(LABEL_FONT);
+ structureViewerPath.setText("");
+ structureViewerPath.setEnabled(false);
final String tooltip = JvSwingUtils.wrapTooltip(true,
- MessageManager.getString("label.chimera_path_tip"));
- chimeraPath.setToolTipText(tooltip);
- chimeraPath.setBounds(new Rectangle(160, ypos, 300, height));
- chimeraPath.addMouseListener(new MouseAdapter()
+ MessageManager.getString("label.viewer_path_tip"));
+ structureViewerPath.setToolTipText(tooltip);
+ structureViewerPath.setBounds(new Rectangle(190, ypos, 290, height));
+ structureViewerPath.addMouseListener(new MouseAdapter()
{
@Override
public void mouseClicked(MouseEvent e)
{
- if (e.getClickCount() == 2)
+ if (structureViewerPath.isEnabled() && e.getClickCount() == 2)
{
String chosen = openFileChooser();
if (chosen != null)
{
- chimeraPath.setText(chosen);
+ structureViewerPath.setText(chosen);
}
}
}
});
- structureTab.add(chimeraPath);
+ structureTab.add(structureViewerPath);
ypos += lineSpacing;
nwMapping.setFont(LABEL_FONT);
MessageManager.getString("label.mapping_method"));
mmTitledBorder.setTitleFont(LABEL_FONT);
mappingPanel.setBorder(mmTitledBorder);
- mappingPanel.setBounds(new Rectangle(10, ypos, 452, 45));
+ mappingPanel.setBounds(new Rectangle(10, ypos, 472, 45));
// GridLayout mappingLayout = new GridLayout();
mappingPanel.setLayout(new GridLayout());
mappingPanel.add(nwMapping);
ypos += lineSpacing;
FTSDataColumnPreferences docFieldPref = new FTSDataColumnPreferences(
PreferenceSource.PREFERENCES, PDBFTSRestClient.getInstance());
- docFieldPref.setBounds(new Rectangle(10, ypos, 450, 120));
+ docFieldPref.setBounds(new Rectangle(10, ypos, 470, 120));
structureTab.add(docFieldPref);
/*
*/
if (Platform.isJS())
{
- pathLabel.setVisible(false);
- chimeraPath.setVisible(false);
+ structureViewerPathLabel.setVisible(false);
+ structureViewerPath.setVisible(false);
viewerLabel.setVisible(false);
structViewer.setVisible(false);
}
{
try
{
- i = Integer.parseInt((String) s.getValue());
+ i = ((Integer) s.getValue()).intValue();
} catch (Exception e)
{
Cache.log.error(
{
max = def;
}
+ if (def < min)
+ {
+ def = min;
+ }
SpinnerModel sModel = new SpinnerNumberModel(def, min, max, 1);
s.setModel(sModel);