X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fjbgui%2FGPreferences.java;h=b40380a6189852ab415b70e6ec36f27383c4e60e;hb=a934d28336923f2966aeac29f7d1a877e5db1cec;hp=f2761dd1242d535f673a1a68d906d03fb22bbc12;hpb=42f4227ed213d422a87d3b22fc9e85d14ffaf53f;p=jalview.git diff --git a/src/jalview/jbgui/GPreferences.java b/src/jalview/jbgui/GPreferences.java index f2761dd..b40380a 100755 --- a/src/jalview/jbgui/GPreferences.java +++ b/src/jalview/jbgui/GPreferences.java @@ -20,21 +20,6 @@ */ 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; @@ -86,6 +71,22 @@ import javax.swing.event.ChangeListener; 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. * @@ -228,17 +229,35 @@ public class GPreferences extends JPanel 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 proxyPortTB = new JTextField(); + protected JTextField proxyPortHttpTB = new JTextField(); + + protected JTextField proxyServerHttpsTB = 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(); @@ -251,6 +270,10 @@ public class GPreferences extends JPanel */ protected JComboBox epsRendering = new JComboBox<>(); + protected JComboBox htmlRendering = new JComboBox<>(); + + protected JComboBox svgRendering = new JComboBox<>(); + protected JLabel userIdWidthlabel = new JLabel(); protected JCheckBox autoIdWidth = new JCheckBox(); @@ -377,8 +400,11 @@ public class GPreferences extends JPanel tabbedPane.add(initConnectionsTab(), MessageManager.getString("label.connections")); - tabbedPane.add(initBackupsTab(), - MessageManager.getString("label.backups")); + if (!Platform.isJS()) + { + tabbedPane.add(initBackupsTab(), + MessageManager.getString("label.backups")); + } tabbedPane.add(initLinksTab(), MessageManager.getString("label.urllinks")); @@ -392,8 +418,11 @@ public class GPreferences extends JPanel /* * See WsPreferences for the real work of configuring this tab. */ - wsTab.setLayout(new BorderLayout()); - tabbedPane.add(wsTab, MessageManager.getString("label.web_services")); + if (!Platform.isJS()) + { + wsTab.setLayout(new BorderLayout()); + tabbedPane.add(wsTab, MessageManager.getString("label.web_services")); + } /* * Handler to validate a tab before leaving it - currently only for @@ -451,7 +480,7 @@ public class GPreferences extends JPanel } /** - * Initialises the Output tabbed panel. + * Initialises the Output tab * * @return */ @@ -459,18 +488,35 @@ public class GPreferences extends JPanel { JPanel outputTab = new JPanel(); outputTab.setLayout(null); - JLabel epsLabel = new JLabel(); + + JLabel epsLabel = new JLabel( + MessageManager.formatMessage("label.rendering_style", "EPS")); epsLabel.setFont(LABEL_FONT); epsLabel.setHorizontalAlignment(SwingConstants.RIGHT); - epsLabel.setText(MessageManager.getString("label.eps_rendering_style")); - epsLabel.setBounds(new Rectangle(9, 31, 140, 24)); + epsLabel.setBounds(new Rectangle(9, 31, 160, 24)); epsRendering.setFont(LABEL_FONT); - epsRendering.setBounds(new Rectangle(154, 34, 187, 21)); + epsRendering.setBounds(new Rectangle(174, 34, 187, 21)); + JLabel htmlLabel = new JLabel( + MessageManager.formatMessage("label.rendering_style", "HTML")); + htmlLabel.setFont(LABEL_FONT); + htmlLabel.setHorizontalAlignment(SwingConstants.RIGHT); + htmlLabel.setBounds(new Rectangle(9, 55, 160, 24)); + htmlRendering.setFont(LABEL_FONT); + htmlRendering.setBounds(new Rectangle(174, 58, 187, 21)); + JLabel svgLabel = new JLabel( + MessageManager.formatMessage("label.rendering_style", "SVG")); + svgLabel.setFont(LABEL_FONT); + svgLabel.setHorizontalAlignment(SwingConstants.RIGHT); + svgLabel.setBounds(new Rectangle(9, 79, 160, 24)); + svgRendering.setFont(LABEL_FONT); + svgRendering.setBounds(new Rectangle(174, 82, 187, 21)); + JLabel jLabel1 = new JLabel(); jLabel1.setFont(LABEL_FONT); jLabel1.setHorizontalAlignment(SwingConstants.CENTER); jLabel1.setText(MessageManager.getString("label.append_start_end")); jLabel1.setFont(LABEL_FONT); + fastajv.setFont(LABEL_FONT); fastajv.setHorizontalAlignment(SwingConstants.LEFT); clustaljv.setText(MessageManager.getString("label.clustal") + " "); @@ -487,7 +533,7 @@ public class GPreferences extends JPanel TitledBorder titledBorder2 = new TitledBorder( MessageManager.getString("label.file_output")); jPanel11.setBorder(titledBorder2); - jPanel11.setBounds(new Rectangle(30, 72, 196, 182)); + jPanel11.setBounds(new Rectangle(30, 120, 196, 182)); GridLayout gridLayout3 = new GridLayout(); jPanel11.setLayout(gridLayout3); gridLayout3.setRows(8); @@ -506,7 +552,7 @@ public class GPreferences extends JPanel MessageManager.getString("label.automatically_set_id_width")); autoIdWidth.setToolTipText(JvSwingUtils.wrapTooltip(true, MessageManager .getString("label.adjusts_width_generated_eps_png"))); - autoIdWidth.setBounds(new Rectangle(228, 96, 188, 23)); + autoIdWidth.setBounds(new Rectangle(228, 144, 320, 23)); autoIdWidth.addActionListener(new ActionListener() { @@ -524,10 +570,10 @@ public class GPreferences extends JPanel userIdWidthlabel.setToolTipText( JvSwingUtils.wrapTooltip(true, MessageManager.getString( "label.manually_specify_width_left_column"))); - userIdWidthlabel.setBounds(new Rectangle(236, 120, 168, 23)); + userIdWidthlabel.setBounds(new Rectangle(236, 168, 320, 23)); userIdWidth.setFont(JvSwingUtils.getTextAreaFont()); userIdWidth.setText(""); - userIdWidth.setBounds(new Rectangle(232, 144, 84, 23)); + userIdWidth.setBounds(new Rectangle(232, 192, 84, 23)); userIdWidth.addActionListener(new ActionListener() { @@ -540,10 +586,10 @@ public class GPreferences extends JPanel modellerOutput.setFont(LABEL_FONT); modellerOutput .setText(MessageManager.getString("label.use_modeller_output")); - modellerOutput.setBounds(new Rectangle(228, 226, 168, 23)); + modellerOutput.setBounds(new Rectangle(228, 274, 320, 23)); embbedBioJSON.setFont(LABEL_FONT); embbedBioJSON.setText(MessageManager.getString("label.embbed_biojson")); - embbedBioJSON.setBounds(new Rectangle(228, 200, 250, 23)); + embbedBioJSON.setBounds(new Rectangle(228, 248, 250, 23)); jPanel11.add(jLabel1); jPanel11.add(blcjv); @@ -557,9 +603,19 @@ public class GPreferences extends JPanel outputTab.add(userIdWidth); outputTab.add(userIdWidthlabel); outputTab.add(modellerOutput); - outputTab.add(embbedBioJSON); - outputTab.add(epsLabel); - outputTab.add(epsRendering); + if (!Platform.isJS()) + { + /* + * JalviewJS doesn't support Lineart option or SVG output + */ + outputTab.add(embbedBioJSON); + outputTab.add(epsLabel); + outputTab.add(epsRendering); + outputTab.add(htmlLabel); + outputTab.add(htmlRendering); + outputTab.add(svgLabel); + outputTab.add(svgRendering); + } outputTab.add(jPanel11); return outputTab; } @@ -842,39 +898,145 @@ public class GPreferences extends JPanel 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")); 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, @@ -895,10 +1057,30 @@ public class GPreferences extends JPanel 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 */ @@ -1248,6 +1430,10 @@ public class GPreferences extends JPanel 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(190, ypos, 120, height)); structViewer.addItem(ViewerType.JMOL.name()); @@ -1270,7 +1456,7 @@ public class GPreferences extends JPanel structureViewerPathLabel.setFont(LABEL_FONT);// new Font("SansSerif", 0, 11)); structureViewerPathLabel.setHorizontalAlignment(SwingConstants.LEFT); structureViewerPathLabel.setText(MessageManager - .formatMessage("label.chimera_path", "Chimera(X)")); + .formatMessage("label.viewer_path", "Chimera(X)")); structureViewerPathLabel.setBounds(new Rectangle(10, ypos, 170, height)); structureViewerPathLabel.setEnabled(false); structureTab.add(structureViewerPathLabel); @@ -1279,7 +1465,7 @@ public class GPreferences extends JPanel structureViewerPath.setText(""); structureViewerPath.setEnabled(false); final String tooltip = JvSwingUtils.wrapTooltip(true, - MessageManager.getString("label.chimera_path_tip")); + MessageManager.getString("label.viewer_path_tip")); structureViewerPath.setToolTipText(tooltip); structureViewerPath.setBounds(new Rectangle(190, ypos, 290, height)); structureViewerPath.addMouseListener(new MouseAdapter() @@ -1326,6 +1512,17 @@ public class GPreferences extends JPanel docFieldPref.setBounds(new Rectangle(10, ypos, 470, 120)); structureTab.add(docFieldPref); + /* + * hide Chimera options in JalviewJS + */ + if (Platform.isJS()) + { + structureViewerPathLabel.setVisible(false); + structureViewerPath.setVisible(false); + viewerLabel.setVisible(false); + structViewer.setVisible(false); + } + return structureTab; } @@ -1702,6 +1899,13 @@ public class GPreferences extends JPanel visualTab.add(fontNameCB); visualTab.add(fontSizeCB); visualTab.add(fontStyleCB); + + if (Platform.isJS()) + { + startupCheckbox.setVisible(false); + startupFileTextfield.setVisible(false); + } + return visualTab; } @@ -1714,7 +1918,7 @@ public class GPreferences extends JPanel BackupFilesPresetEntry savedPreset = BackupFilesPresetEntry .getSavedBackupEntry(); enableBackupFiles - .setSelected(Cache.getDefault(BackupFiles.ENABLED, true)); + .setSelected(Cache.getDefault(BackupFiles.ENABLED, !Platform.isJS())); BackupFilesPresetEntry backupfilesCustomEntry = BackupFilesPresetEntry .createBackupFilesPresetEntry(Cache @@ -2763,13 +2967,17 @@ public class GPreferences extends JPanel } - 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); } /**