/* * Copyright (C) 2008 Universidade Federal de Campina Grande * * This file is part of OurGrid. * * OurGrid is free software: you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License as published by the Free * Software Foundation, either version 3 of the License, or (at your option) * any later version. * * This program 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 Lesser General Public License * for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ package org.ourgrid.peer.ui.async.gui; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import javax.swing.JOptionPane; import org.ourgrid.common.ui.InputFieldsUI; import org.ourgrid.common.ui.gui.CommuneDetectionDelaySettingsPanel; import org.ourgrid.common.ui.gui.CommuneSettingsPanel; import org.ourgrid.peer.ui.async.client.PeerAsyncInitializer; import org.ourgrid.peer.ui.async.model.PeerAsyncUIModel; public class PeerConfigurationPanel extends javax.swing.JPanel implements InputFieldsUI { private static final long serialVersionUID = 1L; private PeerAsyncUIModel model; private CommuneDetectionDelaySettingsPanel fdPanel; private CACertificatePanel cACertificatePanel; private VomsAuthPanel vomsAuthPanel; private TagsPeerConfigurationPanel tagsPeerConfigurationPanel; /** Creates new form PeerConfigurationPanel */ public PeerConfigurationPanel(PeerAsyncUIModel model) { this.model = model; initComponents(); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. * @param model */ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { tabs = new javax.swing.JTabbedPane(); basicSettingsPanel = new javax.swing.JPanel(); basicPeerConfigurationPanel = new org.ourgrid.peer.ui.async.gui.BasicPeerConfigurationPanel(model); discoveryServiceSettingsPanel = new org.ourgrid.peer.ui.async.gui.DiscoveryServiceSettingsPanel(model); tagsPeerConfigurationPanel = new TagsPeerConfigurationPanel(model); communePanel = new CommuneSettingsPanel(model); fdPanel = new CommuneDetectionDelaySettingsPanel(model); cACertificatePanel = new CACertificatePanel(model); vomsAuthPanel = new VomsAuthPanel(model); advancedPeerSettingsPanel = new org.ourgrid.peer.ui.async.gui.AdvancedPeerSettingsPanel(model); // try { // logSettingsPanel = new org.ourgrid.common.ui.gui.LogSettingsPanel(model, component); // } catch (FileNotFoundException e1) { // JOptionPane.showMessageDialog(this, "Log properties file was not found, log settings panel will not be available.", "Warning", JOptionPane.WARNING_MESSAGE); // } catch (IOException e1) { // JOptionPane.showMessageDialog(this, "Error while loading log properties file, log settings panel will not be available.", "Warning", JOptionPane.WARNING_MESSAGE); // } restoreDefaultsButton = new javax.swing.JButton(); saveButton = new javax.swing.JButton(); basicPeerConfigurationPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Basic settings")); discoveryServiceSettingsPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Discovery Service settings")); org.jdesktop.layout.GroupLayout basicSettingsPanelLayout = new org.jdesktop.layout.GroupLayout(basicSettingsPanel); basicSettingsPanel.setLayout(basicSettingsPanelLayout); basicSettingsPanelLayout.setHorizontalGroup( basicSettingsPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(basicSettingsPanelLayout.createSequentialGroup() .addContainerGap() .add(basicSettingsPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(org.jdesktop.layout.GroupLayout.TRAILING, discoveryServiceSettingsPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 762, Short.MAX_VALUE) .add(org.jdesktop.layout.GroupLayout.TRAILING, basicPeerConfigurationPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 762, Short.MAX_VALUE)) .addContainerGap()) ); basicSettingsPanelLayout.setVerticalGroup( basicSettingsPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(basicSettingsPanelLayout.createSequentialGroup() .addContainerGap() .add(basicPeerConfigurationPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(discoveryServiceSettingsPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 348, Short.MAX_VALUE) .addContainerGap()) ); tabs.addTab("Basic", basicSettingsPanel); tabs.addTab("Commune", communePanel); tabs.addTab("Failure Detection", fdPanel); tabs.addTab("Certification Authorities", cACertificatePanel); tabs.addTab("VOMS Authorization", vomsAuthPanel); advancedPeerSettingsPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Advanced peer settings")); tabs.addTab("Advanced", advancedPeerSettingsPanel); tabs.addTab("Tags Configuration", tagsPeerConfigurationPanel); if (logSettingsPanel != null) { logSettingsPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Logging settings")); logSettingsPanel.setPreferredSize(new java.awt.Dimension(200, 100)); tabs.addTab("Log", logSettingsPanel); } restoreDefaultsButton.setText("Restore defaults"); restoreDefaultsButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { restoreButtonActionPerformed(e); } }); saveButton.setText("Save"); saveButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { saveButtonActionPerformed(e); } }); org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .addContainerGap() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup() .add(saveButton) .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED) .add(restoreDefaultsButton) .addContainerGap()) .add(org.jdesktop.layout.GroupLayout.TRAILING, tabs, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 794, Short.MAX_VALUE))) ); layout.setVerticalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup() .addContainerGap() .add(tabs) .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(restoreDefaultsButton) .add(saveButton)) .addContainerGap()) ); }// </editor-fold>//GEN-END:initComponents // Variables declaration - do not modify//GEN-BEGIN:variables private org.ourgrid.peer.ui.async.gui.AdvancedPeerSettingsPanel advancedPeerSettingsPanel; private org.ourgrid.peer.ui.async.gui.BasicPeerConfigurationPanel basicPeerConfigurationPanel; private javax.swing.JPanel basicSettingsPanel; private CommuneSettingsPanel communePanel; private org.ourgrid.common.ui.gui.LogSettingsPanel logSettingsPanel; private org.ourgrid.peer.ui.async.gui.DiscoveryServiceSettingsPanel discoveryServiceSettingsPanel; private javax.swing.JButton restoreDefaultsButton; private javax.swing.JButton saveButton; private javax.swing.JTabbedPane tabs; // End of variables declaration//GEN-END:variables /** * Disable the editable components of the internal panels. */ public void disableFieldEdition() { advancedPeerSettingsPanel.disableFieldEdition(); basicPeerConfigurationPanel.disableFieldEdition(); communePanel.disableInput(); fdPanel.disableInput(); cACertificatePanel.disableInput(); discoveryServiceSettingsPanel.disableFieldEdition(); saveButton.setEnabled(false); restoreDefaultsButton.setEnabled(false); } /** * Enable the editable components of the internal panels. */ public void enableFieldEdition() { advancedPeerSettingsPanel.enableFieldEdition(); basicPeerConfigurationPanel.enableFieldEdition(); communePanel.enableInput(); fdPanel.enableInput(); cACertificatePanel.enableInput(); discoveryServiceSettingsPanel.enableFieldEdition(); saveButton.setEnabled(true); restoreDefaultsButton.setEnabled(true); } /** * Save the inputs of the internal panels. */ private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) { try { saveFieldInputs(); } catch (IOException e) { //TODO - What should be done here? } } private void restoreButtonActionPerformed(java.awt.event.ActionEvent evt) { try { PeerAsyncInitializer.getInstance().getComponentClient().restoreDefaultPropertiesValues(); this.initFields(); } catch (IOException e) { //TODO - What should be done here? } } /** * Save the current properties of the PeerAsyncComponentClient. * @see PeerAsyncUIModel.saveProperties */ private void saveProperties() { try { PeerAsyncInitializer.getInstance().getComponentClient().saveProperties(); } catch (IOException e) { JOptionPane.showMessageDialog(null, e.getMessage(), "IO Error" , JOptionPane.ERROR_MESSAGE); } finally { model.loadProperties(); } } /** * Initializes the textFields of the internal panels. */ public void initFields() throws IOException { basicPeerConfigurationPanel.initFields(); discoveryServiceSettingsPanel.initFields(); communePanel.initFields(); fdPanel.initFields(); cACertificatePanel.initFields(); vomsAuthPanel.initFields(); advancedPeerSettingsPanel.initFields(); if (logSettingsPanel != null) { logSettingsPanel.initFields(); } } /** * Save the values of the internal panels field inputs. */ public void saveFieldInputs() throws IOException { basicPeerConfigurationPanel.saveProperties(); discoveryServiceSettingsPanel.saveProperties(); communePanel.saveFieldInputs(); fdPanel.saveFieldInputs(); cACertificatePanel.saveFieldInputs(); vomsAuthPanel.saveFieldInputs(); advancedPeerSettingsPanel.saveProperties(); if (logSettingsPanel != null) { logSettingsPanel.saveProperties(); } tagsPeerConfigurationPanel.saveProperties(); saveProperties(); } /** * Disable the editable components of the internal panels. */ public void disableInput() { disableFieldEdition(); } /** * Enable the editable components of the internal panels. */ public void enableInput() { enableFieldEdition(); } }