Java tutorial
/* Copyright 2006 VPAC * * This file is part of grix. * Grix is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * any later version. * Grix is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with Grix; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ package org.vpac.grix.view.swing; import grisu.jcommons.dependencies.BouncyCastleTool; import grisu.jcommons.dependencies.DependencyManager; import grisu.jcommons.utils.DefaultGridSecurityProvider; import grisu.jcommons.utils.JythonHelpers; import grisu.jcommons.utils.Version; import grith.jgrith.utils.CertificateFiles; import grith.jgrith.utils.CredentialHelpers; import grith.jgrith.utils.VomsesFiles; import grith.jgrith.view.swing.ProxyInitListener; import grith.jgrith.view.swing.proxyInit.GenericProxyCreationPanel; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Event; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Point; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.io.IOException; import java.text.DateFormat; import java.util.Calendar; import java.util.Date; import java.util.ResourceBundle; import javax.swing.ImageIcon; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTabbedPane; import javax.swing.KeyStroke; import javax.swing.SwingConstants; import javax.swing.SwingUtilities; import javax.swing.UIManager; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.globus.common.CoGProperties; import org.globus.gsi.GlobusCredential; import org.vpac.common.model.GlobusLocations; import org.vpac.common.model.gridproxy.GlobusProxy; import org.vpac.common.model.gridproxy.GridProxy; import org.vpac.common.model.gridproxy.LocalProxy; import org.vpac.common.view.swing.gridproxy.GridProxyStatusPanel; import org.vpac.common.view.swing.messagePanel.MessagePanel; import org.vpac.common.view.swing.messagePanel.SimpleMessagePanel; import org.vpac.grix.control.utils.DateHelper; import org.vpac.grix.control.utils.GrixProperty; import org.vpac.grix.control.utils.UserProperty; import org.vpac.grix.model.certificate.Certificate; import org.vpac.grix.view.swing.certificate.CertificateEvent; import org.vpac.grix.view.swing.certificate.CertificatePanel; import org.vpac.grix.view.swing.certificate.CertificateStatusListener; import org.vpac.grix.view.swing.common.GridProxyDialog; import org.vpac.grix.view.swing.tools.OptionsDialog; import org.vpac.grix.view.swing.vomrs.VOPanelShlix; import org.vpac.voms.control.LocalVomses; import org.vpac.voms.model.proxy.NoVomsProxyException; import org.vpac.voms.model.proxy.VomsProxy; public class Grix implements CertificateStatusListener, ProxyInitListener { public static final String GRIX_VERSION = "v" + Version.get("grix"); static final Logger myLogger = Logger.getLogger(Grix.class.getName()); private static ResourceBundle messages = ResourceBundle.getBundle("SwingViewMessagesBundle"); // @jve:decl-index=0: public static ResourceBundle getMessages() { return messages; } /** * @param args */ public static void main(String[] args) { DependencyManager.showDownloadDialog = true; // Map<Dependency, String> dependencies = new HashMap<Dependency, // String>(); // dependencies.put(Dependency.BOUNCYCASTLE, "jdk15-143"); // dependencies.put(Dependency.ARCSGSI, "1.1"); // DependencyManager.addDependencies(dependencies, // ArcsEnvironment.getArcsCommonJavaLibDirectory()); JythonHelpers.setJythonCachedir(); CoGProperties.getDefault().setProperty(CoGProperties.ENFORCE_SIGNING_POLICY, "false"); java.security.Security.addProvider(new DefaultGridSecurityProvider()); java.security.Security.setProperty("ssl.TrustManagerFactory.algorithm", "TrustAllCertificates"); System.setSecurityManager(null); try { BouncyCastleTool.initBouncyCastle(); } catch (ClassNotFoundException e1) { e1.printStackTrace(); } final SplashScreen screen = new SplashScreen(); screen.setVisible(true); try { CertificateFiles.copyCACerts(false); } catch (Exception e) { myLogger.error(e); } try { VomsesFiles.copyVomses(null); } catch (Exception e) { myLogger.error(e); } SwingUtilities.invokeLater(new Runnable() { public void run() { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); // UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); } catch (Exception e) { // try { // UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel"); // } catch (Exception e1) { // // TODO Auto-generated catch block // //e1.printStackTrace(); // } } try { // try whether the current proxy is a VomsProxy if (LocalProxy.getProxyFile().exists()) { try { VomsProxy vomsProxy = new VomsProxy(LocalProxy.getProxyFile()); LocalProxy.setDefaultProxy(vomsProxy); } catch (NoVomsProxyException e) { // TODO Auto-generated catch block // e.printStackTrace(); myLogger.debug(e); // thats ok, but make sure that there is a // LocalProxy.getDefaultProxy() object LocalProxy.setDefaultProxy(new GlobusProxy(LocalProxy.getProxyFile())); } } else { LocalProxy.setDefaultProxy(new GlobusProxy(LocalProxy.getProxyFile())); } } catch (IOException ioe) { myLogger.error(ioe); // ioe.printStackTrace(); } try { Grix application = new Grix(); application.initIcons(); application.getJFrame().setVisible(true); screen.dispose(); if (LocalProxy.getDefaultProxy().getStatus() == GridProxy.INITIALIZED) { LocalVomses.getLocalVomses().getVomses(); } LocalProxy.addStatusListener(LocalVomses.getLocalVomses()); if (GlobusLocations.defaultLocations().getUserCert().exists() && GlobusLocations.defaultLocations().getUserKey().exists() && !LocalProxy.getDefaultProxy().isValid() && "yes".equals(UserProperty.getProperty("CREATE_PROXY_AT_STARTUP"))) { // display proxy window application.getGridProxyDialog().setVisible(true); } } catch (Exception e) { JOptionPane.showMessageDialog(null, "Could not start Grix: " + e.getLocalizedMessage(), "Startup error", JOptionPane.ERROR_MESSAGE); System.exit(1); } } }); } private JFrame jFrame = null; // @jve:decl-index=0:visual-constraint="0,51" private JPanel jContentPane = null; private JMenuBar jJMenuBar = null; private JMenu fileMenu = null; private JMenu toolsMenu = null; private JMenu helpMenu = null; private JMenuItem exitMenuItem = null; private JMenuItem aboutMenuItem = null; private JMenuItem cutMenuItem = null; private JMenuItem copyMenuItem = null; private JMenuItem pasteMenuItem = null; private JMenuItem saveMenuItem = null; private JMenuItem optionsMenuItem = null; private JDialog aboutDialog = null; // @jve:decl-index=0:visual-constraint="954,106" private JPanel aboutContentPane = null; private JLabel aboutVersionLabel = null; private JTabbedPane jTabbedPane = null; private CertificatePanel certificatePanel = null; private JPanel vomrsPanel = null; private GenericProxyCreationPanel authenticationPanel = null; private GridProxyDialog gridProxyDialog = null; private JDialog optionsDialog = null; private JPanel gridProxyStatusPanel = null; private Color base_color = null; private Color lighter_color = null; private ImageIcon redLight = null; private ImageIcon yellowLight = null; // private ProxyPanel getProxyPanel() { // if (proxyPanel == null) { // proxyPanel = new ProxyPanel(); // } // return proxyPanel; // } // // private VomsProxyPanelHolder getLocalGridProxyPanel() { // if (vomsProxyPanel == null) { // vomsProxyPanel = new VomsProxyPanelHolder(); // } // return vomsProxyPanel; // } private ImageIcon greenLight = null; // @jve:decl-index=0: // private JPanel getSlcsPanel() { // if (slcsPanel == null ) { // // // try { // slcsPanel = new SlcsPanel(); // // } catch (ShibbolethException e) { // // slcsPanel = new SimpleMessagePanel(messages // // .getString("error.details") // // + "<p>" + e.getStackTrace() + "</p>", Color.white); // // } // // } // return slcsPanel; // } // private JPanel getAuthToolPanel() { // if ( authToolPanel == null ) { // authToolPanel = new AuthToolPanel(); // } // return authToolPanel; // } private ImageIcon greyLight = null; // @jve:decl-index=0: /** * This method initializes aboutContentPane * * @return javax.swing.JPanel */ private JPanel getAboutContentPane() { if (aboutContentPane == null) { aboutContentPane = new JPanel(); aboutContentPane.setLayout(new BorderLayout()); aboutContentPane.setPreferredSize(new Dimension(300, 300)); // aboutContentPane.add(getAboutVersionLabel(), // BorderLayout.CENTER); try { aboutContentPane.add(new SimpleMessagePanel(MessagePanel.getHTMLDocument("about"), Color.white), BorderLayout.CENTER); } catch (Exception e) { // TODO Auto-generated catch block // e.printStackTrace(); myLogger.error(e); aboutContentPane.add(getAboutVersionLabel(), BorderLayout.CENTER); } } return aboutContentPane; } /** * This method initializes aboutDialog * * @return javax.swing.JDialog */ private JDialog getAboutDialog() { if (aboutDialog == null) { aboutDialog = new JDialog(getJFrame(), true); aboutDialog.setTitle("About"); aboutDialog.setSize(new Dimension(402, 365)); aboutDialog.setContentPane(getAboutContentPane()); } return aboutDialog; } /** * This method initializes jMenuItem * * @return javax.swing.JMenuItem */ private JMenuItem getAboutMenuItem() { if (aboutMenuItem == null) { aboutMenuItem = new JMenuItem(); aboutMenuItem.setText("About"); aboutMenuItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JDialog aboutDialog = getAboutDialog(); aboutDialog.pack(); Point loc = getJFrame().getLocation(); loc.translate(20, 20); aboutDialog.setLocation(loc); aboutDialog.setVisible(true); } }); } return aboutMenuItem; } /** * This method initializes aboutVersionLabel * * @return javax.swing.JLabel */ private JLabel getAboutVersionLabel() { if (aboutVersionLabel == null) { aboutVersionLabel = new JLabel(); aboutVersionLabel.setText("Grix " + GRIX_VERSION); aboutVersionLabel.setHorizontalAlignment(SwingConstants.CENTER); } return aboutVersionLabel; } private GenericProxyCreationPanel getAuthenticationPanel() { if (authenticationPanel == null) { boolean useShib = true; String disableShib = GrixProperty.getString("disable.shibboleth"); if ("yes".equals(disableShib)) { useShib = false; } String shibUrl = System.getProperty("SHIB_URL"); if (StringUtils.isBlank(shibUrl)) { shibUrl = GrixProperty.getString("shib.url"); } authenticationPanel = new GenericProxyCreationPanel(useShib, true, true, true, shibUrl); } return authenticationPanel; } public Color getBaseColor() { if (base_color == null) { base_color = getJContentPane().getBackground(); } return base_color; } /** * This method initializes certificatePanel * * @return javax.swing.JPanel */ private CertificatePanel getCertificatePanel() { if (certificatePanel == null) { certificatePanel = new CertificatePanel(this); // certificatePanel.setLayout(new GridBagLayout()); } return certificatePanel; } /** * This method initializes jMenuItem * * @return javax.swing.JMenuItem */ private JMenuItem getCopyMenuItem() { if (copyMenuItem == null) { copyMenuItem = new JMenuItem(); copyMenuItem.setText("Copy"); copyMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, Event.CTRL_MASK, true)); } return copyMenuItem; } /** * This method initializes jMenuItem * * @return javax.swing.JMenuItem */ private JMenuItem getCutMenuItem() { if (cutMenuItem == null) { cutMenuItem = new JMenuItem(); cutMenuItem.setText("Cut"); cutMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, Event.CTRL_MASK, true)); } return cutMenuItem; } /** * This method initializes jMenuItem * * @return javax.swing.JMenuItem */ private JMenuItem getExitMenuItem() { if (exitMenuItem == null) { exitMenuItem = new JMenuItem(); exitMenuItem.setText("Exit"); exitMenuItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); } return exitMenuItem; } /** * This method initializes jMenu * * @return javax.swing.JMenu */ private JMenu getFileMenu() { if (fileMenu == null) { fileMenu = new JMenu(); fileMenu.setText("File"); // fileMenu.add(getSaveMenuItem()); fileMenu.add(getExitMenuItem()); } return fileMenu; } private GridProxyDialog getGridProxyDialog() { if (gridProxyDialog == null) { gridProxyDialog = new GridProxyDialog(this.getJFrame()); // gridProxyDialog.setLayout(new BorderLayout()); } return gridProxyDialog; } /** * This method initializes gridProxyStatusPanel * * @return javax.swing.JPanel */ private JPanel getGridProxyStatusPanel() { if (gridProxyStatusPanel == null) { gridProxyStatusPanel = new GridProxyStatusPanel(); gridProxyStatusPanel.setBackground(getBaseColor()); } return gridProxyStatusPanel; } // /** // * This method initializes jMenuItem // * // * @return javax.swing.JMenuItem // */ // private JMenuItem getGridProxyMenuItem() { // if (gridProxyMenuItem == null) { // gridProxyMenuItem = new JMenuItem(); // gridProxyMenuItem.setText("Grid proxy"); // gridProxyMenuItem // .addActionListener(new java.awt.event.ActionListener() { // public void actionPerformed(java.awt.event.ActionEvent e) { // getGridProxyDialog().setVisible(true); // } // }); // } // return gridProxyMenuItem; // } /** * This method initializes jMenu * * @return javax.swing.JMenu */ private JMenu getHelpMenu() { if (helpMenu == null) { helpMenu = new JMenu(); helpMenu.setText("Help"); helpMenu.add(getAboutMenuItem()); } return helpMenu; } /** * This method initializes jContentPane * * @return javax.swing.JPanel */ private JPanel getJContentPane() { if (jContentPane == null) { GridBagConstraints gridBagConstraints1 = new GridBagConstraints(); gridBagConstraints1.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints1.weightx = 1.0; gridBagConstraints1.gridx = 0; GridBagConstraints gridBagConstraints = new GridBagConstraints(); gridBagConstraints.fill = GridBagConstraints.BOTH; gridBagConstraints.gridy = 1; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; gridBagConstraints.gridx = 0; jContentPane = new JPanel(); jContentPane.setLayout(new GridBagLayout()); jContentPane.add(getJTabbedPane(), gridBagConstraints); if ("top".equals(UserProperty.getProperty("SHOW_GRID_PROXY_STATUS_PANEL"))) { gridBagConstraints1.gridy = 0; jContentPane.add(getGridProxyStatusPanel(), gridBagConstraints1); } else if ("bottom".equals(UserProperty.getProperty("SHOW_GRID_PROXY_STATUS_PANEL"))) { gridBagConstraints1.gridy = 2; jContentPane.add(getGridProxyStatusPanel(), gridBagConstraints1); } } return jContentPane; } /** * This method initializes jFrame * * @return javax.swing.JFrame */ private JFrame getJFrame() { if (jFrame == null) { jFrame = new JFrame(); jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jFrame.setJMenuBar(getJJMenuBar()); jFrame.setSize(764, 730); jFrame.setContentPane(getJContentPane()); jFrame.setTitle("Grix " + GRIX_VERSION); } return jFrame; } /** * This method initializes jJMenuBar * * @return javax.swing.JMenuBar */ private JMenuBar getJJMenuBar() { if (jJMenuBar == null) { jJMenuBar = new JMenuBar(); jJMenuBar.add(getFileMenu()); // jJMenuBar.add(getToolsMenu()); jJMenuBar.add(getHelpMenu()); } return jJMenuBar; } /** * This method initializes jTabbedPane * * @return javax.swing.JTabbedPane */ private JTabbedPane getJTabbedPane() { if (jTabbedPane == null) { jTabbedPane = new JTabbedPane(); jTabbedPane.setTabPlacement(JTabbedPane.TOP); jTabbedPane.addTab("Authentication", getAuthenticationPanel()); jTabbedPane.addTab("Certificate", getCertificatePanel()); getAuthenticationPanel().addProxyListener(this); jTabbedPane.addTab("Group Membership", null, getVomrsPanel(), null); if ((GlobusLocations.defaultLocations().getUserCert().exists() && GlobusLocations.defaultLocations().getUserKey().exists()) // better not ||LocalProxy.getDefaultProxy().isValid() ) { // if cert expired or is expiring try { Certificate cert = new Certificate(GlobusLocations.defaultLocations().getUserCert()); DateFormat df = DateHelper.getDateFormat(); Date enddate = df.parse(cert.getEnddate()); if (enddate.before(new Date())) { jTabbedPane.setIconAt(0, redLight); } else { Calendar rightNow = Calendar.getInstance(); rightNow.add(Calendar.MONTH, 1); Date inOneMonth = rightNow.getTime(); if (enddate.before(inOneMonth)) { jTabbedPane.setIconAt(0, yellowLight); } } } catch (Exception e) { // do nothing e.printStackTrace(); } // jTabbedPane.setEnabledAt(jTabbedPane.indexOfTab("VOs"), // true); // jTabbedPane.setEnabledAt(jTabbedPane.indexOfTab("LocalProxy"), // true); // jTabbedPane.setEnabledAt(jTabbedPane.indexOfTab("MyProxy"), // true); if ("Authentication".equals(UserProperty.getProperty("TAB_AT_STARTUP"))) { jTabbedPane.setSelectedIndex(jTabbedPane.indexOfTab("MyProxy")); } else if ("VO".equals(UserProperty.getProperty("TAB_AT_STARTUP"))) { jTabbedPane.setSelectedIndex(jTabbedPane.indexOfTab("Group Membership")); } else { jTabbedPane.setSelectedIndex(jTabbedPane.indexOfTab("Authentication")); } // } else { // jTabbedPane.setEnabledAt(jTabbedPane.indexOfTab("VOs"), // false); // jTabbedPane.setEnabledAt(jTabbedPane.indexOfTab("LocalProxy"), // false); // jTabbedPane.setEnabledAt(jTabbedPane.indexOfTab("MyProxy"), // false); } } return jTabbedPane; } public Color getLighterColor() { if (lighter_color == null) { int red = getBaseColor().getRed() + 10; int green = getBaseColor().getGreen() + 10; int blue = getBaseColor().getBlue() + 10; lighter_color = new Color(red, green, blue); } return lighter_color; } private JDialog getOptionsDialog() { if (optionsDialog == null) { optionsDialog = new OptionsDialog(this.getJFrame()); } return optionsDialog; } /** * This method initializes jMenuItem * * @return javax.swing.JMenuItem */ private JMenuItem getOptionsMenuItem() { if (optionsMenuItem == null) { optionsMenuItem = new JMenuItem(); optionsMenuItem.setText("Preferences"); optionsMenuItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { getOptionsDialog().setVisible(true); } }); } return optionsMenuItem; } /** * This method initializes jMenuItem * * @return javax.swing.JMenuItem */ private JMenuItem getPasteMenuItem() { if (pasteMenuItem == null) { pasteMenuItem = new JMenuItem(); pasteMenuItem.setText("Paste"); pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, Event.CTRL_MASK, true)); } return pasteMenuItem; } // ===================================================================== // blinking light /** * This method initializes jMenuItem * * @return javax.swing.JMenuItem */ private JMenuItem getSaveMenuItem() { if (saveMenuItem == null) { saveMenuItem = new JMenuItem(); saveMenuItem.setText("Save"); saveMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, Event.CTRL_MASK, true)); } return saveMenuItem; } /** * This method initializes jMenu * * @return javax.swing.JMenu */ private JMenu getToolsMenu() { if (toolsMenu == null) { toolsMenu = new JMenu(); toolsMenu.setText("Tools"); toolsMenu.setActionCommand("Tools"); // toolsMenu.add(getGridProxyMenuItem()); toolsMenu.add(getOptionsMenuItem()); // toolsMenu.add(getCutMenuItem()); // toolsMenu.add(getCopyMenuItem()); // toolsMenu.add(getPasteMenuItem()); } return toolsMenu; } /** * This method initializes vomrsPanel * * @return javax.swing.JPanel */ private JPanel getVomrsPanel() { if (vomrsPanel == null) { try { vomrsPanel = new VOPanelShlix(); vomrsPanel.setEnabled(true); } catch (Exception e) { myLogger.error(e); // e.printStackTrace(); vomrsPanel = new SimpleMessagePanel( messages.getString("error.details") + "<p>" + e.getStackTrace() + "</p>", Color.white); } } return vomrsPanel; } public void initIcons() { redLight = new ImageIcon(getClass().getResource("/org/vpac/grix/images/redLight_small.png")); yellowLight = new ImageIcon(getClass().getResource("/org/vpac/grix/images/yellowLight_small.png")); greenLight = new ImageIcon(getClass().getResource("/org/vpac/grix/images/greenLight_small.png")); greyLight = new ImageIcon(getClass().getResource("/org/vpac/grix/images/greyLight_small.png")); } public void proxyCreated(GlobusCredential newProxy) { // LocalProxy.destroy(); myLogger.debug("Proxy created in authentication panel."); if (newProxy == null) { proxyDestroyed(); } else { try { CredentialHelpers.writeToDisk(newProxy, LocalProxy.getProxyFile()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); return; } LocalProxy.getDefaultProxy().checkStatus(); } } public void proxyDestroyed() { myLogger.debug("Proxy destroyed"); LocalProxy.destroy(); } public void statusChanged(CertificateEvent event) { // try { // if (CertificatePanel.CERT_PRESENT_EXPORTED // .equals(event.getStatus()) // || CertificatePanel.CERT_PRESENT_NOT_EXPORTED.equals(event // .getStatus()) // || CertificatePanel.RENEW_READY_ON_CA_SERVER.equals(event // .getStatus()) // || CertificatePanel.RENEW_REQUEST_CREATED.equals(event // .getStatus()) // || CertificatePanel.RENEW_REQUESTED.equals(event // .getStatus()) // || CertificatePanel.RENEW_REQUEST_CREATED.equals(event.getStatus()) // || CertificatePanel.CERT_EXPIRING.equals(event.getStatus()) // ) { // if ( CertificatePanel.CERT_EXPIRING.equals(event.getStatus()) ) { // getJTabbedPane().setIconAt(0, yellowLight); // } else { // getJTabbedPane().setIconAt(0, greenLight); // } // getJTabbedPane().setEnabledAt(jTabbedPane.indexOfTab("VOs"), true); // getJTabbedPane().setEnabledAt(jTabbedPane.indexOfTab("LocalProxy"), // true); // getJTabbedPane().setEnabledAt(jTabbedPane.indexOfTab("MyProxy"), // true); // }else { // // if ( CertificatePanel.CERT_EXPIRED.equals(event.getStatus()) ) { // getJTabbedPane().setIconAt(0, redLight); // } else { // getJTabbedPane().setIconAt(0, yellowLight); // } // // getJTabbedPane().setEnabledAt(jTabbedPane.indexOfTab("VOs"), false); // getJTabbedPane().setEnabledAt(jTabbedPane.indexOfTab("LocalProxy"), // false); // getJTabbedPane().setEnabledAt(jTabbedPane.indexOfTab("MyProxy"), // false); // } // } catch (IndexOutOfBoundsException ioobe) { // // never mind // // ioobe.printStackTrace(); // } } }