Package com.sun.messaging.jmq.admin.apps.console

Source Code of com.sun.messaging.jmq.admin.apps.console.BrokerServicePropsDialog

/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright (c) 2000-2010 Oracle and/or its affiliates. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License").  You
* may not use this file except in compliance with the License.  You can
* obtain a copy of the License at
* https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
* or packager/legal/LICENSE.txt.  See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at packager/legal/LICENSE.txt.
*
* GPL Classpath Exception:
* Oracle designates this particular file as subject to the "Classpath"
* exception as provided by Oracle in the GPL Version 2 section of the License
* file that accompanied this code.
*
* Modifications:
* If applicable, add the following below the License Header, with the fields
* enclosed by brackets [] replaced by your own identifying information:
* "Portions Copyright [year] [name of copyright owner]"
*
* Contributor(s):
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license."  If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above.  However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/

/*
* @(#)BrokerServicePropsDialog.java  1.16 06/27/07
*/

package com.sun.messaging.jmq.admin.apps.console;

import java.awt.Dimension;
import java.awt.Color;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import java.awt.Insets;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JSeparator;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JRadioButton;
import javax.swing.ButtonGroup;
import javax.swing.JOptionPane;

import com.sun.messaging.jmq.util.admin.ServiceInfo;
import com.sun.messaging.jmq.util.ServiceState;
import com.sun.messaging.jmq.util.ServiceType;

import com.sun.messaging.jmq.admin.util.Globals;
import com.sun.messaging.jmq.admin.resources.AdminConsoleResources;
import com.sun.messaging.jmq.admin.resources.AdminResources;
import com.sun.messaging.jmq.admin.apps.console.event.BrokerAdminEvent;
import com.sun.messaging.jmq.admin.apps.console.util.LabelledComponent;
import com.sun.messaging.jmq.admin.apps.console.util.LabelValuePanel;
import com.sun.messaging.jmq.admin.apps.console.util.IntegerField;
import com.sun.messaging.jmq.admin.bkrutil.BrokerAdminUtil;

/**
* Implementation of the Service Properties Dialog
*/
public class BrokerServicePropsDialog extends AdminDialog implements ActionListener {
   
    private static AdminResources ar = Globals.getAdminResources();
    private static AdminConsoleResources acr = Globals.getAdminConsoleResources();
    private static String close[] = {acr.getString(acr.I_DIALOG_CLOSE)};
    private BrokerServiceCObj  svcCObj;
    private JLabel     svcName;
    private JRadioButton  dynamicPortButton;
    private JRadioButton  staticPortButton;
    private JLabel    dynamicPortLabel;
    private IntegerField  staticPortIF;
    private JLabel      svcState;
    private IntegerField   minThreads, maxThreads;
    private JLabel     numConnections, allocatedThreads;
    private JPanel    lvp;
    private LabelledComponent   items[];

    private ServiceInfo    svcInfo;

    private LabelledComponent  svcPortComponent;


    public BrokerServicePropsDialog(Frame parent)  {
  super(parent, acr.getString(acr.I_BROKER_SVC_PROPS), (OK | CANCEL | HELP));
  setHelpId(ConsoleHelpID.SERVICE_PROPS);
    }

