*/
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 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;
+
/**
* Base class for the Preferences panel.
*
protected JButton userOnly = new JButton();
+ protected JLabel httpLabel = new JLabel();
+
+ protected JLabel httpsLabel = new JLabel();
+
protected JLabel portLabel = new JLabel();
protected JLabel serverLabel = new JLabel();
- protected JTextField proxyServerTB = new JTextField();
+ protected JLabel portLabel2 = new JLabel();
+
+ protected JLabel serverLabel2 = new JLabel();
+
+ protected JTextField proxyServerHttpTB = new JTextField();
+
+ protected JTextField proxyPortHttpTB = new JTextField();
+
+ protected JTextField proxyServerHttpsTB = new JTextField();
- protected JTextField proxyPortTB = new JTextField();
+ protected JTextField proxyPortHttpsTB = new JTextField();
protected JTextField defaultBrowser = new JTextField();
- protected JCheckBox useProxy = new JCheckBox();
+ protected ButtonGroup proxyType = new ButtonGroup();
+
+ protected JRadioButton noProxy = new JRadioButton();
+
+ protected JRadioButton systemProxy = new JRadioButton();
+
+ protected JRadioButton customProxy = new JRadioButton();
protected JCheckBox usagestats = new JCheckBox();
private JPanel initConnTabProxyPanel()
{
// Label for server text box
- serverLabel.setText(MessageManager.getString("label.address"));
+ serverLabel.setText(MessageManager.getString("label.host") + ": ");
serverLabel.setHorizontalAlignment(SwingConstants.RIGHT);
serverLabel.setFont(LABEL_FONT);
+ serverLabel2.setText(MessageManager.getString("label.host") + ": ");
+ serverLabel2.setHorizontalAlignment(SwingConstants.RIGHT);
+ serverLabel2.setFont(LABEL_FONT);
// Proxy server and port text boxes
- proxyServerTB.setFont(LABEL_FONT);
- proxyPortTB.setFont(LABEL_FONT);
+ proxyServerHttpTB.setFont(LABEL_FONT);
+ proxyServerHttpTB.setColumns(40);
+ proxyPortHttpTB.setFont(LABEL_FONT);
+ proxyPortHttpTB.setColumns(4);
+ proxyServerHttpsTB.setFont(LABEL_FONT);
+ proxyServerHttpsTB.setColumns(40);
+ proxyPortHttpsTB.setFont(LABEL_FONT);
+ proxyPortHttpsTB.setColumns(4);
// Label for Port text box
portLabel.setFont(LABEL_FONT);
portLabel.setHorizontalAlignment(SwingConstants.RIGHT);
- portLabel.setText(MessageManager.getString("label.port"));
-
- // Use proxy server checkbox
- useProxy.setFont(LABEL_FONT);
- useProxy.setHorizontalAlignment(SwingConstants.RIGHT);
- useProxy.setHorizontalTextPosition(SwingConstants.LEADING);
- useProxy.setText(MessageManager.getString("label.use_proxy_server"));
- useProxy.addActionListener(new ActionListener()
+ portLabel.setText(MessageManager.getString("label.port") + ": ");
+ portLabel2.setFont(LABEL_FONT);
+ portLabel2.setHorizontalAlignment(SwingConstants.RIGHT);
+ portLabel2.setText(MessageManager.getString("label.port") + ": ");
+
+ httpLabel.setText("HTTP");
+ httpLabel.setFont(LABEL_FONT_BOLD);
+ httpLabel.setHorizontalAlignment(SwingConstants.LEFT);
+ httpsLabel.setText("HTTPS");
+ httpsLabel.setFont(LABEL_FONT_BOLD);
+ httpsLabel.setHorizontalAlignment(SwingConstants.LEFT);
+
+ // Proxy type radio buttons
+ noProxy.setFont(LABEL_FONT);
+ noProxy.setHorizontalAlignment(SwingConstants.LEFT);
+ // noProxy.setHorizontalTextPosition(SwingConstants.LEADING);
+ noProxy.setText(MessageManager.getString("label.no_proxy"));
+ systemProxy.setFont(LABEL_FONT);
+ systemProxy.setHorizontalAlignment(SwingConstants.LEFT);
+ // systemProxy.setHorizontalTextPosition(SwingConstants.LEADING);
+ systemProxy.setText(MessageManager.formatMessage("label.system_proxy",
+ displayHostPort(Cache.startupProxyProperties[0],
+ Cache.startupProxyProperties[1]),
+ displayHostPort(Cache.startupProxyProperties[2],
+ Cache.startupProxyProperties[3])));
+ customProxy.setFont(LABEL_FONT);
+ customProxy.setHorizontalAlignment(SwingConstants.LEFT);
+ // customProxy.setHorizontalTextPosition(SwingConstants.LEADING);
+ customProxy.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
- useProxy_actionPerformed();
+ customProxy_actionPerformed();
}
});
+ customProxy.setText(
+ MessageManager.getString("label.use_proxy_server") + ":");
+ proxyType.add(noProxy);
+ proxyType.add(systemProxy);
+ proxyType.add(customProxy);
// Make proxy server panel
JPanel proxyPanel = new JPanel();
TitledBorder titledBorder1 = new TitledBorder(
- MessageManager.getString("label.proxy_server"));
+ MessageManager.getString("label.proxy_servers"));
proxyPanel.setBorder(titledBorder1);
+ GridBagConstraints gbc = new GridBagConstraints();
proxyPanel.setLayout(new GridBagLayout());
+
+ gbc.gridx = 0;
+ gbc.gridy = 0;
+ gbc.weightx = 1.0;
+ gbc.gridheight = 1;
+ gbc.anchor = GridBagConstraints.WEST;
+ gbc.fill = GridBagConstraints.BOTH;
+
+ gbc.gridwidth = 5;
+ proxyPanel.add(noProxy, gbc);
+
+ gbc.gridy++;
+ proxyPanel.add(systemProxy, gbc);
+
+ gbc.gridy++;
+ proxyPanel.add(customProxy, gbc);
+
+ gbc.gridwidth = 1;
+ gbc.gridy++;
+ gbc.gridx = 0;
+ gbc.weightx = 0.1;
+ proxyPanel.add(httpLabel, gbc);
+
+ gbc.gridx++;
+ gbc.anchor = GridBagConstraints.EAST;
+ gbc.weightx = 0.15;
+ proxyPanel.add(serverLabel, gbc);
+
+ gbc.gridx++;
+ gbc.anchor = GridBagConstraints.WEST;
+ gbc.weightx = 0.5;
+ proxyPanel.add(proxyServerHttpTB, gbc);
+
+ gbc.gridx++;
+ gbc.anchor = GridBagConstraints.EAST;
+ gbc.weightx = 0.15;
+ proxyPanel.add(portLabel, gbc);
+
+ gbc.gridx++;
+ gbc.anchor = GridBagConstraints.WEST;
+ gbc.weightx = 0.1;
+ proxyPanel.add(proxyPortHttpTB, gbc);
+
+ gbc.gridy++;
+ gbc.gridx = 0;
+ gbc.anchor = GridBagConstraints.WEST;
+ gbc.weightx = 0.1;
+ proxyPanel.add(httpsLabel, gbc);
+
+ gbc.gridx++;
+ gbc.anchor = GridBagConstraints.EAST;
+ gbc.weightx = 0.15;
+ proxyPanel.add(serverLabel2, gbc);
+
+ gbc.gridx++;
+ gbc.anchor = GridBagConstraints.WEST;
+ gbc.weightx = 0.5;
+ proxyPanel.add(proxyServerHttpsTB, gbc);
+
+ gbc.gridx++;
+ gbc.anchor = GridBagConstraints.EAST;
+ gbc.weightx = 0.15;
+ proxyPanel.add(portLabel2, gbc);
+
+ gbc.gridx++;
+ gbc.anchor = GridBagConstraints.WEST;
+ gbc.weightx = 0.1;
+ proxyPanel.add(proxyPortHttpsTB, gbc);
+
+ /*
proxyPanel.add(serverLabel,
new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0,
GridBagConstraints.WEST, GridBagConstraints.NONE,
new GridBagConstraints(1, 1, 1, 1, 1.0, 0.0,
GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL,
new Insets(0, 2, 2, 0), 263, 1));
+ */
return proxyPanel;
}
+ private String displayHostPort(String host, String port)
+ {
+ boolean hostBlank = (host == null || host.isEmpty());
+ boolean portBlank = (port == null || port.isEmpty());
+ if (hostBlank && portBlank)
+ {
+ return MessageManager.getString("label.none");
+ }
+
+ StringBuilder sb = new StringBuilder();
+ sb.append(hostBlank ? "" : host);
+ if (!portBlank)
+ {
+ sb.append(":");
+ sb.append(port);
+ }
+ return sb.toString();
+ }
+
/**
* Initialises the checkboxes in the Connections tab
*/
}
});
-
// enable checkbox 1 col
gbc.gridwidth = 1;
gbc.gridheight = 1;
presetsComboLabel = new JLabel(title + ":");
presetsPanel.add(presetsComboLabel, gbc);
- List<Object> entries = Arrays
- .asList((Object[]) BackupFilesPresetEntry.backupfilesPresetEntries);
+ List<Object> entries = Arrays.asList(
+ (Object[]) BackupFilesPresetEntry.backupfilesPresetEntries);
List<String> tooltips = Arrays.asList(
BackupFilesPresetEntry.backupfilesPresetEntryDescriptions);
backupfilesPresetsCombo = JvSwingUtils.buildComboWithTooltips(entries,
{
if (customiseCheckbox.isSelected())
{
- // got here by clicking on customiseCheckbox so don't change the values
+ // got here by clicking on customiseCheckbox so don't change the
+ // values
backupfilesCustomOptionsSetEnabled();
}
else
private JPanel initBackupsTabFilenameExamplesPanel()
{
- String title = MessageManager
- .getString("label.scheme_examples");
+ String title = MessageManager.getString("label.scheme_examples");
TitledBorder tb = new TitledBorder(title);
exampleFilesPanel.setBorder(tb);
exampleFilesPanel.setLayout(new GridBagLayout());
-
backupfilesExampleLabel.setEditable(false);
backupfilesExampleLabel
.setBackground(exampleFilesPanel.getBackground());
}
protected void setComboIntStringKey(
- JComboBox<Object> backupfilesPresetsCombo2,
- int key)
+ JComboBox<Object> backupfilesPresetsCombo2, int key)
{
for (int i = 0; i < backupfilesPresetsCombo2.getItemCount(); i++)
{
JPanel jp = new JPanel();
jp.setLayout(new FlowLayout());
- oldBackupFilesLabel
- .setText(MessageManager
- .getString("label.autodelete_old_backup_files"));
+ oldBackupFilesLabel.setText(
+ MessageManager.getString("label.autodelete_old_backup_files"));
oldBackupFilesLabel.setFont(LABEL_FONT);
oldBackupFilesLabel.setHorizontalAlignment(SwingConstants.LEFT);
jp.add(oldBackupFilesLabel);
}
- // add some extra empty lines to pad out the example files box. ugh, please tell
+ // add some extra empty lines to pad out the example files box. ugh, please
+ // tell
// me how to do this better
int remainingLines = lowersurround + uppersurround + 1 - lineNumber;
if (remainingLines > 0)
{
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);
private void backupfilesKeepAllSetEnabled(boolean tryEnabled)
{
boolean enabled = tryEnabled && enableBackupFiles.isSelected()
- && customiseCheckbox.isSelected()
- && suffixTemplate.getText()
+ && customiseCheckbox.isSelected() && suffixTemplate.getText()
.indexOf(BackupFiles.NUM_PLACEHOLDER) > -1;
keepfilesPanel.setEnabled(enabled);
backupfilesKeepAll.setEnabled(enabled);
}
- public void useProxy_actionPerformed()
+ public void customProxy_actionPerformed()
{
- boolean enabled = useProxy.isSelected();
+ boolean enabled = customProxy.isSelected();
portLabel.setEnabled(enabled);
serverLabel.setEnabled(enabled);
- proxyServerTB.setEnabled(enabled);
- proxyPortTB.setEnabled(enabled);
+ httpLabel.setEnabled(enabled);
+ httpsLabel.setEnabled(enabled);
+ proxyServerHttpTB.setEnabled(enabled);
+ proxyPortHttpTB.setEnabled(enabled);
+ proxyServerHttpsTB.setEnabled(enabled);
+ proxyPortHttpsTB.setEnabled(enabled);
}
/**
}
}
-