63 lines
1.5 KiB
Java
63 lines
1.5 KiB
Java
package envoy.client.ui;
|
|
|
|
import java.awt.BorderLayout;
|
|
import java.awt.Dimension;
|
|
|
|
import javax.swing.JComponent;
|
|
import javax.swing.JLabel;
|
|
|
|
import envoy.client.data.Settings;
|
|
import envoy.client.ui.list.ComponentList;
|
|
import envoy.data.User;
|
|
import envoy.data.User.UserStatus;
|
|
|
|
/**
|
|
* Project: <strong>envoy-client</strong>
|
|
* File: <strong>UserComponent.java</strong>
|
|
* Created: <strong>21.03.2020</strong>
|
|
*
|
|
* @author Kai S. K. Engelbart
|
|
* @since Envoy v0.1-beta
|
|
*/
|
|
public class UserComponent extends JComponent {
|
|
|
|
private static final long serialVersionUID = 8450602172939729585L;
|
|
|
|
public UserComponent(ComponentList<? extends User> list, User user) {
|
|
final Theme theme = Settings.getInstance().getCurrentTheme();
|
|
|
|
setLayout(new BorderLayout());
|
|
|
|
// Panel background
|
|
setBackground(theme.getCellColor());
|
|
setOpaque(true);
|
|
setPreferredSize(new Dimension(100, 35));
|
|
|
|
// TODO add profile picture support in BorderLayout.West
|
|
|
|
JLabel username = new JLabel(user.getName());
|
|
username.setForeground(theme.getUserNameColor());
|
|
add(username, BorderLayout.CENTER);
|
|
|
|
final UserStatus status = user.getStatus();
|
|
JLabel statusLabel = new JLabel(status.toString());
|
|
Color foreground;
|
|
switch (status) {
|
|
case AWAY:
|
|
foreground = Color.yellow;
|
|
break;
|
|
case BUSY:
|
|
foreground = Color.blue;
|
|
break;
|
|
case ONLINE:
|
|
foreground = Color.green;
|
|
break;
|
|
default:
|
|
foreground = Color.lightGray;
|
|
break;
|
|
}
|
|
statusLabel.setForeground(foreground);
|
|
add(statusLabel, BorderLayout.NORTH);
|
|
}
|
|
}
|