    public JPanel createWorkPanel() {

        JPanel                  workPanel;
        GridBagLayout           workGridbag;
        GridBagConstraints      workConstraints;
        LabelledComponent       tmpLabelC;
        LabelledComponent       lvpItems[];
        LabelValuePanel         lvp;
        JSeparator              sep;

        workPanel = new JPanel();
        workGridbag = new GridBagLayout();
        workPanel.setLayout(workGridbag);
        workConstraints = new GridBagConstraints();

  /*
         * Initialize.
         */
        workConstraints.gridx = 0;
        workConstraints.gridy = 0;
        workConstraints.anchor = GridBagConstraints.WEST;
        workConstraints.fill = GridBagConstraints.NONE;
        workConstraints.insets = new Insets(5, 0, 5, 0);
        workConstraints.ipadx = 0;
        workConstraints.ipady = 0;
        workConstraints.weightx = 1.0;

        lvpItems = new LabelledComponent[3];

        svcName = new JLabel();
        tmpLabelC = new LabelledComponent(
    ar.getString(ar.I_JMQCMD_SVC_NAME) + ":",
    svcName);
        workGridbag.setConstraints(tmpLabelC, workConstraints);
  lvpItems[0] = tmpLabelC;

  // for radio buttons for dynamic / static port number
  JPanel servicePanel = new JPanel();
  GridBagLayout serviceGridbag = new GridBagLayout();
  servicePanel.setLayout(serviceGridbag);
  GridBagConstraints serviceConstraints = new GridBagConstraints();

  /*
         * Initialize.
         */
        serviceConstraints.anchor = GridBagConstraints.WEST;
  serviceConstraints.insets = new Insets(0, 0, 0, 0);

  serviceConstraints.gridx = 0;
  serviceConstraints.gridy = 0;
  dynamicPortButton = new JRadioButton();
  dynamicPortButton.addActionListener(this);
  serviceGridbag.setConstraints(dynamicPortButton, serviceConstraints);
  servicePanel.add(dynamicPortButton);

  serviceConstraints.gridx = 0;
  serviceConstraints.gridy = 1;
  staticPortButton = new JRadioButton();
  staticPortButton.addActionListener(this);
  serviceGridbag.setConstraints(staticPortButton, serviceConstraints);
  servicePanel.add(staticPortButton);

  ButtonGroup servicePortGroup = new ButtonGroup();
  servicePortGroup.add(dynamicPortButton);
  servicePortGroup.add(staticPortButton);

  serviceConstraints.gridx = 1;
  serviceConstraints.gridy = 0;
  JLabel dynamicLabel = new JLabel(acr.getString(acr.I_DYNAMIC_CAP) + ":");
  serviceGridbag.setConstraints(dynamicLabel, serviceConstraints);
  servicePanel.add(dynamicLabel);

  serviceConstraints.gridx = 1;
  serviceConstraints.gridy = 1;
  JLabel staticLabel = new JLabel(acr.getString(acr.I_STATIC_CAP) + ":");
  serviceGridbag.setConstraints(staticLabel, serviceConstraints);
  servicePanel.add(staticLabel);

  serviceConstraints.gridx = 2;
  serviceConstraints.gridy = 0;
  serviceConstraints.insets = new Insets(0, 5, 0, 0);
  dynamicPortLabel = new JLabel();
  serviceGridbag.setConstraints(dynamicPortLabel, serviceConstraints);
  servicePanel.add(dynamicPortLabel);

  serviceConstraints.gridx = 2;
  serviceConstraints.gridy = 1;
  serviceConstraints.insets = new Insets(0, 5, 0, 0);
  staticPortIF = new IntegerField(0, Integer.MAX_VALUE, 15);
  staticPortIF.setEnabled(false);
  serviceGridbag.setConstraints(staticPortIF, serviceConstraints);
  servicePanel.add(staticPortIF);

        tmpLabelC = new LabelledComponent(
                ar.getString(ar.I_JMQCMD_SVC_PORT)+":",
                servicePanel, LabelledComponent.NORTH);
        workGridbag.setConstraints(tmpLabelC, workConstraints);
        lvpItems[1] = tmpLabelC;

  // Set this so that we can enable/disable this component
  svcPortComponent = lvpItems[1];

        svcState = new JLabel();
        tmpLabelC = new LabelledComponent(
    ar.getString(ar.I_JMQCMD_SVC_STATE)+":",
    svcState);
        workGridbag.setConstraints(tmpLabelC, workConstraints);
  lvpItems[2] = tmpLabelC;

        lvp = new LabelValuePanel(lvpItems, 4, 0);
        workGridbag.setConstraints(lvp, workConstraints);
        workPanel.add(lvp);

        workConstraints.gridy = 1;

        sep = new JSeparator();
        workConstraints.fill = GridBagConstraints.HORIZONTAL;
        workGridbag.setConstraints(sep, workConstraints);
        workPanel.add(sep);
        /*
         * Reset
         */
        workConstraints.fill = GridBagConstraints.NONE;
        workConstraints.gridy = 2;

        lvpItems = new LabelledComponent[2];

        allocatedThreads = new JLabel();
        tmpLabelC = new LabelledComponent(
    ar.getString(ar.I_JMQCMD_SVC_CUR_THREADS) + ":",
    allocatedThreads);
        workGridbag.setConstraints(tmpLabelC, workConstraints);
  lvpItems[0] = tmpLabelC;

        numConnections = new JLabel();
        tmpLabelC = new LabelledComponent(
    ar.getString(ar.I_JMQCMD_SVC_NUM_CXN) + ":",
    numConnections);
        workGridbag.setConstraints(tmpLabelC, workConstraints);
  lvpItems[1] = tmpLabelC;

        lvp = new LabelValuePanel(lvpItems, 4, 0);
        workGridbag.setConstraints(lvp, workConstraints);
        workPanel.add(lvp);

        workConstraints.gridy = 3;

        sep = new JSeparator();
        workConstraints.fill = GridBagConstraints.HORIZONTAL;
        workGridbag.setConstraints(sep, workConstraints);
        workPanel.add(sep);
        /*
         * Reset
         */
        workConstraints.fill = GridBagConstraints.NONE;
        workConstraints.gridy = 4;

        lvpItems = new LabelledComponent[2];

        minThreads = new IntegerField(0, Integer.MAX_VALUE, 15);
  minThreads.addActionListener(this);
        tmpLabelC = new LabelledComponent(
                ar.getString(ar.I_JMQCMD_SVC_MIN_THREADS) + ":",
                minThreads);
        workGridbag.setConstraints(tmpLabelC, workConstraints);
        workPanel.add(tmpLabelC);
  lvpItems[0] = tmpLabelC;

  maxThreads = new IntegerField(0, Integer.MAX_VALUE, 15);
  maxThreads.addActionListener(this);
        tmpLabelC = new LabelledComponent(
                ar.getString(ar.I_JMQCMD_SVC_MAX_THREADS) + ":",
                maxThreads);
        workGridbag.setConstraints(tmpLabelC, workConstraints);
  lvpItems[1] = tmpLabelC;

        lvp = new LabelValuePanel(lvpItems, 4, 0);
        workGridbag.setConstraints(lvp, workConstraints);
        workPanel.add(lvp);

  return workPanel;
    }

