1 package org.simantics.charts.ui;
\r
3 import org.eclipse.jface.resource.FontDescriptor;
\r
4 import org.eclipse.swt.SWT;
\r
5 import org.simantics.browsing.ui.content.LabelDecorator;
\r
6 import org.simantics.browsing.ui.model.labeldecorators.AbstractLabelDecorator;
\r
7 import org.simantics.browsing.ui.model.labeldecorators.LabelDecorationRule;
\r
8 import org.simantics.charts.ontology.ChartResource;
\r
9 import org.simantics.databoard.Bindings;
\r
10 import org.simantics.db.ReadGraph;
\r
11 import org.simantics.db.Resource;
\r
12 import org.simantics.db.exception.DatabaseException;
\r
15 * Used for labeling both chart plots and subscription items.
\r
17 * @author Tuukka Lehtonen
\r
19 public class ChartItemLabelDecorationRule implements LabelDecorationRule {
\r
21 public static final ChartItemLabelDecorationRule INSTANCE = new ChartItemLabelDecorationRule();
\r
24 public boolean isCompatible(Class<?> contentType) {
\r
25 return contentType.equals(Resource.class);
\r
29 public LabelDecorator getLabelDecorator(ReadGraph graph, Object content) throws DatabaseException {
\r
30 Resource item = (Resource) content;
\r
31 ChartResource CHART = ChartResource.getInstance(graph);
\r
33 Boolean hidden = graph.getPossibleRelatedValue(item, CHART.Chart_Item_hidden, Bindings.BOOLEAN);
\r
34 if (hidden == null || !hidden)
\r
37 return HIDDEN_DECORATOR;
\r
40 private static class HiddenLabelDecorator extends AbstractLabelDecorator {
\r
41 @SuppressWarnings("unchecked")
\r
43 public <F> F decorateFont(F font, String column, int itemIndex) {
\r
44 return (F) ((FontDescriptor) font).withStyle(SWT.ITALIC);
\r
47 public String decorateLabel(String label, String column, int itemIndex) {
\r
48 return label + " (hidden)";
\r
52 private static HiddenLabelDecorator HIDDEN_DECORATOR = new HiddenLabelDecorator();
\r