]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.browsing.ui.common/src/org/simantics/browsing/ui/common/processors/DefaultViewpointContributionsProcessor.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.browsing.ui.common / src / org / simantics / browsing / ui / common / processors / DefaultViewpointContributionsProcessor.java
index 9747d0ebc508b30faeb6b45c4be465929a3bfff1..602fc85a7021de58cc1e6d346a0e123766ce70a9 100644 (file)
-/*******************************************************************************\r
- * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
- * in Industry THTH ry.\r
- * All rights reserved. This program and the accompanying materials\r
- * are made available under the terms of the Eclipse Public License v1.0\r
- * which accompanies this distribution, and is available at\r
- * http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- * Contributors:\r
- *     VTT Technical Research Centre of Finland - initial API and implementation\r
- *******************************************************************************/\r
-package org.simantics.browsing.ui.common.processors;\r
-\r
-import java.util.ArrayList;\r
-import java.util.Collection;\r
-import java.util.Collections;\r
-\r
-import org.simantics.browsing.ui.BuiltinKeys;\r
-import org.simantics.browsing.ui.NodeContext;\r
-import org.simantics.browsing.ui.NodeContext.QueryKey;\r
-import org.simantics.browsing.ui.NodeQueryManager;\r
-import org.simantics.browsing.ui.SelectionRequest;\r
-import org.simantics.browsing.ui.Tester;\r
-import org.simantics.browsing.ui.common.NodeContextUtil;\r
-import org.simantics.browsing.ui.common.Testers;\r
-import org.simantics.browsing.ui.content.ContributionViewpoint;\r
-import org.simantics.browsing.ui.content.Viewpoint;\r
-import org.simantics.browsing.ui.content.ViewpointContribution;\r
-import org.simantics.browsing.ui.content.ViewpointContributionFactory;\r
-\r
-public class DefaultViewpointContributionsProcessor extends AbstractNodeQueryProcessor<Collection<ViewpointContribution>> {\r
-\r
-    public static final Collection<ViewpointContribution> EMPTY = Collections.emptyList();\r
-\r
-    @Override\r
-    public QueryKey<Collection<ViewpointContribution>> getIdentifier() {\r
-        return BuiltinKeys.VIEWPOINT_CONTRIBUTIONS;\r
-    }\r
-\r
-    private String extractFilterString(Collection<SelectionRequest> requests) {\r
-        if(requests == null) return null;\r
-        for(SelectionRequest request : requests) {\r
-            if(SelectionRequest.Request.FILTER.equals(request.getRequest())) {\r
-                return request.getData();\r
-            }\r
-        }\r
-        return null;\r
-    }\r
-\r
-    // TODO: evaluate still if this is ok\r
-    private String adjustFilter(String filter) {\r
-//        System.out.println("DefaultViewpointContributionsProcessor.adjustFilter=" + filter);\r
-        if(filter == null) return null;\r
-        String[] tokens = filter.split(" ");\r
-        StringBuilder b = new StringBuilder();\r
-        boolean first = true;\r
-        for(String token : tokens) {\r
-//            System.out.println("DefaultViewpointContributionsProcessor.token=" + token);\r
-            if(token.startsWith("$")) {\r
-                if(first) first = false;\r
-                else b.append(" ");\r
-                b.append(token.substring(1));\r
-            }\r
-        }\r
-        return b.toString();\r
-    }\r
-\r
-    @Override\r
-    public Collection<ViewpointContribution> query(NodeQueryManager manager, NodeContext context_) {\r
-\r
-        final Viewpoint viewpoint = manager.query(context_, BuiltinKeys.SELECTED_VIEWPOINT);\r
-        if (viewpoint == null)\r
-            return EMPTY;\r
-\r
-        if(viewpoint instanceof ContributionViewpoint) {\r
-\r
-            String filterString = null;\r
-            Collection<SelectionRequest> selectionRequests = manager.query(context_, BuiltinKeys.SELECTION_REQUESTS);\r
-            filterString = extractFilterString(selectionRequests);\r
-\r
-            String adjustedFilter = adjustFilter(filterString);\r
-\r
-            //System.out.println("DefaultViewpointContributionsProcessor: filter queries = " + filterString + " -> " + adjustedFilter);\r
-\r
-            NodeContext context = NodeContextUtil.withConstant(context_, BuiltinKeys.FILTER, adjustedFilter);\r
-\r
-            ArrayList<ViewpointContribution> result = new ArrayList<ViewpointContribution>();\r
-            ContributionViewpoint contributionViewpoint = (ContributionViewpoint)viewpoint;\r
-            for(ViewpointContributionFactory factory : contributionViewpoint.getContributions()) {\r
-//             System.out.println("viewpoint contribution " + factory);\r
-//             Class<?> clazz = factory.getInputClass();\r
-//             Tester test = factory.getNodeContextTester();\r
-//             if(clazz.isInstance(context.getConstant(BuiltinKeys.INPUT))) {\r
-//                     if(test == null || test.test(manager, context)) {\r
-                result.add(manager.query(context, new BuiltinKeys.ViewpointContributionKey(factory)));\r
-//                     }\r
-//             }\r
-            }\r
-            return result;\r
-\r
-        } else {\r
-\r
-            ViewpointContribution contribution = new ViewpointContribution() {\r
-\r
-                @Override\r
-                public Collection<NodeContext> getContribution() {\r
-                    ArrayList<NodeContext> result = new ArrayList<NodeContext>();\r
-                    for(NodeContext context : viewpoint.getChildren()) result.add(context);\r
-                    return result;\r
-                }\r
-\r
-                @Override\r
-                public Tester getNodeContextTester() {\r
-                    return Testers.PASS;\r
-                }\r
-\r
-                @Override\r
-                public Class<?> getInputClass() {\r
-                    return Object.class;\r
-                }\r
-\r
-            };\r
-\r
-            return Collections.singletonList(contribution);\r
-\r
-        }\r
-\r
-\r
-//        Collection<ViewpointContribution> contributions = manager.query(context, BuiltinKeys.VIEWPOINT_CONTRIBUTIONS);\r
-//        if (contributions == null)\r
-//            return PrunedChildrenResult.EMPTY;\r
-//\r
-//        HashSet<INodeContext> children = new HashSet<INodeContext>();\r
-//\r
-//        for(ViewpointContribution contribution : contributions) {\r
-//            children.addAll(contribution.getContribution());\r
-//        }\r
-//\r
-////        Viewpoint viewpoint = manager.query(context, BuiltinKeys.SELECTED_VIEWPOINT);\r
-////        if (viewpoint == null)\r
-////            return PrunedChildrenResult.EMPTY;\r
-////\r
-////        INodeContext[] children = viewpoint.getChildren();\r
-//\r
-//        Collection<SelectionRequest> selectionRequests = manager.query(context, BuiltinKeys.SELECTION_REQUESTS);\r
-//        if (selectionRequests == null)\r
-//            return new PrunedChildrenResult(children.size(), children.toArray(INodeContext.NONE));\r
-//\r
-//        SelectionRequest[] reqs = selectionRequests.toArray(new SelectionRequest[selectionRequests.size()]);\r
-//\r
-//        ArrayList<INodeContext> pruned = new ArrayList<INodeContext>();\r
-//        for (INodeContext ctx : children) {\r
-//            boolean add = true;\r
-//\r
-//            if (selectionRequests != null) {\r
-//                for(SelectionRequest req : reqs) {\r
-//                    if (req.getRequest() == SelectionRequest.Request.HIDE) {\r
-//                        if (req.isIncluded(manager, ctx)) {\r
-//                            add = false;\r
-//                            break;\r
-//                        }\r
-//                    }\r
-//                }\r
-//            }\r
-//\r
-//            if (add)\r
-//                pruned.add(ctx);\r
-//        }\r
-//        return new PrunedChildrenResult(children.size(), pruned.toArray(INodeContext.NONE));\r
-\r
-    }\r
-\r
-    @Override\r
-    public String toString() {\r
-        return "ViewpointContributionsProcessor";\r
-    }\r
-\r
+/*******************************************************************************
+ * Copyright (c) 2007, 2010 Association for Decentralized Information Management
+ * in Industry THTH ry.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     VTT Technical Research Centre of Finland - initial API and implementation
+ *******************************************************************************/
+package org.simantics.browsing.ui.common.processors;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+
+import org.simantics.browsing.ui.BuiltinKeys;
+import org.simantics.browsing.ui.NodeContext;
+import org.simantics.browsing.ui.NodeContext.QueryKey;
+import org.simantics.browsing.ui.NodeQueryManager;
+import org.simantics.browsing.ui.SelectionRequest;
+import org.simantics.browsing.ui.Tester;
+import org.simantics.browsing.ui.common.NodeContextUtil;
+import org.simantics.browsing.ui.common.Testers;
+import org.simantics.browsing.ui.content.ContributionViewpoint;
+import org.simantics.browsing.ui.content.Viewpoint;
+import org.simantics.browsing.ui.content.ViewpointContribution;
+import org.simantics.browsing.ui.content.ViewpointContributionFactory;
+
+public class DefaultViewpointContributionsProcessor extends AbstractNodeQueryProcessor<Collection<ViewpointContribution>> {
+
+    public static final Collection<ViewpointContribution> EMPTY = Collections.emptyList();
+
+    @Override
+    public QueryKey<Collection<ViewpointContribution>> getIdentifier() {
+        return BuiltinKeys.VIEWPOINT_CONTRIBUTIONS;
+    }
+
+    private String extractFilterString(Collection<SelectionRequest> requests) {
+        if(requests == null) return null;
+        for(SelectionRequest request : requests) {
+            if(SelectionRequest.Request.FILTER.equals(request.getRequest())) {
+                return request.getData();
+            }
+        }
+        return null;
+    }
+
+    // TODO: evaluate still if this is ok
+    private String adjustFilter(String filter) {
+//        System.out.println("DefaultViewpointContributionsProcessor.adjustFilter=" + filter);
+        if(filter == null) return null;
+        String[] tokens = filter.split(" ");
+        StringBuilder b = new StringBuilder();
+        boolean first = true;
+        for(String token : tokens) {
+//            System.out.println("DefaultViewpointContributionsProcessor.token=" + token);
+            if(token.startsWith("$")) {
+                if(first) first = false;
+                else b.append(" ");
+                b.append(token.substring(1));
+            }
+        }
+        return b.toString();
+    }
+
+    @Override
+    public Collection<ViewpointContribution> query(NodeQueryManager manager, NodeContext context_) {
+
+        final Viewpoint viewpoint = manager.query(context_, BuiltinKeys.SELECTED_VIEWPOINT);
+        if (viewpoint == null)
+            return EMPTY;
+
+        if(viewpoint instanceof ContributionViewpoint) {
+
+            String filterString = null;
+            Collection<SelectionRequest> selectionRequests = manager.query(context_, BuiltinKeys.SELECTION_REQUESTS);
+            filterString = extractFilterString(selectionRequests);
+
+            String adjustedFilter = adjustFilter(filterString);
+
+            //System.out.println("DefaultViewpointContributionsProcessor: filter queries = " + filterString + " -> " + adjustedFilter);
+
+            NodeContext context = NodeContextUtil.withConstant(context_, BuiltinKeys.FILTER, adjustedFilter);
+
+            ArrayList<ViewpointContribution> result = new ArrayList<ViewpointContribution>();
+            ContributionViewpoint contributionViewpoint = (ContributionViewpoint)viewpoint;
+            for(ViewpointContributionFactory factory : contributionViewpoint.getContributions()) {
+//             System.out.println("viewpoint contribution " + factory);
+//             Class<?> clazz = factory.getInputClass();
+//             Tester test = factory.getNodeContextTester();
+//             if(clazz.isInstance(context.getConstant(BuiltinKeys.INPUT))) {
+//                     if(test == null || test.test(manager, context)) {
+                result.add(manager.query(context, new BuiltinKeys.ViewpointContributionKey(factory)));
+//                     }
+//             }
+            }
+            return result;
+
+        } else {
+
+            ViewpointContribution contribution = new ViewpointContribution() {
+
+                @Override
+                public Collection<NodeContext> getContribution() {
+                    ArrayList<NodeContext> result = new ArrayList<NodeContext>();
+                    for(NodeContext context : viewpoint.getChildren()) result.add(context);
+                    return result;
+                }
+
+                @Override
+                public Tester getNodeContextTester() {
+                    return Testers.PASS;
+                }
+
+                @Override
+                public Class<?> getInputClass() {
+                    return Object.class;
+                }
+
+            };
+
+            return Collections.singletonList(contribution);
+
+        }
+
+
+//        Collection<ViewpointContribution> contributions = manager.query(context, BuiltinKeys.VIEWPOINT_CONTRIBUTIONS);
+//        if (contributions == null)
+//            return PrunedChildrenResult.EMPTY;
+//
+//        HashSet<INodeContext> children = new HashSet<INodeContext>();
+//
+//        for(ViewpointContribution contribution : contributions) {
+//            children.addAll(contribution.getContribution());
+//        }
+//
+////        Viewpoint viewpoint = manager.query(context, BuiltinKeys.SELECTED_VIEWPOINT);
+////        if (viewpoint == null)
+////            return PrunedChildrenResult.EMPTY;
+////
+////        INodeContext[] children = viewpoint.getChildren();
+//
+//        Collection<SelectionRequest> selectionRequests = manager.query(context, BuiltinKeys.SELECTION_REQUESTS);
+//        if (selectionRequests == null)
+//            return new PrunedChildrenResult(children.size(), children.toArray(INodeContext.NONE));
+//
+//        SelectionRequest[] reqs = selectionRequests.toArray(new SelectionRequest[selectionRequests.size()]);
+//
+//        ArrayList<INodeContext> pruned = new ArrayList<INodeContext>();
+//        for (INodeContext ctx : children) {
+//            boolean add = true;
+//
+//            if (selectionRequests != null) {
+//                for(SelectionRequest req : reqs) {
+//                    if (req.getRequest() == SelectionRequest.Request.HIDE) {
+//                        if (req.isIncluded(manager, ctx)) {
+//                            add = false;
+//                            break;
+//                        }
+//                    }
+//                }
+//            }
+//
+//            if (add)
+//                pruned.add(ctx);
+//        }
+//        return new PrunedChildrenResult(children.size(), pruned.toArray(INodeContext.NONE));
+
+    }
+
+    @Override
+    public String toString() {
+        return "ViewpointContributionsProcessor";
+    }
+
 }
\ No newline at end of file