    public void doOK() {
  int portValue = -1;
  int minThreadsValue = -1;
  int maxThreadsValue = -1;

  if (staticPortButton.isSelected()) {
      String portText = staticPortIF.getText();

      if (!"".equals(portText)) {
    portValue = Integer.parseInt(portText);
      } else {
                JOptionPane.showOptionDialog(this,
                    acr.getString(acr.E_NO_STATIC_PORT),
                    acr.getString(acr.I_BROKER_SVC_PROPS) + ": "
                        + acr.getString(acr.I_ERROR_CODE, acr.E_NO_STATIC_PORT),
                    JOptionPane.YES_NO_OPTION,
                    JOptionPane.ERROR_MESSAGE, null, close, close[0]);
                return;
      }

  } else if (dynamicPortButton.isSelected()) {
      // New protocol.
      // If the port number is not used for this service it
      // is set to -1.  If the port number was -1 do not change it.
      if (svcInfo.port == -1)
    portValue = -1;   
      // Set it to 0 for dynamic otherwise
      else
          portValue = 0;
  }

  minThreadsValue = Integer.parseInt(minThreads.getText());
  maxThreadsValue = Integer.parseInt(maxThreads.getText());

        /*
   * Rollback the following fix.  The check is now done
   * by the broker.  
   *
         * Fix for bug 4432483: jmqcmd, jmqadmin: setting admin max
         * threads = 0 is allowed & hangs
         *
         * Display a warning if service type != admin.
         * Disallow the operation if service type == admin.
  if (maxThreadsValue <= 0) {
      if (ServiceType.ADMIN == svcInfo.type) {
                JOptionPane.showOptionDialog(this,
                    acr.getString(acr.E_ADMIN_MAX_THREAD),
                    acr.getString(acr.I_BROKER_SVC_PROPS) + ": "
                        + acr.getString(acr.I_ERROR_CODE, acr.E_ADMIN_MAX_THREAD),
                    JOptionPane.YES_NO_OPTION,
                    JOptionPane.ERROR_MESSAGE, null, close, close[0]);
                return;

      } else {
          int result = JOptionPane.showConfirmDialog(this,
              acr.getString(acr.Q_SET_MAX_THREAD_ZERO, svcInfo.name),
                    acr.getString(acr.I_BROKER_SVC_PROPS),
                     JOptionPane.YES_NO_OPTION);

          if (result == JOptionPane.NO_OPTION)
                  return;
      }
  }
  */

        BrokerAdminEvent bae =
      new BrokerAdminEvent(this, BrokerAdminEvent.UPDATE_SVC);

  bae.setPort(portValue);
  bae.setMinThreads(minThreadsValue);
  bae.setMaxThreads(maxThreadsValue);

        bae.setOKAction(true);
        fireAdminEventDispatched(bae);
    }

