You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.2 KiB
57 lines
1.2 KiB
package com.jotuntech.sketcher.client;
|
|
|
|
import java.awt.Color;
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
|
|
import javax.swing.BoxLayout;
|
|
import javax.swing.JPanel;
|
|
import javax.swing.event.ChangeEvent;
|
|
import javax.swing.event.ChangeListener;
|
|
|
|
import com.jotuntech.sketcher.common.TwoWayHashMap;
|
|
import com.jotuntech.sketcher.common.User;
|
|
|
|
public class JUserList extends JPanel {
|
|
TwoWayHashMap<Integer, User> userMap;
|
|
Map<Integer, JUserEntry> entryMap;
|
|
|
|
public JUserList(TwoWayHashMap<Integer, User> userMap) {
|
|
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
|
|
|
|
this.setBackground(Color.WHITE);
|
|
this.setOpaque(true);
|
|
|
|
entryMap = new HashMap<Integer, JUserEntry>();
|
|
|
|
this.userMap = userMap;
|
|
userMap.addChangeListener(new ChangeListener() {
|
|
public void stateChanged(ChangeEvent e) {
|
|
redo();
|
|
}
|
|
});
|
|
|
|
redo();
|
|
}
|
|
|
|
private void redo() {
|
|
entryMap.clear();
|
|
removeAll();
|
|
for(Map.Entry<Integer, User> e : userMap.entrySet()) {
|
|
JUserEntry ue = new JUserEntry(e.getValue().getName());
|
|
add(ue);
|
|
entryMap.put(e.getKey(), ue);
|
|
}
|
|
this.revalidate();
|
|
}
|
|
|
|
public JUserEntry getEntry(Integer key) {
|
|
return entryMap.get(key);
|
|
}
|
|
|
|
public void clearVoice() {
|
|
for(JUserEntry ue : entryMap.values()) {
|
|
ue.clearVoice();
|
|
}
|
|
}
|
|
}
|
|
|