⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 marshalinfo.java

📁 这是一个用java和xml编写的流媒体服务器管理软件
💻 JAVA
字号:
/* * ==================================================================== * The Vovida Software License, Version 1.0 *  * Copyright (c) 2000 Vovida Networks, Inc.  All rights reserved. *  * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: *  * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. *  * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. *  * 3. The names "VOCAL", "Vovida Open Communication Application Library", * and "Vovida Open Communication Application Library (VOCAL)" must * not be used to endorse or promote products derived from this * software without prior written permission. For written * permission, please contact vocal@vovida.org. *  * 4. Products derived from this software may not be called "VOCAL", nor * may "VOCAL" appear in their name, without prior written * permission of Vovida Networks, Inc. *  * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL VOVIDA * NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES * IN EXCESS OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. *  * ==================================================================== *  * This software consists of voluntary contributions made by Vovida * Networks, Inc. and many individuals on behalf of Vovida Networks, * Inc.  For more information on Vovida Networks, Inc., please see * <http://www.vovida.org/>. *  */package vocal.userEditor;import vocal.ui.HostNameField;import vocal.ui.WholeNumberField;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import java.text.ParseException;import javax.swing.*;import javax.swing.border.TitledBorder;import javax.swing.border.EmptyBorder;public class MarshalInfo extends JPanel implements DataEditor{  private JComboBox marshal;  private boolean marshalChanged = false;  private JComboBox authType;  private int mode = UserPanel.ADD_NEW_MODE;  private boolean ipChanged = false;  private HostNameField ip;  private boolean passwordChanged = false;  private JTextField password;  private boolean staticRegChanged = false;  private JCheckBox staticReg;  private boolean hostChanged = false;  private HostNameField host;  private boolean portChanged = false;  private WholeNumberField port;  public MarshalInfo(String[] marshals)  {    setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));    setBorder(new TitledBorder("Marshal"));    String[] newMarshals = new String[marshals.length + 1];    newMarshals[0] = "";    for (int i = 1; i < newMarshals.length; i++)    {      newMarshals[i] = marshals[i - 1];    }    marshal = new JComboBox(newMarshals);    marshal.setToolTipText("group of Marshal servers that route this user's calls");    password = new JTextField();    password.setToolTipText("used for Digest authentication");    password.addKeyListener(new KeyAdapter()    {      public void keyTyped(KeyEvent e)      {        passwordChanged = true;      }    });    ip = new HostNameField("Access list authentication IP address");    ip.setEmptyOk();    ip.setToolTipText("IP address of phone set, used for Access List authentication");    ip.addKeyListener(new KeyAdapter()    {      public void keyTyped(KeyEvent e)      {        ipChanged = true;      }    });    authType = new JComboBox(new String[]    {      "", "None", "Access list", "Basic", "Digest"    });    authType.setToolTipText("None for no authentication, Access list for IP authentication, Digest for password authentication");    authType.addActionListener(new ActionListener()    {      public void actionPerformed(ActionEvent e)      {        if (authType.getSelectedItem().equals("Access list"))        {          ip.setEnabled(true);          password.setEnabled(false);        }        else if (authType.getSelectedItem().equals("Digest")                  || authType.getSelectedItem().equals("Basic"))        {          password.setEnabled(true);          ip.setEnabled(false);        }        else        {          password.setEnabled(false);          ip.setEnabled(false);        }      }    });    authType.actionPerformed(new ActionEvent(authType, 943, "no command"));    host = new HostNameField("Static registration host");    host.setEmptyOk();    host.setToolTipText("IP address of phone set (static registration only)");    host.addKeyListener(new KeyAdapter()    {      public void keyTyped(KeyEvent e)      {        hostChanged = true;      }    });    port = new WholeNumberField("Static registration port");    port.setEmptyOk();    port.setToolTipText("port of phone set (static registration only)");    port.addKeyListener(new KeyAdapter()    {      public void keyTyped(KeyEvent e)      {        portChanged = true;      }    });    staticReg = new JCheckBox("Static Registration");    staticReg.setToolTipText("select if phone set does not register itself");    ActionListener listener = new ActionListener()    {      public void actionPerformed(ActionEvent e)      {        if (staticReg.isSelected())        {          host.setEnabled(true);          port.setEnabled(true);        }        else        {          host.setEnabled(false);          port.setEnabled(false);        }      }    };    staticReg.addActionListener(listener);    listener.actionPerformed(new ActionEvent(this, 0, "bla bla"));    add(createLabelComponentPair("Group: ", marshal));    add(createLabelComponentPair("Authentication Type: ", authType));    add(createLabelComponentPair("   IP:", ip));    add(createLabelComponentPair("   Password: ", password));    JPanel temp = new JPanel();    temp.setLayout(new BoxLayout(temp, BoxLayout.X_AXIS));    temp.add(staticReg);    temp.add(Box.createHorizontalGlue());    add(temp);    temp = new JPanel();    temp.setLayout(new BoxLayout(temp, BoxLayout.X_AXIS));    temp.add(new JLabel("   Terminating Contact: "));    temp.add(Box.createHorizontalGlue());    add(temp);    add(createLabelComponentPair("   Host: ", host));    add(createLabelComponentPair("   Port: ", port));  }  public String getData(int id)  {    switch (id)    {      case UserTableModel.MARSHAL:      {        String value = (String) marshal.getSelectedItem();        if (value != "")        {          return value;        }      }        break;      case UserTableModel.IP:      {        if (ipChanged)        {          return ip.getText();        }      }        break;      case UserTableModel.AUTHENTICATION_TYPE:      {        if (!authType.getSelectedItem().equals(""))        {          return authType.getSelectedItem().toString();        }      }        break;      case UserTableModel.AUTHENTICATION_PASSWORD:      {        if (passwordChanged)        {          return password.getText();        }      }        break;      case UserTableModel.STATIC_REGISTRATION_ENABLED:      {        staticRegChanged = true;        if (staticRegChanged)        {          if (staticReg.isSelected())          {            return "true";          }          else          {            return "false";          }        }      }        break;      case UserTableModel.TERMINATING_HOST:      {        if (hostChanged)        {          return host.getText();        }      }        break;      case UserTableModel.TERMINATING_PORT:      {        if (portChanged)        {          return port.getText();        }      }        break;    }    return null;  }  /**   * Clear the value of all editor components in this panel and set their   * corresponding "changed" flags to false.   */  public void clear()  {    marshal.setSelectedIndex(0);    staticRegChanged = false;    ip.setText("");    ip.setEnabled(false);    ipChanged = false;    password.setText("");    password.setEnabled(false);    passwordChanged = false;    authType.setSelectedIndex(0);    host.setText("");    host.setEnabled(false);    hostChanged = false;    port.setText("");    port.setEnabled(false);    portChanged = false;    staticReg.setSelected(false);    staticRegChanged = false;  }  public boolean setData(int id, String data)  {    switch (id)    {      case UserTableModel.MARSHAL:      {        boolean ok = false;        for (int i = 0; i < marshal.getItemCount(); i++)        {          Object item = marshal.getItemAt(i);          if (item.equals(data))          {            ok = true;            break;          }        }        if (!ok)        {          JOptionPane.showMessageDialog(this.getTopLevelAncestor(),                   "The marshal group (" + data                   + ") provisioned for this user does\n"                   + "not match any group currently provisioned on this system.\n"                   + "Please select one of the available groups.");          return true;        }        marshal.setSelectedItem(data);        return true;      }      case UserTableModel.IP:      {        ip.setText(data);        return true;      }      case UserTableModel.AUTHENTICATION_TYPE:      {        authType.setSelectedItem(data);        return true;      }      case UserTableModel.AUTHENTICATION_PASSWORD:      {        password.setText(data);        return true;      }      case UserTableModel.STATIC_REGISTRATION_ENABLED:      {        if (data.equals("true"))        {          staticReg.setSelected(true);          host.setEnabled(true);          port.setEnabled(true);        }        else if (data.equals("false"))        {          staticReg.setSelected(false);          host.setEnabled(false);          port.setEnabled(false);        }        return true;      }      case UserTableModel.TERMINATING_HOST:      {        host.setText(data);        return true;      }      case UserTableModel.TERMINATING_PORT:      {        port.setText(data);        return true;      }    }    return false;  }  public void setMode(int newMode)  {    if (mode != newMode)    {      mode = newMode;      validate();    }  }  private JPanel createLabelComponentPair(String labelText, Component comp)  {    JPanel temp = new JPanel();    temp.setBorder(new EmptyBorder(1, 1, 1, 1));    JLabel label = new JLabel(labelText);    Dimension dim = new Dimension(170, label.getHeight());    label.setPreferredSize(dim);    temp.setLayout(new BoxLayout(temp, BoxLayout.X_AXIS));    temp.add(label);    temp.add(comp);    return temp;  }  public boolean isDataValid()  {    try    {      if (ipChanged)      {        ip.verifyContent();      }      if (hostChanged)      {        host.verifyContent();      }      if (portChanged)      {        port.verifyContent();      }    }    catch (ParseException ex)    {      ex.printStackTrace();      JOptionPane.showMessageDialog(this.getTopLevelAncestor(),               ex.getMessage(), "Invalid input", JOptionPane.ERROR_MESSAGE);      return false;    }    return true;  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -