summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/LectureLdapFilterTable.java
blob: 70d0291eb8230fb4c321f54c49c391cd5decd9b2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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<LdapFilter> {

	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;
	}

}