📄 identityinfo.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 java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.*;
import javax.swing.border.TitledBorder;
import javax.swing.border.EmptyBorder;
import vocal.ui.LoginPanel;
public class IdentityInfo extends JPanel implements DataEditor
{
private JComboBox level;
private int mode = UserPanel.ADD_NEW_MODE;
private boolean passwordChanged = false;
private JPasswordField password;
public IdentityInfo(String[] identity)
{
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
setBorder(new TitledBorder("Identity"));
LoginPanel loginpanel = null;
if(1==loginpanel.userlevel)
{
level = new JComboBox(new String[]
{
"", "AdvancedManager", "AccountManager", "TechManager", "User"
});
level.setSelectedIndex(4);
}
else
{
level = new JComboBox(new String[]
{
"", "User"
});
level.setSelectedIndex(1);
}
level.setToolTipText("User's identity");
level.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if (level.getSelectedItem().equals(""))
{
password.setEnabled(false);
}
else
{
password.setEnabled(true);
}
}
});
password = new JPasswordField();
password.setToolTipText("User's password");
password.addKeyListener(new KeyAdapter()
{
public void keyTyped(KeyEvent e)
{
passwordChanged = true;
}
});
add(createLabelComponentPair(" Level: ", level));
add(createLabelComponentPair(" Password: ", password));
}
public String getData(int id)
{
switch (id)
{
case UserTableModel.USER_IDENTITY:
{
String value = (String) level.getSelectedItem();
if (value != "")
{
return value;
}
}
break;
case UserTableModel.USER_PASSWD:
{
String value = password.getText();
if (value != "")
{
return value;
}
}
break;
}
return null;
}
/**
* Clear the value of all editor components in this panel and set their
* corresponding "changed" flags to false.
*/
public void clear()
{
level.setSelectedIndex(0);
password.setText("");
password.setEnabled(false);
passwordChanged = false;
}
public boolean setData(int id, String data)
{
switch (id)
{
case UserTableModel.USER_IDENTITY:
{
boolean ok = false;
for (int i = 0; i < level.getItemCount(); i++)
{
Object item = level.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;
}
level.setSelectedItem(data);
return true;
}
case UserTableModel.USER_PASSWD:
{
password.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()
{
return true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -