single click opens ang closes a group

cusax-fix
Yana Stamcheva 20 years ago
parent 00aa3bfcdd
commit 7e63ef44b3

@ -537,6 +537,31 @@ public void mousePressed(MouseEvent e)
}
else if ((e.getModifiers() & InputEvent.BUTTON1_MASK) != 0){
fireContactListEvent(group, ContactListEvent.GROUP_SELECTED);
//get the component under the mouse
Component component = this.getHorizontalComponent(renderer,
translatedX);
if (component instanceof JPanel) {
if (component.getName() != null
&& component.getName().equals("buttonsPanel")) {
JPanel panel = (JPanel) component;
int internalX = translatedX
- (renderer.getWidth() - panel.getWidth() - 2);
Component c = getHorizontalComponent(panel, internalX);
if (c instanceof JLabel) {
if (listModel.isGroupClosed(group)) {
listModel.openGroup(group);
}
else {
listModel.closeGroup(group);
}
}
}
}
}
}

@ -35,7 +35,7 @@ public class ContactListCellRenderer extends JPanel
private JLabel nameLabel = new JLabel();
private JPanel buttonsPanel;
private SIPCommButton extendPanelButton = new SIPCommButton(ImageLoader
.getImage(ImageLoader.MORE_INFO_ICON), ImageLoader
.getImage(ImageLoader.MORE_INFO_ICON));
@ -186,13 +186,26 @@ public Component getListCellRendererComponent(JList list, Object value,
//this.remove(buttonsPanel);
this.buttonsPanel.removeAll();
JLabel groupContentIndicator = new JLabel();
if(((ContactListModel)list.getModel()).isGroupClosed(groupItem))
this.buttonsPanel.add(new JLabel(new ImageIcon(ImageLoader
.getImage(ImageLoader.CLOSED_GROUP))));
groupContentIndicator.setIcon(new ImageIcon(ImageLoader
.getImage(ImageLoader.CLOSED_GROUP)));
else
this.buttonsPanel.add(new JLabel(new ImageIcon(ImageLoader
.getImage(ImageLoader.OPENED_GROUP))));
groupContentIndicator.setIcon(new ImageIcon(ImageLoader
.getImage(ImageLoader.OPENED_GROUP)));
//the width is fixed in
//order all the icons to be with the same size
groupContentIndicator.setBounds(0, 0, 12, 12);
this.buttonsPanel.setPreferredSize(
new Dimension(17, 16));
this.buttonsPanel.setBounds(
list.getWidth() - 2 - 17, 0,
17, 16);
this.buttonsPanel.add(groupContentIndicator);
this.isLeaf = false;
}

Loading…
Cancel
Save