private void update() { if (party.memb != om) { Collection<Member> old = new HashSet<Member>(avs.keySet()); for (final Member m : (om = party.memb).values()) { if (m.gobid == ign) continue; Avaview w = avs.get(m); if (w == null) { w = new Avaview(Coord.z, this, m.gobid, new Coord(27, 27)) { private Tex tooltip = null; public Object tooltip(Coord c, boolean again) { Gob gob = m.getgob(); if (gob == null) return (tooltip); KinInfo ki = gob.getattr(KinInfo.class); if (ki == null) return (null); return (tooltip = ki.rendered()); } }; avs.put(m, w); } else { old.remove(m); } } for (Member m : old) { ui.destroy(avs.get(m)); avs.remove(m); } List<Map.Entry<Member, Avaview>> wl = new ArrayList<Map.Entry<Member, Avaview>>(avs.entrySet()); Collections.sort( wl, new Comparator<Map.Entry<Member, Avaview>>() { public int compare(Entry<Member, Avaview> a, Entry<Member, Avaview> b) { return (a.getKey().gobid - b.getKey().gobid); } }); int i = 0; for (Map.Entry<Member, Avaview> e : wl) { e.getValue().c = new Coord((i % 2) * 43, (i / 2) * 43 + 24); i++; } } for (Map.Entry<Member, Avaview> e : avs.entrySet()) { e.getValue().color = e.getKey().col; } if ((avs.size() > 0) && (leave == null)) { leave = new Button(Coord.z, 84, this, "Leave party"); } if ((avs.size() == 0) && (leave != null)) { ui.destroy(leave); leave = null; } sz.y = MainFrame.getScreenSize().y - c.y; }