1 package org.simantics.charts.ui;
3 import java.util.Arrays;
5 import org.eclipse.jface.action.IAction;
6 import org.eclipse.jface.action.IContributionItem;
7 import org.simantics.charts.editor.HideItemsAction;
8 import org.simantics.charts.ontology.ChartResource;
9 import org.simantics.databoard.Bindings;
10 import org.simantics.db.ReadGraph;
11 import org.simantics.db.Resource;
12 import org.simantics.db.exception.DatabaseException;
13 import org.simantics.ui.contribution.DynamicMenuContribution;
14 import org.simantics.ui.utils.ResourceAdaptionUtils;
17 * @author Tuukka Lehtonen
19 public class HideItemsContribution extends DynamicMenuContribution {
21 public HideItemsContribution() {
24 public HideItemsContribution(String id) {
29 protected Object[] getSelectedObjects() {
30 return ResourceAdaptionUtils.toResources(getSelection());
34 protected boolean preAcceptSelection(Object[] selection) {
35 return selection.length > 0;
39 protected IContributionItem[] getContributionItems(ReadGraph graph, Object[] input) throws DatabaseException {
40 Resource[] resources = (Resource[]) input;
42 ChartResource CHART = ChartResource.getInstance(graph);
46 for (Resource r : resources) {
47 if (!graph.isInstanceOf(r, CHART.Chart_Item))
49 Boolean isHidden = graph.getPossibleRelatedValue(r, CHART.Chart_Item_hidden, Bindings.BOOLEAN);
50 if (Boolean.TRUE.equals(isHidden))
56 IAction hide = visible > 0 ? new HideItemsAction("Hide Items", true, Arrays.asList(resources)) : null;
57 IAction show = hidden > 0 ? new HideItemsAction("Unhide Items", false, Arrays.asList(resources)) : null;
58 if (hidden > 0 && visible > 0)
59 return toContributionItems(hide, show);
61 return toContributionItems(show);
62 return toContributionItems(hide);