Change all contactlist related components to get theirs data from the MetaContactList

cusax-fix
Yana Stamcheva 20 years ago
parent dfb17472bd
commit d0664f23e7

@ -7,36 +7,18 @@
package net.java.sip.communicator.impl.gui.main.contactlist;
import java.awt.BasicStroke;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.Point;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowFocusListener;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JWindow;
import javax.swing.SwingUtilities;
import net.java.sip.communicator.impl.gui.main.ContactItem;
import net.java.sip.communicator.impl.gui.main.customcontrols.TransparentBackground;
import net.java.sip.communicator.impl.gui.main.utils.AntialiasingManager;
import net.java.sip.communicator.impl.gui.main.utils.Constants;
import net.java.sip.communicator.service.contactlist.MetaContact;
/**
* @author Yana Stamcheva
@ -49,11 +31,11 @@ public class ContactInfoPanel extends JDialog
private JPanel protocolsPanel = new JPanel(new GridLayout(0, 1));
private ContactItem contactItem;
private MetaContact contactItem;
TransparentBackground bg;
public ContactInfoPanel(Frame owner, ContactItem contactItem){
public ContactInfoPanel(Frame owner, MetaContact contactItem){
super(owner);
@ -86,8 +68,8 @@ public ContactInfoPanel(Frame owner, ContactItem contactItem){
}
private void init() {
String[] protocolList = this.contactItem.getProtocolList();
/*
String[] protocolList = this.contactItem.getC();
if(protocolsPanel.getComponentCount() == 0){
for(int i = 0; i < protocolList.length; i ++){
@ -101,6 +83,7 @@ private void init() {
}
this.bg.add(protocolsPanel, BorderLayout.CENTER);
*/
}
public JPanel getProtocolsPanel() {

@ -7,42 +7,30 @@
package net.java.sip.communicator.impl.gui.main.contactlist;
import gov.nist.javax.sip.parser.ContactParser;
import java.awt.BasicStroke;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.Stroke;
import java.awt.Transparency;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTree;
import javax.swing.JWindow;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreeCellRenderer;
import net.java.sip.communicator.impl.gui.main.ContactItem;
import net.java.sip.communicator.impl.gui.main.GroupItem;
import net.java.sip.communicator.impl.gui.main.customcontrols.SIPCommButton;
import net.java.sip.communicator.impl.gui.main.customcontrols.TransparentBackground;
import net.java.sip.communicator.impl.gui.main.utils.AntialiasingManager;
import net.java.sip.communicator.impl.gui.main.utils.Constants;
import net.java.sip.communicator.impl.gui.main.utils.ImageLoader;
import net.java.sip.communicator.service.contactlist.MetaContact;
import net.java.sip.communicator.service.contactlist.MetaContactGroup;
import net.kano.joscar.ssiitem.GroupItem;
public class ContactListCellRenderer extends JPanel
implements TreeCellRenderer {
@ -87,13 +75,13 @@ public Component getTreeCellRendererComponent(JTree tree, Object value,
if(leaf){
if (node.getUserObject() instanceof ContactItem) {
if (node.getUserObject() instanceof MetaContact) {
ContactItem contactItem = (ContactItem) node.getUserObject();
MetaContact contactItem = (MetaContact) node.getUserObject();
this.nameLabel.setText(contactItem.getNickName());
this.nameLabel.setText(contactItem.getDisplayName());
this.nameLabel.setIcon(contactItem.getUserIcon());
//this.nameLabel.setIcon(contactItem.getUserIcon());
this.nameLabel.setFont(this.getFont().deriveFont(Font.PLAIN));
@ -105,7 +93,7 @@ public Component getTreeCellRendererComponent(JTree tree, Object value,
}
}
else{
if (node.getUserObject() instanceof GroupItem) {
if (node.getUserObject() instanceof MetaContactGroup) {
GroupItem groupItem = (GroupItem) node.getUserObject();

@ -10,12 +10,10 @@
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Cursor;
import java.awt.Point;
import java.awt.event.InputEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowEvent;
import java.util.Hashtable;
import javax.swing.JButton;
@ -24,17 +22,14 @@
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;
import net.java.sip.communicator.impl.gui.main.ContactItem;
import net.java.sip.communicator.impl.gui.main.ContactList;
import net.java.sip.communicator.impl.gui.main.ContactRightButtonMenu;
import net.java.sip.communicator.impl.gui.main.GroupItem;
import net.java.sip.communicator.impl.gui.main.MainFrame;
import net.java.sip.communicator.impl.gui.main.message.MessageWindow;
import net.java.sip.communicator.service.contactlist.MetaContact;
import net.java.sip.communicator.service.contactlist.MetaContactGroup;
import net.java.sip.communicator.service.contactlist.MetaContactListService;
/**
@ -45,8 +40,12 @@
public class ContactListPanel extends JScrollPane
implements MouseListener {
private ContactList contactList;
private MetaContactListService contactList;
private MetaContactGroup root;
private ContactNode rootNode;
private MainFrame parent;
private ContactListTree contactListTree;
@ -57,19 +56,8 @@ public class ContactListPanel extends JScrollPane
public ContactListPanel(MainFrame parent) {
this.parent = parent;
this.contactList = parent.getContactList();
this.contactListTree = new ContactListTree(new ContactNode(
new GroupItem("root")));
this.contactListTree.addMouseListener(this);
this.initTree();
this.treePanel.add(contactListTree, BorderLayout.NORTH);
this.parent = parent;
this.getViewport().add(treePanel);
this.treePanel.setBackground(Color.WHITE);
@ -77,16 +65,18 @@ public ContactListPanel(MainFrame parent) {
private void initTree() {
// TODO: To be removed!!!!
ContactNode generalGroup = (ContactNode) this.contactListTree
.addChild(new GroupItem("General"));
this.root = this.contactList.getRoot();
this.rootNode = new ContactNode(this.root);
this.contactListTree = new ContactListTree(rootNode);
this.contactListTree.addAllContacts(this.rootNode, root);
this.contactListTree.addMouseListener(this);
for (int i = 0; i < this.contactList.getAllContacts().size(); i++) {
this.treePanel.add(contactListTree, BorderLayout.NORTH);
this.contactListTree.addChild(generalGroup,
(ContactItem) this.contactList.getAllContacts().get(i),
true);
}
}
public void mouseClicked(MouseEvent e) {
@ -142,7 +132,7 @@ public void mousePressed(MouseEvent e) {
Component component = renderer.findComponentAt(translatedX,
translatedY);
ContactItem contactItem = (ContactItem) node
MetaContact contactItem = (MetaContact) node
.getUserObject();
if (component instanceof JLabel) {
@ -189,9 +179,9 @@ public void mouseReleased(MouseEvent e) {
private class RunMessageWindow implements Runnable {
private ContactItem contactItem;
private MetaContact contactItem;
private RunMessageWindow(ContactItem contactItem) {
private RunMessageWindow(MetaContact contactItem) {
this.contactItem = contactItem;
}
@ -222,14 +212,15 @@ public void run() {
}
}
private class RunInfoWindow implements Runnable {
private ContactItem contactItem;
private MetaContact contactItem;
private Point p;
private RunInfoWindow(Point p, ContactItem contactItem) {
private RunInfoWindow(Point p, MetaContact contactItem) {
this.p = p;
this.contactItem = contactItem;
@ -250,4 +241,15 @@ public void run() {
}
}
public MetaContactListService getContactList() {
return contactList;
}
public void setContactList(MetaContactListService contactList) {
this.contactList = contactList;
this.initTree();
}
}

@ -8,6 +8,7 @@
package net.java.sip.communicator.impl.gui.main.contactlist;
import java.awt.Cursor;
import java.util.Iterator;
import javax.swing.BorderFactory;
import javax.swing.JTree;
@ -16,6 +17,8 @@
import javax.swing.tree.TreeSelectionModel;
import net.java.sip.communicator.impl.gui.main.ui.SIPCommTreeUI;
import net.java.sip.communicator.service.contactlist.MetaContact;
import net.java.sip.communicator.service.contactlist.MetaContactGroup;
public class ContactListTree extends JTree {
@ -89,8 +92,8 @@ public ContactNode addChild(Object child) {
* @return The added node.
*/
public ContactNode addChild(ContactNode parent,
Object child,
boolean shouldBeVisible) {
Object child,
boolean shouldBeVisible) {
ContactNode childNode =
new ContactNode(child);
@ -105,4 +108,34 @@ public ContactNode addChild(ContactNode parent,
return childNode;
}
public void addAllContacts(ContactNode groupNode, MetaContactGroup group){
if(group.countSubgroups() > 0){
Iterator groups = group.getSubgroups();
while(groups.hasNext()){
MetaContactGroup subGroup = (MetaContactGroup)groups.next();
ContactNode subGroupNode
= this.addChild(groupNode, subGroup, true);
this.addAllContacts(subGroupNode, subGroup);
}
}
if(group.countChildContacts() > 0 ){
Iterator childContacts = group.getChildContacts();
while(childContacts.hasNext()){
MetaContact childContact = (MetaContact)childContacts.next();
this.addChild(groupNode, childContact, true);
}
}
}
}

@ -7,13 +7,10 @@
package net.java.sip.communicator.impl.gui.main.contactlist;
import java.awt.Cursor;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreeNode;
import net.java.sip.communicator.impl.gui.main.ContactItem;
import net.java.sip.communicator.impl.gui.main.GroupItem;
import net.java.sip.communicator.service.contactlist.MetaContact;
import net.java.sip.communicator.service.contactlist.MetaContactGroup;
public class ContactNode extends DefaultMutableTreeNode {
@ -32,13 +29,15 @@ public String toString() {
String result = "";
if (userObject == null) {
return null;
return null;
} else {
//TODO: to replace ContactItem with MetaContact and GroupItem with MetaGroup
if (userObject instanceof ContactItem)
result = ((ContactItem)userObject).getNickName();
else if (userObject instanceof GroupItem)
result = ((GroupItem)userObject).getGroupName();
if (userObject instanceof MetaContact)
result = ((MetaContact)userObject).getDisplayName();
else if (userObject instanceof MetaContactGroup)
result = ((MetaContactGroup)userObject).getGroupName();
}
return result;

Loading…
Cancel
Save