package pspnetparty.client.swt;
import java.util.Map;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerSorter;
import org.eclipse.swt.graphics.Image;
import pspnetparty.lib.LobbyUser;
public class LobbyUserUtils {
public static final IStructuredContentProvider CONTENT_PROVIDER = new IStructuredContentProvider() {
@Override
public void inputChanged(Viewer arg0, Object arg1, Object arg2) {
}
@Override
public void dispose() {
}
@Override
public Object[] getElements(Object input) {
@SuppressWarnings("unchecked")
Map<String, LobbyUser> map = (Map<String, LobbyUser>) input;
return map.values().toArray();
}
};
public static final ITableLabelProvider LABEL_PROVIDER = new ITableLabelProvider() {
@Override
public void removeListener(ILabelProviderListener arg0) {
}
@Override
public boolean isLabelProperty(Object arg0, String arg1) {
return false;
}
@Override
public void dispose() {
}
@Override
public void addListener(ILabelProviderListener arg0) {
}
@Override
public Image getColumnImage(Object element, int index) {
return null;
}
@Override
public String getColumnText(Object element, int index) {
LobbyUser user = (LobbyUser) element;
switch (index) {
case 0:
return user.getName();
case 1:
switch (user.getState()) {
case LOGIN:
return "参加中";
case AFK:
return "離席中";
case PLAYING:
return "プレイ中";
case INACTIVE:
return "非アクティブ";
default:
return "";
}
case 2:
return user.getProfileOneLine();
}
return "";
}
};
public static final ViewerSorter NAME_SORTER = new ViewerSorter() {
@Override
public int compare(Viewer viewer, Object e1, Object e2) {
LobbyUser u1 = (LobbyUser) e1;
LobbyUser u2 = (LobbyUser) e2;
return u1.getName().compareTo(u2.getName());
}
};
public static final ViewerSorter STATE_SORTER = new ViewerSorter() {
@Override
public int compare(Viewer viewer, Object e1, Object e2) {
LobbyUser u1 = (LobbyUser) e1;
LobbyUser u2 = (LobbyUser) e2;
return u1.getState().compareTo(u2.getState());
}
};
}