51 lines
1.5 KiB
Java
51 lines
1.5 KiB
Java
package envoy.client.ui;
|
|
|
|
import java.awt.Component;
|
|
import java.text.SimpleDateFormat;
|
|
|
|
import javax.swing.JLabel;
|
|
import javax.swing.JList;
|
|
import javax.swing.ListCellRenderer;
|
|
|
|
import envoy.schema.Message;
|
|
|
|
/**
|
|
* Defines how a message is displayed.<br>
|
|
* <br>
|
|
*
|
|
* Project: <strong>envoy-client</strong><br>
|
|
* File: <strong>UserListRenderer.java</strong><br>
|
|
* Created: <strong>19 Oct 2019</strong><br>
|
|
*
|
|
* @author Kai S. K. Engelbart
|
|
* @since Envoy v0.1-alpha
|
|
*/
|
|
public class MessageListRenderer extends JLabel implements ListCellRenderer<Message> {
|
|
|
|
private static final long serialVersionUID = 5164417379767181198L;
|
|
|
|
@Override
|
|
public Component getListCellRendererComponent(JList<? extends Message> list, Message value, int index,
|
|
boolean isSelected, boolean cellHasFocus) {
|
|
if (isSelected) {
|
|
setBackground(list.getSelectionBackground());
|
|
setForeground(list.getSelectionForeground());
|
|
} else {
|
|
setBackground(list.getBackground());
|
|
setForeground(list.getForeground());
|
|
}
|
|
|
|
setOpaque(true);
|
|
|
|
final String text = value.getContent().get(0).getText();
|
|
final String date = value.getMetaData().getDate() == null ? ""
|
|
: new SimpleDateFormat("dd.MM.yyyy hh:mm ")
|
|
.format(value.getMetaData().getDate().toGregorianCalendar().getTime());
|
|
|
|
setText(String.format(
|
|
"<html><p style=\"color:#d2d235\"><b><small>%s</b></small><br><p style=\"color:white\">%s</html>",
|
|
date,
|
|
text));
|
|
return this;
|
|
}
|
|
} |