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