385N/A/*
385N/A * CDDL HEADER START
385N/A *
385N/A * The contents of this file are subject to the terms of the
385N/A * Common Development and Distribution License (the "License").
385N/A * You may not use this file except in compliance with the License.
385N/A *
385N/A * See LICENSE.txt included in this distribution for the specific
385N/A * language governing permissions and limitations under the License.
385N/A *
385N/A * When distributing Covered Code, include this CDDL HEADER in each
385N/A * file and include the License file at LICENSE.txt.
385N/A * If applicable, add the following below this CDDL HEADER, with the
385N/A * fields enclosed by brackets "[]" replaced with your own identifying
385N/A * information: Portions Copyright [yyyy] [name of copyright owner]
385N/A *
385N/A * CDDL HEADER END
385N/A */
407N/A
1045N/A/*
1045N/A * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
1045N/A */
1045N/A
385N/Apackage org.opensolaris.opengrok.management.client;
385N/A
385N/Aimport java.awt.Dimension;
385N/Aimport java.awt.Image;
385N/Aimport java.awt.Toolkit;
1045N/Aimport java.awt.event.WindowAdapter;
1045N/Aimport java.awt.event.WindowEvent;
385N/Aimport java.io.IOException;
385N/Aimport java.util.logging.Level;
385N/Aimport java.util.logging.Logger;
1462N/A
1462N/Aimport javax.swing.SwingConstants;
1462N/A
1462N/Aimport org.opensolaris.opengrok.management.Constants;
385N/Aimport org.opensolaris.opengrok.management.OGAgent;
385N/A
385N/A/**
385N/A *
385N/A * @author Jan S Berg
385N/A */
457N/A@SuppressWarnings("PMD.SingularField")
385N/Apublic class SettingsFrame extends javax.swing.JFrame {
385N/A
385N/A private static final long serialVersionUID = -5229330170574558105L;
456N/A private final SettingsPersistence properties;
385N/A
1190N/A /**
1190N/A * Creates new form SettingsFrame
601N/A * @param sp settings to start and save with
385N/A */
385N/A public SettingsFrame(SettingsPersistence sp) {
385N/A properties = sp;
385N/A java.net.URL imageUrl = OGAgent.class.getResource("opengrok.gif");
385N/A Image image = Toolkit.getDefaultToolkit().getImage(imageUrl);
385N/A this.setIconImage(image);
385N/A initComponents();
385N/A Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
385N/A Dimension mySize = getPreferredSize();
385N/A setLocation(screenSize.width / 2 - (mySize.width / 2), screenSize.height / 2 - (mySize.height / 2));
385N/A loadSettings();
1045N/A
1045N/A addWindowListener(new WindowAdapter() {
1462N/A @SuppressWarnings("synthetic-access")
1045N/A @Override
1045N/A public void windowClosing(WindowEvent event) {
1045N/A doClose();
1045N/A }
1045N/A });
385N/A }
385N/A
385N/A private void loadSettings() {
385N/A //userTextField.setText(properties.getProperty(SettingsPersistence.USERNAMEKEY));
385N/A //passwordField.setText(properties.getProperty(SettingsPersistence.PASSWORDKEY));
385N/A agentURLField.setText(properties.getAgentUrl());
385N/A indexingTimeoutField.setText(properties.getProperty(SettingsPersistence.INDEXTIMEOUTKEY));
385N/A connTimeoutField.setText(properties.getProperty(SettingsPersistence.CONNECTIONTIMEOUTKEY));
385N/A }
385N/A
385N/A private void saveSettings() {
385N/A //properties.setProperty(SettingsPersistence.USERNAMEKEY, userTextField.getText());
1190N/A //properties.setProperty(properties.PASSWORDKEY,
385N/A // String.copyValueOf(passwordField.getPassword()));
385N/A //properties.setPassword(passwordField.getPassword());
1462N/A properties.setProperty(Constants.JMX_URL, agentURLField.getText());
385N/A properties.setProperty(SettingsPersistence.INDEXTIMEOUTKEY, indexingTimeoutField.getText());
385N/A properties.setProperty(SettingsPersistence.CONNECTIONTIMEOUTKEY, connTimeoutField.getText());
385N/A
385N/A }
385N/A
385N/A /** This method is called from within the constructor to
385N/A * initialize the form.
385N/A * WARNING: Do NOT modify this code. The content of this method is
385N/A * always regenerated by the Form Editor.
385N/A */
385N/A // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
385N/A private void initComponents() {
385N/A
385N/A closeButton = new javax.swing.JButton();
385N/A headerLabel = new javax.swing.JLabel();
385N/A jPanel1 = new javax.swing.JPanel();
385N/A agentURLLabel = new javax.swing.JLabel();
385N/A agentURLField = new javax.swing.JTextField();
385N/A jLabel1 = new javax.swing.JLabel();
385N/A userTextField = new javax.swing.JTextField();
385N/A jLabel2 = new javax.swing.JLabel();
385N/A passwordField = new javax.swing.JPasswordField();
385N/A jPanel2 = new javax.swing.JPanel();
385N/A jLabel4 = new javax.swing.JLabel();
385N/A indexingTimeoutField = new javax.swing.JTextField();
385N/A jLabel5 = new javax.swing.JLabel();
385N/A jLabel6 = new javax.swing.JLabel();
385N/A connTimeoutField = new javax.swing.JTextField();
385N/A seconds = new javax.swing.JLabel();
385N/A
1045N/A setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
385N/A setTitle("OpenGrok");
385N/A setIconImages(null);
385N/A
385N/A closeButton.setText("Close");
385N/A closeButton.setToolTipText("Close and save settings");
385N/A closeButton.addActionListener(new java.awt.event.ActionListener() {
1462N/A @Override
1462N/A @SuppressWarnings("synthetic-access")
385N/A public void actionPerformed(java.awt.event.ActionEvent evt) {
385N/A closeButtonActionPerformed(evt);
385N/A }
385N/A });
385N/A
385N/A headerLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/opensolaris/opengrok/management/client/opengrok.gif"))); // NOI18N
385N/A headerLabel.setText("OpenGrok Client Settings");
385N/A
385N/A jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());
385N/A
385N/A agentURLLabel.setText("Agent URL");
385N/A
385N/A agentURLField.setText("localhost:9296");
385N/A agentURLField.setToolTipText("Agent URL: <hostname>:<port>");
385N/A
385N/A jLabel1.setText("User Name");
385N/A
385N/A userTextField.setEditable(false);
385N/A userTextField.setToolTipText("Username for connecting to the agent");
385N/A
385N/A jLabel2.setText("Password");
385N/A
385N/A passwordField.setEditable(false);
385N/A passwordField.setText("jPasswordField1");
385N/A
385N/A javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
385N/A jPanel1.setLayout(jPanel1Layout);
385N/A jPanel1Layout.setHorizontalGroup(
385N/A jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
385N/A .addGroup(jPanel1Layout.createSequentialGroup()
385N/A .addContainerGap()
385N/A .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
385N/A .addComponent(jLabel1)
385N/A .addComponent(agentURLLabel)
385N/A .addComponent(jLabel2))
385N/A .addGap(43, 43, 43)
385N/A .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1045N/A .addComponent(passwordField, javax.swing.GroupLayout.DEFAULT_SIZE, 178, Short.MAX_VALUE)
1045N/A .addComponent(userTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 178, Short.MAX_VALUE)
1045N/A .addComponent(agentURLField, javax.swing.GroupLayout.DEFAULT_SIZE, 178, Short.MAX_VALUE))
385N/A .addContainerGap())
385N/A );
385N/A jPanel1Layout.setVerticalGroup(
385N/A jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
385N/A .addGroup(jPanel1Layout.createSequentialGroup()
385N/A .addContainerGap()
385N/A .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
385N/A .addComponent(agentURLField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
385N/A .addComponent(agentURLLabel))
385N/A .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
385N/A .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
385N/A .addComponent(jLabel1)
385N/A .addComponent(userTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
385N/A .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
385N/A .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
385N/A .addComponent(passwordField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
385N/A .addComponent(jLabel2))
385N/A .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
385N/A );
385N/A
385N/A jPanel2.setBorder(javax.swing.BorderFactory.createEtchedBorder());
385N/A
385N/A jLabel4.setText("Indexing Warning Timeout");
385N/A
1462N/A indexingTimeoutField.setHorizontalAlignment(SwingConstants.RIGHT);
385N/A indexingTimeoutField.setText("10");
385N/A
385N/A jLabel5.setText("seconds");
385N/A
385N/A jLabel6.setText("Connection Timeout");
385N/A
1462N/A connTimeoutField.setHorizontalAlignment(SwingConstants.RIGHT);
385N/A connTimeoutField.setText("120");
385N/A
385N/A seconds.setText("seconds");
385N/A
385N/A javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
385N/A jPanel2.setLayout(jPanel2Layout);
385N/A jPanel2Layout.setHorizontalGroup(
385N/A jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
385N/A .addGroup(jPanel2Layout.createSequentialGroup()
385N/A .addContainerGap()
385N/A .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
385N/A .addComponent(jLabel4)
385N/A .addComponent(jLabel6))
385N/A .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
385N/A .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
385N/A .addComponent(connTimeoutField, 0, 0, Short.MAX_VALUE)
385N/A .addComponent(indexingTimeoutField, javax.swing.GroupLayout.DEFAULT_SIZE, 32, Short.MAX_VALUE))
385N/A .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
385N/A .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
385N/A .addComponent(jLabel5)
385N/A .addComponent(seconds))
1045N/A .addContainerGap(44, Short.MAX_VALUE))
385N/A );
385N/A jPanel2Layout.setVerticalGroup(
385N/A jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
385N/A .addGroup(jPanel2Layout.createSequentialGroup()
385N/A .addContainerGap()
385N/A .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
385N/A .addComponent(jLabel4)
385N/A .addComponent(indexingTimeoutField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
385N/A .addComponent(jLabel5))
385N/A .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
385N/A .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
385N/A .addComponent(connTimeoutField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
385N/A .addComponent(jLabel6)
385N/A .addComponent(seconds, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE))
385N/A .addContainerGap(47, Short.MAX_VALUE))
385N/A );
385N/A
385N/A javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
385N/A getContentPane().setLayout(layout);
385N/A layout.setHorizontalGroup(
385N/A layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
385N/A .addGroup(layout.createSequentialGroup()
385N/A .addContainerGap()
385N/A .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
385N/A .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
385N/A .addComponent(headerLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 313, Short.MAX_VALUE)
385N/A .addComponent(closeButton, javax.swing.GroupLayout.Alignment.TRAILING)
385N/A .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
385N/A .addContainerGap())
385N/A );
385N/A layout.setVerticalGroup(
385N/A layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
385N/A .addGroup(layout.createSequentialGroup()
385N/A .addComponent(headerLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
385N/A .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
385N/A .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
385N/A .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
385N/A .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
385N/A .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
385N/A .addComponent(closeButton)
385N/A .addContainerGap())
385N/A );
385N/A
385N/A pack();
385N/A }// </editor-fold>//GEN-END:initComponents
385N/A
434N/A@SuppressWarnings("unused")
385N/Aprivate void closeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_closeButtonActionPerformed
1045N/A doClose();
385N/A}//GEN-LAST:event_closeButtonActionPerformed
385N/A
385N/A /**
1045N/A * Save the settings and close the frame.
1045N/A */
1045N/A private void doClose() {
1045N/A saveSettings();
1045N/A this.dispose();
1045N/A }
1045N/A
1045N/A /**
385N/A * @param args the command line arguments
385N/A */
385N/A public static void main(String args[]) {
385N/A java.awt.EventQueue.invokeLater(new Runnable() {
1327N/A @Override
385N/A public void run() {
385N/A try {
385N/A new SettingsFrame(new SettingsPersistence(null)).setVisible(true);
385N/A } catch (IOException ex) {
1327N/A Logger logger = Logger.getLogger(SettingsFrame.class.getName());
1327N/A logger.severe(ex.getMessage());
1327N/A logger.log(Level.FINE, "run", ex);
385N/A }
385N/A }
385N/A });
385N/A }
385N/A
385N/A // Variables declaration - do not modify//GEN-BEGIN:variables
385N/A private javax.swing.JTextField agentURLField;
385N/A private javax.swing.JLabel agentURLLabel;
385N/A private javax.swing.JButton closeButton;
385N/A private javax.swing.JTextField connTimeoutField;
385N/A private javax.swing.JLabel headerLabel;
385N/A private javax.swing.JTextField indexingTimeoutField;
385N/A private javax.swing.JLabel jLabel1;
385N/A private javax.swing.JLabel jLabel2;
385N/A private javax.swing.JLabel jLabel4;
385N/A private javax.swing.JLabel jLabel5;
385N/A private javax.swing.JLabel jLabel6;
385N/A private javax.swing.JPanel jPanel1;
385N/A private javax.swing.JPanel jPanel2;
385N/A private javax.swing.JPasswordField passwordField;
385N/A private javax.swing.JLabel seconds;
385N/A private javax.swing.JTextField userTextField;
385N/A // End of variables declaration//GEN-END:variables
385N/A
385N/A}