package org.openslx.dozmod.gui.control.table; import java.awt.Color; import java.awt.Component; import javax.swing.UIManager; import org.openslx.bwlp.thrift.iface.LdapFilter; import org.openslx.dozmod.gui.helper.ColorUtil; @SuppressWarnings("serial") public class LectureLdapFilterTable extends CheckListTable { public static final ListTableColumn COL_TITLE = new ListTableColumn("Name"); public static final ListTableColumn COL_ATTRIBUTE = new ListTableColumn("Attribut"); public static final ListTableColumn COL_VALUE = new ListTableColumn("Wert"); private final Color invalidColor; public LectureLdapFilterTable() { super(COL_TITLE, COL_ATTRIBUTE, COL_VALUE); Color fg = UIManager.getColor("Table.foreground"); Color bg = UIManager.getColor("Table.background"); invalidColor = ColorUtil.blend(fg, bg, .66f); } @Override protected Object getValueAtInternal2(LdapFilter item, ListTableColumn columnIndex) { if (columnIndex == COL_TITLE) { if (item.filterId == 0) return ""; return item.title; } if (columnIndex == COL_ATTRIBUTE) return item.attribute; if (columnIndex == COL_VALUE) return item.value; throw new IndexOutOfBoundsException(); } @Override public Component prepareRenderHook2(Component component, LdapFilter row, ListTableColumn listTableColumn, boolean isSelected) { if (row.filterId == 0) { component.setForeground(isSelected ? getSelectionForeground() : getForeground()); } else { component.setForeground(invalidColor); } return component; } @Override protected boolean isItemCheckable(LdapFilter item) { return item.filterId > 0; } }