ChatAntPanel.java
| Index Score | ||
|---|---|---|
![]() |
![]() |
ants.p2p.gui |
![]() |
![]() |
ANtsP2P |
View: Reasons, Metrics, Source Code
These are the metrics that contribute to the Enerjy Score for this file, ranked by impact. So the metrics listed at the top influence the score to a greater extent that the metrics listed at the bottom.
//******************************************************************
//******************************************************************
//********** ANts Peer To Peer Sources *************
//
// ANts P2P realizes a third generation P2P net. It protects your
// privacy while you are connected and makes you not trackable, hiding
// your identity (ip) and crypting everything you are sending/receiving
// from others.
// Copyright (C) 2004 Roberto Rossi
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// 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 General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
package ants.p2p.gui;
import java.awt.*;
import java.util.*;
import java.net.*;
import com.borland.jbcl.layout.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.text.*;
import java.beans.*;
import ants.p2p.irc.*;
import org.jibble.pircbot.*;
import org.apache.log4j.*;
import javax.swing.event.*;
import javax.swing.border.*;
public class ChatAntPanel extends JPanel {
public static String pic = "backgrounds/bg1.jpg";
static Logger _logger = Logger.getLogger(ChatAntPanel.class.getName());
XYLayout xYLayout1 = new XYLayout();
JList jList1 = new JList();
JLabel jLabel1 = new JLabel();
JScrollPane jScrollPane1 = new JScrollPane();
JTextPane jTextPane1 = new JTextPane();
JTextField jTextField1 = new JTextField();
IrcBot bot;
JScrollPane jScrollPane2 = new JScrollPane();
Image buffer;
JLabel jLabel4 = new JLabel();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JTextField jTextField3 = new JTextField();
JLabel jLabel5 = new JLabel();
ArrayList currentBanlist = new ArrayList();
boolean keepCurrentViewport = false;
JViewport vp = null;
JTextField jTextField4 = new JTextField();
JScrollPane jScrollPane3 = new JScrollPane();
JList jList2 = new JList();
ArrayList pendingDiscussions = new ArrayList();
Border border1;
JPanel jPanel1 = new JPanel();
XYLayout xYLayout2 = new XYLayout();
JLabel jLabel2 = new JLabel();
JButton jButton4 = new JButton();
JScrollPane jScrollPane4 = new JScrollPane();
JList jList3 = new JList();
Border border2;
public ChatAntPanel(IrcBot bot) {
this.bot = bot;
try{
Toolkit tk = Toolkit.getDefaultToolkit();
MediaTracker mt = new MediaTracker(this);
buffer = tk.getImage(this.getClass().getClassLoader().getResource(pic));
mt.waitForAll();
}catch(Exception e){}
try {
jbInit();
}
catch(Exception ex) {
_logger.error("",ex);
}
}
void jbInit() throws Exception {
border1 = BorderFactory.createEmptyBorder(20,20,20,20);
this.setBorder(border1);
this.setDebugGraphicsOptions(0);
this.addComponentListener(new ChatAntPanel_this_componentAdapter(this));
this.setLayout(xYLayout1);
jLabel1.setText(ji.JI.i("Users"));
xYLayout1.setWidth(764);
xYLayout1.setHeight(489);
jTextField1.setOpaque(true);
jTextField1.setToolTipText(ji.JI.i("Enter your message here"));
jTextField1.setDocument(new StyledDiscussion());
jTextField1.addKeyListener(new ChatAntPanel_jTextField1_keyAdapter(this));
jTextPane1.setEditable(false);
jTextPane1.setMargin(new Insets(5, 5, 30, 40));
jTextPane1.addMouseListener(new ChatAntPanel_jTextPane1_mouseAdapter(this));
jTextPane1.setAutoscrolls(true);
jTextPane1.setBorder(null);
jTextPane1.setOpaque(true);
jTextPane1.setToolTipText(ji.JI.i("<HTML><BODY>This is a COMMON and NOT ANONYOMUS IRC CHANNEL.<BR>"+
"This channel is NOT related to the ANts network in any way!<BR>"+
"Userbase in this chatroom is not the current ANts network userbase,<BR>"+
"people you can see here are simply IRC users.</BODY></HTML>"));
jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
jScrollPane1.setAutoscrolls(true);
jScrollPane1.setOpaque(true);
jLabel4.setText(ji.JI.i("Current channels"));
jButton1.setToolTipText(ji.JI.i("Leave the selected discussion"));
jButton1.setText(ji.JI.i("Leave"));
jButton1.addActionListener(new ChatAntPanel_jButton1_actionAdapter(this));
jButton2.setToolTipText(ji.JI.i("Request the OP status to the selected user using the given password"));
jButton2.setText(ji.JI.i("Request Op"));
jButton2.addActionListener(new ChatAntPanel_jButton2_actionAdapter(this));
jTextField3.setMaximumSize(new Dimension(127, 2147483647));
jTextField3.setMinimumSize(new Dimension(127, 21));
jTextField3.setPreferredSize(new Dimension(127, 21));
jTextField3.setToolTipText(ji.JI.i("Password for requestiong the OP status to the selectd user"));
jTextField3.setText("");
jLabel5.setText(ji.JI.i("Password for Op"));
jTextField4.addFocusListener(new ChatAntPanel_jTextField4_focusAdapter(this));
jList1.setOpaque(true);
jList1.setToolTipText(ji.JI.i("Users in the active channel, right click for options"));
jList1.addMouseListener(new ChatAntPanel_jList1_mouseAdapter(this));
jTextField4.setOpaque(true);
jTextField4.setToolTipText(ji.JI.i("Channel topic, you can change it only if the channel have no OP at " +
"the moment or you are an OP"));
jTextField4.setText("");
jTextField4.addKeyListener(new ChatAntPanel_jTextField4_keyAdapter(this));
jList2.addMouseListener(new ChatAntPanel_jList2_mouseAdapter(this));
jList2.setToolTipText(ji.JI.i("Active channel and private discussions"));
jList2.setVerifyInputWhenFocusTarget(true);
jList2.setCellRenderer(new MyUserCellRenderer(this));
jList2.setSelectionForeground(Color.white);
jList2.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jPanel1.setLayout(xYLayout2);
jPanel1.setMinimumSize(new Dimension(500, 130));
jPanel1.setOpaque(false);
jPanel1.setPreferredSize(new Dimension(500, 130));
jButton4.setToolTipText(ji.JI.i("Toggle the ban for the selected address"));
jButton4.setText(ji.JI.i("Unban"));
jButton4.addActionListener(new ChatAntPanel_jButton4_actionAdapter(this));
jLabel2.setText(ji.JI.i("Channel banlist"));
jScrollPane4.setMinimumSize(new Dimension(23, 23));
jList3.setToolTipText(ji.JI.i("These are the banned addresses"));
this.setToolTipText(ji.JI.i("<HTML><BODY>This is a COMMON and NOT ANONYOMUS IRC CHANNEL.<BR>"+
"This channel is NOT related to the ANts network in any way!<BR>"+
"Userbase in this chatroom is not the current ANts network userbase,<BR>"+
"people you can see here are simply IRC users.</BODY></HTML>"));
this.add(jLabel1, new XYConstraints(11, 18, -1, -1));
this.add(jScrollPane1, new XYConstraints(148, 35, 388, 223));
jScrollPane1.getViewport().add(jTextPane1, null);
this.add(jTextField1, new XYConstraints(148, 263, 388, -1));
this.add(jScrollPane2, new XYConstraints(9, 35, 127, 248));
this.add(jTextField4, new XYConstraints(148, 11, 388, -1));
this.add(jScrollPane3, new XYConstraints(541, 36, 118, 224));
this.add(jLabel4, new XYConstraints(545, 18, -1, -1));
this.add(jButton1, new XYConstraints(541, 263, -1, -1));
this.add(jPanel1, new XYConstraints(0, 310, 717, 140));
jPanel1.add(jButton2, new XYConstraints(0, 0, -1, -1));
jPanel1.add(jTextField3, new XYConstraints(0, 50, -1, -1));
jPanel1.add(jLabel5, new XYConstraints(0, 30, -1, -1));
jPanel1.add(jScrollPane4, new XYConstraints(148, 15, 400, 120));
jPanel1.add(jLabel2, new XYConstraints(148, 0, -1, -1));
jPanel1.add(jButton4, new XYConstraints(0, 112, -1, -1));
jScrollPane4.getViewport().add(jList3, null);
jScrollPane3.getViewport().add(jList2, null);
jScrollPane2.getViewport().add(jList1, null);
}
public JTextPane getJTextPanel(){
return this.jTextPane1;
}
public String getCurrentSelectedDiscussion(){
return (String)this.jList2.getSelectedValue();
}
public JList getUserList(){
return this.jList1;
}
public void setUserList(User[] users) {
if(users != null){
this.jList1.setListData(users);
}
}
public void setTopic(String topic){
this.jTextField4.setText(topic);
}
public void setChannel(String channel){
for(int x = 0; x < this.bot.getDiscussions().length; x++){
if (this.bot.getDiscussions()[x].equals(channel)) {
this.jList2.setSelectedIndex(x);
return;
}
}
this.pendingDiscussions.remove(channel);
this.jList2.revalidate();
}
public void checkOp(){
try{
if (this.getUserList().getNextMatch("@" + this.bot.getNick(), 0, Position.Bias.Forward) != -1 ||
this.getUserList().getNextMatch("@", 0, Position.Bias.Forward) == -1 ){
this.jTextField4.setEditable(true);
this.jButton4.setVisible(true);
}
else{
this.jTextField4.setEditable(false);
this.jButton4.setVisible(false);
}
}
catch (Exception e) {}
}
public void addDiscussion(String key){
this.jList2.setListData(this.bot.getDiscussions());
this.jList2.revalidate();
}
public void setMessage(String key, String user, String message){
String selected = (String)this.jList2.getSelectedValue();
this.bot.setMessage(key, message, user);
this.jList2.setListData(this.bot.getDiscussions());
this.jList2.setSelectedValue(selected,true);
if(this.jList2.getSelectedValue().equals(key)){
this.jTextPane1.setDocument(this.bot.getDiscussion(key));
if(!this.keepCurrentViewport)
this.jTextPane1.scrollRectToVisible(new Rectangle(new Point(0,this.jTextPane1.getHeight()-this.jScrollPane1.getHeight()+50),new Dimension(this.jScrollPane1.getWidth(),this.jScrollPane2.getHeight())));
else
this.jTextPane1.scrollRectToVisible(new Rectangle(this.vp.getLocation(), this.vp.getSize()));
this.repaint();
}else{
if(!this.pendingDiscussions.contains(key))
this.pendingDiscussions.add(key);
this.repaint();
}
}
public void setControlMessage(String key, String message){
this.bot.setControlMessage(key, message);
if(this.jList2.getSelectedValue().equals(key)){
this.jTextPane1.setDocument(this.bot.getDiscussion(key));
if(!this.keepCurrentViewport)
this.jTextPane1.scrollRectToVisible(new Rectangle(new Point(0,this.jTextPane1.getHeight()-this.jScrollPane1.getHeight()),new Dimension(this.jScrollPane1.getWidth(),this.jScrollPane2.getHeight())));
else
this.jTextPane1.scrollRectToVisible(new Rectangle(this.vp.getLocation(), this.vp.getSize()));
}else{
if(!this.pendingDiscussions.contains(key))
this.pendingDiscussions.add(key);
this.repaint();
}
}
String getFirstParameter(String input){
input = input.trim();
if(input.indexOf(' ') > 0)
input = input.substring(0,input.indexOf(' '));
return input;
}
void jTextField1_keyPressed(KeyEvent e) {
if (e.getKeyChar() == '\n') {
if (this.jTextField1.getText().startsWith("/") && this.jTextField1.getText().length() > 1){
this.bot.sendRawLine(this.jTextField1.getText().substring(1));
this.jTextField1.setText("");
}
/*if(this.jTextField1.getText().startsWith("/list")){
this.bot.listChannels(">10");
this.jTextField1.setText("");
}else if(this.jTextField1.getText().startsWith("/nick ")){
String nick = this.jTextField1.getText().substring(6);
nick = this.getFirstParameter(nick);
if(nick != null & nick.length() > 0){
this.bot.changeNick(nick);
}
this.jTextField1.setText("");
}else if(this.jTextField1.getText().startsWith("/me ")){
String action = this.jTextField1.getText().substring(4);
if(action != null & action.length() > 0){
if(((String)this.getCurrentSelectedDiscussion()).charAt(0)=='#'){
this.bot.sendAction( (String)this.getCurrentSelectedDiscussion(),
action);
this.setControlMessage( (String)this.getCurrentSelectedDiscussion(),
"* " + this.bot.getNick() + " "+action);
}
}
this.jTextField1.setText("");
}else if(this.jTextField1.getText().startsWith("/join ")){
String channel = this.jTextField1.getText().substring(6);
channel = this.getFirstParameter(channel);
if(channel.charAt(0)=='#' &&
channel.length() > 1){
if (Arrays.binarySearch(this.bot.getChannels(), channel) < 0) {
this.bot.joinChannel(channel);
try {
Thread.sleep(3000);
}
catch (Exception ex) {}
this.refreshCurrentChannel();
this.refreshBanList();
}
else {
this.setChannel(channel);
this.refreshCurrentChannel();
this.refreshBanList();
}
this.jTextField1.setText("");
}
}*/
else if ( ( (String)this.getCurrentSelectedDiscussion()).equals(IrcBot.
connectionStateChannel)) {
return;
}
else if ( ( (String)this.getCurrentSelectedDiscussion()).charAt(0) == '#') {
this.bot.sendMessage(this.getCurrentSelectedDiscussion(),
this.jTextField1.getText());
this.setMessage(this.getCurrentSelectedDiscussion(), bot.getNick(),
this.jTextField1.getText());
this.jTextField1.setText("");
}
else {
this.bot.sendMessage( (String)this.getCurrentSelectedDiscussion(),
this.jTextField1.getText());
this.setMessage( (String)this.getCurrentSelectedDiscussion(),
bot.getNick(), this.jTextField1.getText());
this.jTextField1.setText("");
}
}
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
if (buffer != null){
int posX = (this.getWidth() - 650)/2;
int posY = (this.getHeight() - 550)/2;
if(posX < 0) posX = 0;
if(posY < 0) posY = 0;
g.drawImage(buffer, posX, posY, this);
}
}
void jButton1_actionPerformed(ActionEvent e) {
this.leaveDiscussion((String)this.jList2.getSelectedValue());
}
public void leaveDiscussion(String discussion){
if(!discussion.equals(ConnectionAntPanel.ircChannel) &&
discussion.charAt(0)=='#'){
this.bot.partChannel(discussion);
this.bot.removeDiscussion(discussion);
this.jList2.setListData(this.bot.getDiscussions());
this.jList2.setSelectedValue(ConnectionAntPanel.ircChannel,true);
this.refreshCurrentChannel();
this.refreshBanList();
}else if(!(discussion.charAt(0)=='#')){
this.bot.removeDiscussion(discussion);
this.jList2.setListData(this.bot.getDiscussions());
this.jList2.setSelectedValue(ConnectionAntPanel.ircChannel,true);
this.refreshCurrentChannel();
this.refreshBanList();
}
}
void jButton3_actionPerformed(ActionEvent e) {
if ( ( (String)this.getCurrentSelectedDiscussion()).charAt(0) == '#') {
if (this.jList1.getSelectedValues().length > 0) {
for (int x = 0; x < this.jList1.getSelectedValues().length; x++) {
User user = (User)this.jList1.getSelectedValues()[x];
if (!user.getNick().equals(ConnectionAntPanel.nick)){
try{
this.bot.sendCTCPCommand(user.getNick(),
"ANtsCommandCode:0001 " +
FrameAnt.getInstance(null).ga.cap.getLocalStringAddress() +
":" +
this.bot.getCaller().warriorAnt.getServerPort());
}catch(Exception ex){_logger.error("",ex);}
}
}
}
}
}
void jButton2_actionPerformed(ActionEvent e) {
if ( ( (String)this.getCurrentSelectedDiscussion()).charAt(0) == '#') {
if (this.jList1.getSelectedValues().length > 0) {
for (int x = 0; x < this.jList1.getSelectedValues().length; x++) {
User user = (User)this.jList1.getSelectedValues()[x];
if (!user.getNick().equals(ConnectionAntPanel.nick)) {
try {
this.bot.sendCTCPCommand(user.getNick(),
"ANtsCommandCode:0002 " +
this.jTextField3.getText() + " " +
(String)this.getCurrentSelectedDiscussion());
}
catch (Exception ex) {
_logger.error("",ex);
}
}
}
}
}
}
void jTextPane1_mousePressed(MouseEvent e) {
if (e.getClickCount() == 2 &&
(e.getButton() == MouseEvent.BUTTON3 ||
(e.getButton() == MouseEvent.BUTTON1 && e.isControlDown()))) {
if (this.keepCurrentViewport == false) {
this.vp = this.jScrollPane1.getViewport();
this.keepCurrentViewport = true;
}
else {
this.vp = null;
this.keepCurrentViewport = false;
}
}
}
void jTextField4_focusLost(FocusEvent e) {
//this.bot.setTopic(this.bot.getActiveChannel(),this.jTextField4.getText());
}
void jTextField4_keyPressed(KeyEvent e) {
if(e.getKeyChar()=='\n'){
this.bot.setTopic(this.bot.getActiveChannel(),this.jTextField4.getText());
}
}
public void updateUsersNumberInCurrentChannel(int number){
this.jLabel1.setText(ji.JI.i("Users")+"["+number+"]");
}
public void refreshCurrentChannel(){
//this.bot.getCaller().setIrcUsersNumberInChannel(this.bot.getUsers( (String)this.jList2.getSelectedValue()).length, (String)this.jList2.getSelectedValue());
this.updateUsersNumberInCurrentChannel(this.bot.getUsers( (String)this.jList2.getSelectedValue()).length);
Object[] selected = this.getUserList().getSelectedValues();
this.bot.refreshUsers( (String)this.jList2.getSelectedValue());
for (int x = 0; x < selected.length; x++) {
this.getUserList().setSelectedValue(selected[x], true);
}
StyledDocument discussion = this.bot.getDiscussion( (String)this.jList2.
getSelectedValue());
if (discussion != null)
this.jTextPane1.setDocument(discussion);
this.pendingDiscussions.remove(this.jList2.getSelectedValue());
this.setTopic(this.bot.getTopic( (String)this.jList2.getSelectedValue()));
this.checkOp();
}
public void refreshBanList(){
currentBanlist = new ArrayList();
this.jList3.setListData(currentBanlist.toArray());
this.jList3.revalidate();
this.bot.setMode((String)this.jList2.getSelectedValue(),"+b");
}
public void addBanlistElement(String banned) {
currentBanlist.add(banned);
this.jList3.setListData(currentBanlist.toArray());
this.jList3.revalidate();
}
void this_componentResized(ComponentEvent e) {
int width = this.getWidth() - 40;
int height = this.getHeight() - 100 - this.jPanel1.getHeight() - this.jTextField4.getHeight();
this.remove(this.jTextField4);
this.remove(this.jTextField1);
this.remove(this.jScrollPane1);
this.remove(this.jScrollPane2);
this.remove(this.jScrollPane3);
this.remove(this.jLabel1);
this.remove(this.jLabel4);
this.remove(this.jButton1);
this.remove(this.jPanel1);
this.jPanel1.remove(this.jScrollPane4);
this.jPanel1.remove(this.jLabel2);
this.add(jTextField4, new XYConstraints(2*width/12, 0, 7*width/12, -1));
this.add(jScrollPane3, new XYConstraints(9*width/12, this.jTextField4.getHeight(), 3*width/12, height));
this.add(jScrollPane2, new XYConstraints(0, this.jTextField4.getHeight(), 2*width/12, height));
this.add(jScrollPane1, new XYConstraints(2*width/12, this.jTextField4.getHeight(), 7*width/12, height));
this.add(jTextField1, new XYConstraints(width/6, this.jTextField4.getHeight() + height, 7*width/12, -1));
this.add(jLabel1, new XYConstraints(0, 0, -1, -1));
this.add(jLabel4, new XYConstraints(9*width/12, 0, -1, -1));
this.add(jButton1, new XYConstraints(9*width/12 + 5, height + 25, -1, -1));
this.jPanel1.add(this.jLabel2, new XYConstraints(4*width/12, 0, -1, -1));
this.jPanel1.add(this.jScrollPane4, new XYConstraints(4*width/12, 15, 7*width/12, 120));
this.add(jPanel1, new XYConstraints(0, height + 60, width, 140));
}
void jList2_mouseReleased(MouseEvent e) {
if(this.jList2.getSelectedValue() == null)
this.jList2.setSelectedIndex(0);
this.refreshCurrentChannel();
this.refreshBanList();
}
void jList1_mousePressed(MouseEvent e) {
if (e.getClickCount() == 1 &&
(e.getButton() == MouseEvent.BUTTON3 ||
(e.getButton() == MouseEvent.BUTTON1 && e.isControlDown()))) {
ChatPopupMenu popup = new ChatPopupMenu(this, (User)this.jList1.getSelectedValue());
popup.show(e.getComponent(), e.getX(), e.getY());
}
}
void jButton4_actionPerformed(ActionEvent e) {
String unban = (String)this.jList3.getSelectedValue();
this.bot.unBan(this.getCurrentSelectedDiscussion(), unban);
}
}
class ChatAntPanel_jTextField1_keyAdapter extends java.awt.event.KeyAdapter {
ChatAntPanel adaptee;
ChatAntPanel_jTextField1_keyAdapter(ChatAntPanel adaptee) {
this.adaptee = adaptee;
}
public void keyPressed(KeyEvent e) {
adaptee.jTextField1_keyPressed(e);
}
}
class ChatAntPanel_jButton1_actionAdapter implements java.awt.event.ActionListener {
ChatAntPanel adaptee;
ChatAntPanel_jButton1_actionAdapter(ChatAntPanel adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}
class ChatAntPanel_jButton2_actionAdapter implements java.awt.event.ActionListener {
ChatAntPanel adaptee;
ChatAntPanel_jButton2_actionAdapter(ChatAntPanel adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton2_actionPerformed(e);
}
}
class ChatAntPanel_jTextPane1_mouseAdapter extends java.awt.event.MouseAdapter {
ChatAntPanel adaptee;
ChatAntPanel_jTextPane1_mouseAdapter(ChatAntPanel adaptee) {
this.adaptee = adaptee;
}
public void mousePressed(MouseEvent e) {
adaptee.jTextPane1_mousePressed(e);
}
}
class ChatAntPanel_jTextField4_focusAdapter extends java.awt.event.FocusAdapter {
ChatAntPanel adaptee;
ChatAntPanel_jTextField4_focusAdapter(ChatAntPanel adaptee) {
this.adaptee = adaptee;
}
public void focusLost(FocusEvent e) {
adaptee.jTextField4_focusLost(e);
}
}
class ChatAntPanel_jTextField4_keyAdapter extends java.awt.event.KeyAdapter {
ChatAntPanel adaptee;
ChatAntPanel_jTextField4_keyAdapter(ChatAntPanel adaptee) {
this.adaptee = adaptee;
}
public void keyPressed(KeyEvent e) {
adaptee.jTextField4_keyPressed(e);
}
}
class ChatAntPanel_jList2_mouseAdapter extends java.awt.event.MouseAdapter {
ChatAntPanel adaptee;
ChatAntPanel_jList2_mouseAdapter(ChatAntPanel adaptee) {
this.adaptee = adaptee;
}
public void mouseReleased(MouseEvent e) {
adaptee.jList2_mouseReleased(e);
}
}
class MyUserCellRenderer extends JLabel implements ListCellRenderer {
ChatAntPanel cap;
public MyUserCellRenderer(ChatAntPanel cap) {
this.cap = cap;
setOpaque(true);
}
public Component getListCellRendererComponent(
JList list,
Object value,
int index,
boolean isSelected,
boolean cellHasFocus)
{
setText(value.toString());
boolean isPending;
if(cap != null && cap.pendingDiscussions.contains(value.toString()))
isPending = true;
else
isPending = false;
if(!isPending){
setBackground(isSelected ? Color.blue : Color.white);
setForeground(isSelected ? Color.white : Color.black);
}else{
setBackground(Color.lightGray);
setForeground(Color.black);
}
return this;
}
}
class ChatAntPanel_this_componentAdapter extends java.awt.event.ComponentAdapter {
ChatAntPanel adaptee;
ChatAntPanel_this_componentAdapter(ChatAntPanel adaptee) {
this.adaptee = adaptee;
}
public void componentResized(ComponentEvent e) {
adaptee.this_componentResized(e);
}
}
class ChatAntPanel_jList1_mouseAdapter extends java.awt.event.MouseAdapter {
ChatAntPanel adaptee;
ChatAntPanel_jList1_mouseAdapter(ChatAntPanel adaptee) {
this.adaptee = adaptee;
}
public void mousePressed(MouseEvent e) {
adaptee.jList1_mousePressed(e);
}
}
class ChatAntPanel_jButton4_actionAdapter implements java.awt.event.ActionListener {
ChatAntPanel adaptee;
ChatAntPanel_jButton4_actionAdapter(ChatAntPanel adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton4_actionPerformed(e);
}
}
The table below shows all metrics for ChatAntPanel.java.




