package org.zaproxy.zap.view.renderer; import java.awt.Component; import javax.swing.JList; import javax.swing.border.Border; import javax.swing.border.EmptyBorder; import javax.swing.plaf.basic.BasicComboBoxRenderer; import org.parosproxy.paros.Constant; import org.zaproxy.zap.users.User; /** * A renderer for properly displaying the name of an User in a ComboBox. If the user is disabled, * the list item is disabled and marked as such. */ public class UserListCellRenderer extends BasicComboBoxRenderer { private static final long serialVersionUID = 3654541772447187317L; private static final String DISABLED_STRING = " (" + Constant.messages.getString("generic.value.disabled") + ')'; private static final Border BORDER = new EmptyBorder(2, 3, 3, 3); @Override @SuppressWarnings("rawtypes") public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); if (value != null) { User user = (User) value; if (!user.isEnabled()) setText(user.getName() + DISABLED_STRING); else setText(user.getName()); setEnabled(user.isEnabled()); } setBorder(BORDER); return this; } }