    public void doApply()  { }
    public void doReset() { }
    public void doCancel() { hide(); }

    public void doClose() {
  hide();
  doClear();
    }

    public void doClear() {
  svcName.setText(" ");
  dynamicPortButton.setSelected(true);
  staticPortButton.setSelected(false);
  dynamicPortLabel.setText(" ");
  staticPortIF.setText("");
  svcState.setText(" ");
  minThreads.setText("0");
  maxThreads.setText("0");
  allocatedThreads.setText("0");
  numConnections.setText("0");
  svcPortComponent.setEnabled(true);
    }

    public void show(ServiceInfo svcInfo)  {

  this.svcInfo = svcInfo;

  if (svcInfo == null) {
      doClear();
      return;
  }

  svcName.setText(svcInfo.name);

  // The port number is not applicable to this service
  if (svcInfo.port == -1)
      enableServicePort(false);
  else {
      enableServicePort(true);

      if (svcInfo.dynamicPort) {
          dynamicPortButton.setSelected(true);
          staticPortIF.setEnabled(false);
          staticPortIF.setText("");

                switch (svcInfo.state) {
                    case ServiceState.UNKNOWN:
            dynamicPortLabel.setText(" ");
                        break;
                    default:
            dynamicPortLabel.setText(new Integer(svcInfo.port).toString());
                }
            } else {
          staticPortButton.setSelected(true);
          staticPortIF.setEnabled(true);
          staticPortIF.setText(new Integer(svcInfo.port).toString());
          dynamicPortLabel.setText(" ");
      }
  }
  //svcState.setText(ServiceState.getString(svcInfo.state));
  svcState.setText(BrokerAdminUtil.getServiceState(svcInfo.state));
  minThreads.setText(new Integer(svcInfo.minThreads).toString());
  maxThreads.setText(new Integer(svcInfo.maxThreads).toString());
  allocatedThreads.setText(new Integer(svcInfo.currentThreads).toString());
  numConnections.setText(new Integer(svcInfo.nConnections).toString());
  super.show();
    }

    /*
     * BEGIN INTERFACE ActionListener
     */
    public void actionPerformed(ActionEvent e)  {
        Object source = e.getSource();

        if (source == dynamicPortButton)  {
            doDynamicPortButton();

        } else if (source == staticPortButton)  {
            doStaticPortButton();

        } else  {
            super.actionPerformed(e);
        }
    }
    /*
     * END INTERFACE ActionListener
     */

    private void doDynamicPortButton() {
  staticPortIF.setEnabled(false);
    }

    private void doStaticPortButton() {
  staticPortIF.setEnabled(true);
    }

    private void enableServicePort(boolean b) {
  svcPortComponent.setEnabled(b);
  if (!b) {
            dynamicPortButton.setSelected(true);
            staticPortButton.setSelected(false);
            dynamicPortLabel.setText(" ");
            staticPortIF.setText("");
  }
    }

    /*
     * Not used.
    private void makeReadOnly() {
        svcName.setEditable(false);
        svcPort.setEditable(false);
        svcState.setEditable(false);
        minThreads.setEditable(false);
        maxThreads.setEditable(false);
        allocatedThreads.setEditable(false);
        numConnections.setEditable(false);
    }
     */
TOP

Related Classes of com.sun.messaging.jmq.admin.apps.console.BrokerServicePropsDialog

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.