]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.diagram/plugin.xml
Option to copy diagram selection to clipboard as SVG graphics
[simantics/platform.git] / bundles / org.simantics.diagram / plugin.xml
index bd54fd24885f900fdea2f0f45d784cfac088a938..b6a591201d43430f00172cd30bed16c956390343 100644 (file)
-<?xml version="1.0" encoding="UTF-8"?>\r
-<?eclipse version="3.2"?>\r<!--\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
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>\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
+ -->
 
-<plugin>\r
-\r
-   <extension\r
-         point="org.eclipse.ui.views">\r
-      <category\r
-            id="org.simantics.diagram.views"\r
-            name="Diagramming">\r
-      </category>\r
-      <view\r
-            category="org.simantics.diagram.views"\r
-            class="org.simantics.diagram.symbollibrary.ui.SymbolPageView"\r
-            icon="platform:/plugin/com.famfamfam.silk/icons/brick_add.png"\r
-            id="org.simantics.diagram.symbollibrary"\r
-            name="Symbols">\r
-         <description>\r
-            A paged view for showing rasterized previews of grouped symbols contributed by editors.\r
-         </description>\r
-      </view>\r
-      <!--\r
-      <view\r
-            category="org.simantics.diagram.views"\r
-            class="org.simantics.diagram.symbollibrary.ui.SymbolLibraryView"\r
-            icon="icons/images.png"\r
-            id="org.simantics.diagram.symbollibrary.managed"\r
-            name="Symbols">\r
-         <description>\r
-            A view for showing rasterized previews of all available symbols.\r
-            This is similar to org.simantics.diagram.symbollibrary but is meant\r
-            for viewing a set of symbols contributed through the active project's\r
-            org.simantics.diagram.symbollibrary.ISymbolManager instead of a paged\r
-            editor-specific view.\r
-         </description>\r
-      </view>\r
-      -->\r
-      <!--\r
-      <view\r
-            category="org.simantics.diagram.views"\r
-            class="org.simantics.diagram.layer.LayersView"\r
-            icon="icons/layers.png"\r
-            id="org.simantics.diagram.layers"\r
-            name="Roles">\r
-         <description>\r
-            A view for editing diagram layers.\r
-         </description>\r
-      </view>\r
-      -->\r
-   </extension>\r
-\r
- <extension\r
-         point="org.eclipse.ui.menus">\r
-      <menuContribution\r
-            locationURI="toolbar:org.simantics.diagram.symbollibrary">\r
-         <command\r
-               commandId="org.simantics.diagram.symbollibrary.collapseAll"\r
-               icon="icons/collapseall.gif"\r
-               label="Collapse All"\r
-               style="push"\r
-               tooltip="Collapse All">\r
-             <visibleWhen\r
-                   checkEnabled="true">\r
-             </visibleWhen>\r
-         </command>\r
-         <command\r
-               commandId="org.simantics.diagram.symbollibrary.expandAll"\r
-               icon="icons/expandall.gif"\r
-               label="Expand All"\r
-               style="push"\r
-               tooltip="Expand All">\r
-             <visibleWhen\r
-                   checkEnabled="true">\r
-             </visibleWhen>\r
-         </command>\r
-      </menuContribution>\r
-   </extension>\r
-   \r
-   <extension\r
-         point="org.eclipse.ui.commands">\r
-      <category\r
-            id="org.simantics.diagram.category"\r
-            name="Diagramming">\r
-      </category>\r
-      <command\r
-            categoryId="org.simantics.diagram.category"\r
-            id="org.simantics.diagram.symbollibrary.expandAll"\r
-            name="expandAll">\r
-      </command>\r
-      <command\r
-            categoryId="org.simantics.diagram.category"\r
-            id="org.simantics.diagram.symbollibrary.collapseAll"\r
-            name="collapseAll">\r
-      </command>\r
-      <command\r
-            categoryId="org.simantics.diagram.category"\r
-            description="Switch to full screen mode"\r
-            id="fullScreen"\r
-            name="Full Screen">\r
-      </command>\r
-      <command\r
-            id="rulerDisable"\r
-            name="Disable Ruler"\r
-            description="Disable Ruler"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="rulerEnable"\r
-            name="Enable Ruler"\r
-            description="Enable Ruler"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="rulerToggle"\r
-            name="Toggle ruler"\r
-            description="Toggle ruler"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="snapDisable"\r
-            name="Disable snap"\r
-            description="Disable snap"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="snapEnable"\r
-            name="Enable snape"\r
-            description="Enable snap"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="snapToggle"\r
-            name="Toggle snap"\r
-            description="Toggle snap"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="gridDisable"\r
-            name="Disable grid"\r
-            description="disable grid"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="gridEnable"\r
-            name="Enable grid"\r
-            description="Enable grid"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="gridToggle"\r
-            name="Toggle Grid"\r
-            description="Grid toggle"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="sendDown"\r
-            name="Send down"\r
-            description="Send down"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="bringUp"\r
-            name="Bring up"\r
-            description="Bring up"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="sendToBottom"\r
-            name="Send to bottom"\r
-            description="Send to bottom"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="bringToTop"\r
-            name="Bring to top"\r
-            description="Bring element to top"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="cancel"\r
-            name="Cancel"\r
-            description="Cancel current action"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="invertSelection"\r
-            name="Invert Selection"\r
-            description="Invert current selection"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="rotateCCW"\r
-            name="Rotate counter clock-wise"\r
-            description="Rotate counter clock-wise"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="rotateCW"\r
-            name="Rotate Clock-wise"\r
-            description="Rotate Clock-wise"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="flipElementVertical"\r
-            name="Flip Element Vertical"\r
-            description="Flip Element Vertical"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="flipElementHorizontal"\r
-            name="Flip Element Horizontal"\r
-            description="Flip Element Horizontal"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="rotateElementCCW"\r
-            name="Rotate Element Counter Clock-wise"\r
-            description="Rotate Element Counter Clock-wise"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="rotateElementCW"\r
-            name="Rotate Element Clock-wise"\r
-            description="Rotate Element clock-wise"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="zoomToSelection"\r
-            name="Zoom to selection"\r
-            description="Zoom to selection"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="zoomToFit"\r
-            name="Zoom to fit"\r
-            description="Zoom to fit"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="zoomToPage"\r
-            name="Zoom to page"\r
-            description="Zoom to page"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="zoomOut"\r
-            name="Zoom Out"\r
-            description="Zoom Out"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="zoomIn"\r
-            name="Zoom In"\r
-            description="Zoom In"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="panDown"\r
-            name="Pan Down"\r
-            description="Pan Down"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="panUp"\r
-            name="Pan Up"\r
-            description="Pan Up"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="panRight"\r
-            name="Pan Right"\r
-            description="Pan Right"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>      \r
-      <command\r
-            id="panLeft"\r
-            name="Pan Left"\r
-            description="Pan Left"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="splitConnection"\r
-            name="Split Connection"\r
-            description="Split Selected Connection with Branch Point"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            id="scaleElement"\r
-            name="Scale Element"\r
-            description="Enter Element Scaling Mode"\r
-            categoryId="org.simantics.diagram.category">\r
-      </command>\r
-      <command\r
-            categoryId="org.simantics.diagram.category"\r
-            id="symbolLibrary.activateFilter"\r
-            name="Activate Symbol Library Filter">\r
-      </command>\r
-   </extension>\r
-\r
-   <extension point="org.eclipse.core.expressions.definitions">\r
-      <definition id="org.simantics.modeling.ui.diagram.active">\r
-         <and>\r
-            <with variable="activeContexts">\r
-               <iterate operator="and" ifEmpty="true">\r
-                  <not>\r
-                     <equals value="org.simantics.modeling.ui.diagramming.inlineEdit"/>\r
-                  </not>\r
-               </iterate>\r
-            </with>\r
-            <!-- This works better than the UI context iteration above,\r
-            since UI contexts will currently disappear the moment a toolbar\r
-            item is pressed since focus is lost at that moment. -->\r
-            <with variable="activePart">\r
-                <adapt type="org.simantics.g2d.canvas.ICanvasContext"/>\r
-            </with>\r
-         </and>\r
-      </definition>\r
-      <definition id="org.simantics.diagram.symbolLibrary.active">\r
-         <with variable="activeContexts">\r
-            <iterate operator="or" ifEmpty="false">\r
-               <equals value="org.simantics.diagram.symbolLibrary"/>\r
-            </iterate>\r
-         </with>\r
-      </definition>\r
-   </extension>\r
-\r
-   <extension\r
-         point="org.eclipse.ui.handlers">\r
-     <handler\r
-            commandId="org.simantics.diagram.symbollibrary.expandAll"\r
-            class="org.simantics.diagram.handler.ExpandAll">\r
-         <activeWhen>\r
-            <with\r
-                  variable="activePartId">\r
-               <equals\r
-                     value="org.simantics.diagram.symbollibrary">\r
-               </equals>\r
-            </with>\r
-         </activeWhen>\r
-      </handler>\r
-     <handler\r
-            commandId="org.simantics.diagram.symbollibrary.collapseAll"\r
-            class="org.simantics.diagram.handler.CollapseAll">\r
-         <activeWhen>\r
-            <with\r
-                  variable="activePartId">\r
-               <equals\r
-                     value="org.simantics.diagram.symbollibrary">\r
-               </equals>\r
-            </with>\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="org.eclipse.ui.edit.rename">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="fullScreen">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="panLeft">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="org.eclipse.ui.edit.copy">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="org.eclipse.ui.edit.cut">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="org.eclipse.ui.edit.paste">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="org.eclipse.ui.edit.delete">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="sendDown">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="bringUp">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="sendToBottom">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="bringToTop">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="zoomToSelection">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="zoomToPage">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="zoomOut">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="zoomToFit">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="zoomIn">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="panDown">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="panUp">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="panRight">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="rulerDisable">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="rulerEnable">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="rulerToggle">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="snapDisable">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="snapEnable">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="snapToggle">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="gridDisable">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="gridEnable">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="gridToggle">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="cancel">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="org.eclipse.ui.edit.selectAll">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="invertSelection">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="rotateElementCCW">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="rotateElementCW">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="rotateCCW">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="rotateCW">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="flipElementVertical">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="flipElementHorizontal">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="splitConnection">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.handler.CanvasCommandDelegate"\r
-            commandId="scaleElement">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.modeling.ui.diagram.active" />\r
-         </activeWhen>\r
-      </handler>\r
-      <handler\r
-            class="org.simantics.diagram.symbollibrary.ui.ActivateFilterHandler"\r
-            commandId="symbolLibrary.activateFilter">\r
-         <activeWhen>\r
-            <reference definitionId="org.simantics.diagram.symbolLibrary.active" />\r
-         </activeWhen>\r
-      </handler>\r
-   </extension>\r
-   \r
-   <extension\r
-         point="org.eclipse.ui.bindings">\r
-      <key\r
-            commandId="fullScreen"\r
-            contextId="org.simantics.modeling.ui.diagramming"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"\r
-            sequence="Alt+Enter">\r
-      </key>\r
-      <key\r
-            commandId="cancel"\r
-            sequence="Esc"\r
-            contextId="org.simantics.modeling.ui.diagramming"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
-      </key>\r
-      <key\r
-            commandId="zoomToFit"\r
-            sequence="1"\r
-            contextId="org.simantics.modeling.ui.diagramming"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
-      </key>\r
-      <key\r
-            commandId="zoomToSelection"\r
-            sequence="2"\r
-            contextId="org.simantics.modeling.ui.diagramming"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
-      </key>\r
-      <key\r
-            commandId="zoomToPage"\r
-            sequence="3"\r
-            contextId="org.simantics.modeling.ui.diagramming"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
-      </key>\r
-      <key\r
-            commandId="zoomIn"\r
-            sequence="Numpad_Add"\r
-            contextId="org.simantics.modeling.ui.diagramming"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
-      </key>\r
-      <key\r
-            commandId="zoomOut"\r
-            sequence="Numpad_Subtract"\r
-            contextId="org.simantics.modeling.ui.diagramming"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
-      </key>      \r
-      <key\r
-            commandId="zoomIn"\r
-            sequence="+"\r
-            contextId="org.simantics.modeling.ui.diagramming"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
-      </key>\r
-      <key\r
-            commandId="zoomOut"\r
-            sequence="-"\r
-            contextId="org.simantics.modeling.ui.diagramming"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
-      </key>      \r
-      <key\r
-            commandId="org.eclipse.ui.file.refresh"\r
-            sequence="F5"\r
-            contextId="org.simantics.modeling.ui.diagramming"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
-      </key>      \r
-      <key\r
-            commandId="org.eclipse.ui.edit.selectAll"\r
-            sequence="Ctrl+A"\r
-            contextId="org.simantics.modeling.ui.diagramming"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
-      </key>      \r
-      <key\r
-            commandId="invertSelection"\r
-            sequence="Ctrl+I"\r
-            contextId="org.simantics.modeling.ui.diagramming"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
-      </key>      \r
-      <key\r
-            commandId="bringToTop"\r
-            sequence="Home"\r
-            contextId="org.simantics.modeling.ui.diagramming"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
-      </key>      \r
-      <key\r
-            commandId="sendToBottom"\r
-            sequence="End"\r
-            contextId="org.simantics.modeling.ui.diagramming"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
-      </key>      \r
-      <key\r
-            commandId="bringUp"\r
-            sequence="Page_Up"\r
-            contextId="org.simantics.modeling.ui.diagramming"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
-      </key>      \r
-      <key\r
-            commandId="sendDown"\r
-            sequence="Page_Down"\r
-            contextId="org.simantics.modeling.ui.diagramming"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
-      </key>      \r
-      <key\r
-            commandId="rotateElementCCW"\r
-            sequence=","\r
-            contextId="org.simantics.modeling.ui.diagramming"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
-      </key>      \r
-      <key\r
-            commandId="rotateElementCW"\r
-            sequence="."\r
-            contextId="org.simantics.modeling.ui.diagramming"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
-      </key>      \r
-      <key\r
-            commandId="gridToggle"\r
-            sequence="G"\r
-            contextId="org.simantics.modeling.ui.diagramming"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
-      </key>      \r
-      <key\r
-            commandId="rulerToggle"\r
-            sequence="R"\r
-            contextId="org.simantics.modeling.ui.diagramming"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
-      </key>      \r
-      <key\r
-            commandId="flipElementHorizontal"\r
-            sequence="H"\r
-            contextId="org.simantics.modeling.ui.diagramming"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
-      </key>\r
-      <key\r
-            commandId="flipElementVertical"\r
-            sequence="V"\r
-            contextId="org.simantics.modeling.ui.diagramming"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
-      </key>\r
-      <key\r
-            commandId="panLeft"\r
-            sequence="Arrow_Left"\r
-            contextId="org.simantics.modeling.ui.diagramming"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
-      </key>            \r
-      <key\r
-            commandId="panRight"\r
-            sequence="Arrow_Right"\r
-            contextId="org.simantics.modeling.ui.diagramming"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
-      </key>            \r
-      <key\r
-            commandId="panUp"\r
-            sequence="Arrow_Up"\r
-            contextId="org.simantics.modeling.ui.diagramming"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
-      </key>            \r
-      <key\r
-            commandId="panDown"\r
-            sequence="Arrow_Down"\r
-            contextId="org.simantics.modeling.ui.diagramming"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
-      </key>\r
-      <key\r
-            commandId="splitConnection"\r
-            sequence="S"\r
-            contextId="org.simantics.modeling.ui.diagramming"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
-      </key>\r
-      <key\r
-            commandId="scaleElement"\r
-            sequence="Alt+S"\r
-            contextId="org.simantics.modeling.ui.diagramming"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">\r
-      </key>\r
-      <key\r
-            commandId="symbolLibrary.activateFilter"\r
-            contextId="org.simantics.diagram.symbolLibrary"\r
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"\r
-            sequence="Ctrl+F">\r
-      </key>\r
-   </extension>\r
-   \r
-   <extension\r
-         point="org.eclipse.ui.contexts">\r
-      <context\r
-            description="Diagramming Editor Context"\r
-            id="org.simantics.modeling.ui.diagramming"\r
-            name="In Diagram Editor"\r
-            parentId="org.eclipse.ui.contexts.window">\r
-      </context>\r
-      <context\r
-            description="An inline editor within a diagram is active"\r
-            id="org.simantics.modeling.ui.diagramming.inlineEdit"\r
-            name="Inline Editor Active"\r
-            parentId="org.eclipse.ui.contexts.window">\r
-      </context>\r
-      <context\r
-            description="Symbol Library Context"\r
-            id="org.simantics.diagram.symbolLibrary"\r
-            name="In Symbol Library"\r
-            parentId="org.eclipse.ui.contexts.window">\r
-      </context>\r
-   </extension>\r
-   \r
-   <extension\r
-         point="org.eclipse.core.expressions.propertyTesters">\r
-      <propertyTester\r
-            class="org.simantics.diagram.flag.FlagPropertyTester"\r
-            id="org.simantics.diagram.flagPropertyTester"\r
-            namespace="org.simantics.diagram.flag"\r
-            properties="connected,locallyConnected,external,merged"\r
-            type="java.lang.Object">\r
-      </propertyTester>\r
-      <propertyTester\r
-            class="org.simantics.diagram.elements.ElementPropertyTester"\r
-            id="org.simantics.diagram.elementPropertyTester"\r
-            namespace="org.simantics.diagram.element"\r
-            properties="mapped"\r
-            type="java.lang.Object">\r
-      </propertyTester>\r
-      <propertyTester\r
-            class="org.simantics.diagram.ui.ToolPropertyTester"\r
-            id="org.simantics.diagram.toolPropertyTester"\r
-            namespace="org.simantics.diagram.tool"\r
-            properties="mode"\r
-            type="org.eclipse.ui.IEditorPart">\r
-      </propertyTester>\r
-   </extension>\r
-\r
-   <extension\r
-         point="org.simantics.scl.reflection.binding">\r
-      <namespace\r
-            path="http://www.simantics.org/Diagram-0.0/Functions">\r
-         <externalClass className="org.simantics.diagram.content.ElementContext"/>\r
-         <externalClass className="org.simantics.db.Resource"/>\r
-         <externalClass className="org.simantics.db.ReadGraph"/>\r
-         <externalClass className="org.simantics.db.layer0.variable.Variable"/>\r
-         <class\r
-               className="org.simantics.diagram.function.All">\r
-         </class>\r
-      </namespace>\r
-   </extension>\r
-   <extension\r
-         point="org.simantics.export.core.export">\r
-         \r
-      <content_type\r
-            icon="platform:/plugin/com.famfamfam.silk/companion/shape_3d.png"\r
-            id="componentType"\r
-            label="User Component"\r
-            plural="User Components"\r
-            model="false">\r
-      </content_type>\r
-      <content_type\r
-            contentTypeAction="org.simantics.diagram.export.DiagramContentTypeAction"\r
-            icon="platform:/plugin/org.simantics.diagram/icons/Generic_Diagram.png"\r
-            id="diagram"\r
-            label="Diagram"\r
-            model="false"\r
-            plural="Diagrams">\r
-      </content_type>\r
-      <content_type\r
-            icon="platform:/plugin/com.famfamfam.silk/icons/layout.png"\r
-            id="diagramTemplate"\r
-            label="Diagram Template"\r
-            plural="Diagram Templates"\r
-            model="false">\r
-      </content_type>\r
-      <content_type\r
-            icon="platform:/plugin/org.simantics.diagram/icons/Typical_Diagram.png"\r
-            id="typical"\r
-            label="Typical Template"\r
-            plural="Typical Templates"\r
-            model="false">\r
-      </content_type>\r
-\r
-      <discoverer\r
-            content_type_id="diagram"\r
-            discoverAction="org.simantics.diagram.export.DiscoverDiagrams">\r
-      </discoverer>\r
-\r
-         <exporter\r
-         content_type_id="diagram"\r
-         exportAction="org.simantics.diagram.export.ExportDiagramPdf"\r
-         exportPriority="5"\r
-         formatId="pdf">\r
-      </exporter>    \r
-         \r
-   </extension>\r
-\r
-</plugin>\r
+<plugin>
+
+   <extension
+         point="org.eclipse.ui.views">
+      <category
+            id="org.simantics.diagram.views"
+            name="Diagramming">
+      </category>
+      <view
+            category="org.simantics.diagram.views"
+            class="org.simantics.diagram.symbollibrary.ui.SymbolPageView"
+            icon="platform:/plugin/com.famfamfam.silk/icons/brick_add.png"
+            id="org.simantics.diagram.symbollibrary"
+            name="Symbols">
+         <description>
+            A paged view for showing rasterized previews of grouped symbols contributed by editors.
+         </description>
+      </view>
+      <!--
+      <view
+            category="org.simantics.diagram.views"
+            class="org.simantics.diagram.symbollibrary.ui.SymbolLibraryView"
+            icon="icons/images.png"
+            id="org.simantics.diagram.symbollibrary.managed"
+            name="Symbols">
+         <description>
+            A view for showing rasterized previews of all available symbols.
+            This is similar to org.simantics.diagram.symbollibrary but is meant
+            for viewing a set of symbols contributed through the active project's
+            org.simantics.diagram.symbollibrary.ISymbolManager instead of a paged
+            editor-specific view.
+         </description>
+      </view>
+      -->
+      <!--
+      <view
+            category="org.simantics.diagram.views"
+            class="org.simantics.diagram.layer.LayersView"
+            icon="icons/layers.png"
+            id="org.simantics.diagram.layers"
+            name="Roles">
+         <description>
+            A view for editing diagram layers.
+         </description>
+      </view>
+      -->
+   </extension>
+
+ <extension
+         point="org.eclipse.ui.menus">
+      <menuContribution
+            locationURI="toolbar:org.simantics.diagram.symbollibrary">
+         <command
+               commandId="org.simantics.diagram.symbollibrary.collapseAll"
+               icon="icons/collapseall.gif"
+               label="Collapse All"
+               style="push"
+               tooltip="Collapse All">
+             <visibleWhen
+                   checkEnabled="true">
+             </visibleWhen>
+         </command>
+         <command
+               commandId="org.simantics.diagram.symbollibrary.expandAll"
+               icon="icons/expandall.gif"
+               label="Expand All"
+               style="push"
+               tooltip="Expand All">
+             <visibleWhen
+                   checkEnabled="true">
+             </visibleWhen>
+         </command>
+      </menuContribution>
+   </extension>
+   
+   <extension
+         point="org.eclipse.ui.commands">
+      <category
+            id="org.simantics.diagram.category"
+            name="Diagramming">
+      </category>
+      <command
+            categoryId="org.simantics.diagram.category"
+            id="org.simantics.diagram.symbollibrary.expandAll"
+            name="expandAll">
+      </command>
+      <command
+            categoryId="org.simantics.diagram.category"
+            id="org.simantics.diagram.symbollibrary.collapseAll"
+            name="collapseAll">
+      </command>
+      <command
+            categoryId="org.simantics.diagram.category"
+            description="Switch to full screen mode"
+            id="fullScreen"
+            name="Full Screen">
+      </command>
+      <command
+            id="rulerDisable"
+            name="Disable Ruler"
+            description="Disable Ruler"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="rulerEnable"
+            name="Enable Ruler"
+            description="Enable Ruler"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="rulerToggle"
+            name="Toggle ruler"
+            description="Toggle ruler"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="snapDisable"
+            name="Disable snap"
+            description="Disable snap"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="snapEnable"
+            name="Enable snape"
+            description="Enable snap"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="snapToggle"
+            name="Toggle snap"
+            description="Toggle snap"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="gridDisable"
+            name="Disable grid"
+            description="disable grid"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="gridEnable"
+            name="Enable grid"
+            description="Enable grid"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="gridToggle"
+            name="Toggle Grid"
+            description="Grid toggle"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="sendDown"
+            name="Send down"
+            description="Send down"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="bringUp"
+            name="Bring up"
+            description="Bring up"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="sendToBottom"
+            name="Send to bottom"
+            description="Send to bottom"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="bringToTop"
+            name="Bring to top"
+            description="Bring element to top"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="cancel"
+            name="Cancel"
+            description="Cancel current action"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="invertSelection"
+            name="Invert Selection"
+            description="Invert current selection"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="rotateCCW"
+            name="Rotate counter clock-wise"
+            description="Rotate counter clock-wise"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="rotateCW"
+            name="Rotate Clock-wise"
+            description="Rotate Clock-wise"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="flipElementVertical"
+            name="Flip Element Vertical"
+            description="Flip Element Vertical"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="flipElementHorizontal"
+            name="Flip Element Horizontal"
+            description="Flip Element Horizontal"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="rotateElementCCW"
+            name="Rotate Element Counter Clock-wise"
+            description="Rotate Element Counter Clock-wise"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="rotateElementCW"
+            name="Rotate Element Clock-wise"
+            description="Rotate Element clock-wise"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="zoomToSelection"
+            name="Zoom to selection"
+            description="Zoom to selection"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="zoomToFit"
+            name="Zoom to fit"
+            description="Zoom to fit"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="zoomToPage"
+            name="Zoom to page"
+            description="Zoom to page"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="zoomOut"
+            name="Zoom Out"
+            description="Zoom Out"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="zoomIn"
+            name="Zoom In"
+            description="Zoom In"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="panDown"
+            name="Pan Down"
+            description="Pan Down"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="panUp"
+            name="Pan Up"
+            description="Pan Up"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="panRight"
+            name="Pan Right"
+            description="Pan Right"
+            categoryId="org.simantics.diagram.category">
+      </command>      
+      <command
+            id="panLeft"
+            name="Pan Left"
+            description="Pan Left"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="splitConnection"
+            name="Split Connection"
+            description="Split Selected Connection with Branch Point"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            id="scaleElement"
+            name="Scale Element"
+            description="Enter Element Scaling Mode"
+            categoryId="org.simantics.diagram.category">
+      </command>
+      <command
+            categoryId="org.simantics.diagram.category"
+            id="symbolLibrary.activateFilter"
+            name="Activate Symbol Library Filter">
+      </command>
+   </extension>
+
+   <extension point="org.eclipse.core.expressions.definitions">
+      <definition id="org.simantics.modeling.ui.diagram.active">
+         <and>
+            <with variable="activeContexts">
+               <iterate operator="and" ifEmpty="true">
+                  <not>
+                     <equals value="org.simantics.modeling.ui.diagramming.inlineEdit"/>
+                  </not>
+               </iterate>
+            </with>
+            <!-- This works better than the UI context iteration above,
+            since UI contexts will currently disappear the moment a toolbar
+            item is pressed since focus is lost at that moment. -->
+            <with variable="activePart">
+                <adapt type="org.simantics.g2d.canvas.ICanvasContext"/>
+            </with>
+         </and>
+      </definition>
+      <definition id="org.simantics.diagram.symbolLibrary.active">
+         <with variable="activeContexts">
+            <iterate operator="or" ifEmpty="false">
+               <equals value="org.simantics.diagram.symbolLibrary"/>
+            </iterate>
+         </with>
+      </definition>
+   </extension>
+
+   <extension
+         point="org.eclipse.ui.handlers">
+     <handler
+            commandId="org.simantics.diagram.symbollibrary.expandAll"
+            class="org.simantics.diagram.handler.ExpandAll">
+         <activeWhen>
+            <with
+                  variable="activePartId">
+               <equals
+                     value="org.simantics.diagram.symbollibrary">
+               </equals>
+            </with>
+         </activeWhen>
+      </handler>
+     <handler
+            commandId="org.simantics.diagram.symbollibrary.collapseAll"
+            class="org.simantics.diagram.handler.CollapseAll">
+         <activeWhen>
+            <with
+                  variable="activePartId">
+               <equals
+                     value="org.simantics.diagram.symbollibrary">
+               </equals>
+            </with>
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="copyAsSVG">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="org.eclipse.ui.edit.rename">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="fullScreen">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="panLeft">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="org.eclipse.ui.edit.copy">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="org.eclipse.ui.edit.cut">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="org.eclipse.ui.edit.paste">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="org.eclipse.ui.edit.delete">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="sendDown">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="bringUp">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="sendToBottom">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="bringToTop">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="zoomToSelection">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="zoomToPage">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="zoomOut">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="zoomToFit">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="zoomIn">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="panDown">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="panUp">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="panRight">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="rulerDisable">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="rulerEnable">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="rulerToggle">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="snapDisable">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="snapEnable">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="snapToggle">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="gridDisable">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="gridEnable">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="gridToggle">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="cancel">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="org.eclipse.ui.edit.selectAll">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="invertSelection">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="rotateElementCCW">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="rotateElementCW">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="rotateCCW">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="rotateCW">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="flipElementVertical">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="flipElementHorizontal">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="splitConnection">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.handler.CanvasCommandDelegate"
+            commandId="scaleElement">
+         <activeWhen>
+            <reference definitionId="org.simantics.modeling.ui.diagram.active" />
+         </activeWhen>
+      </handler>
+      <handler
+            class="org.simantics.diagram.symbollibrary.ui.ActivateFilterHandler"
+            commandId="symbolLibrary.activateFilter">
+         <activeWhen>
+            <reference definitionId="org.simantics.diagram.symbolLibrary.active" />
+         </activeWhen>
+      </handler>
+   </extension>
+   
+   <extension
+         point="org.eclipse.ui.bindings">
+      <key
+            commandId="fullScreen"
+            contextId="org.simantics.modeling.ui.diagramming"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
+            sequence="Alt+Enter">
+      </key>
+      <key
+            commandId="cancel"
+            sequence="Esc"
+            contextId="org.simantics.modeling.ui.diagramming"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </key>
+      <key
+            commandId="zoomToFit"
+            sequence="1"
+            contextId="org.simantics.modeling.ui.diagramming"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </key>
+      <key
+            commandId="zoomToSelection"
+            sequence="2"
+            contextId="org.simantics.modeling.ui.diagramming"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </key>
+      <key
+            commandId="zoomToPage"
+            sequence="3"
+            contextId="org.simantics.modeling.ui.diagramming"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </key>
+      <key
+            commandId="zoomIn"
+            sequence="Numpad_Add"
+            contextId="org.simantics.modeling.ui.diagramming"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </key>
+      <key
+            commandId="zoomOut"
+            sequence="Numpad_Subtract"
+            contextId="org.simantics.modeling.ui.diagramming"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </key>      
+      <key
+            commandId="zoomIn"
+            sequence="+"
+            contextId="org.simantics.modeling.ui.diagramming"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </key>
+      <key
+            commandId="zoomOut"
+            sequence="-"
+            contextId="org.simantics.modeling.ui.diagramming"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </key>      
+      <key
+            commandId="org.eclipse.ui.file.refresh"
+            sequence="F5"
+            contextId="org.simantics.modeling.ui.diagramming"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </key>      
+      <key
+            commandId="org.eclipse.ui.edit.selectAll"
+            sequence="Ctrl+A"
+            contextId="org.simantics.modeling.ui.diagramming"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </key>      
+      <key
+            commandId="invertSelection"
+            sequence="Ctrl+I"
+            contextId="org.simantics.modeling.ui.diagramming"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </key>      
+      <key
+            commandId="bringToTop"
+            sequence="Home"
+            contextId="org.simantics.modeling.ui.diagramming"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </key>      
+      <key
+            commandId="sendToBottom"
+            sequence="End"
+            contextId="org.simantics.modeling.ui.diagramming"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </key>      
+      <key
+            commandId="bringUp"
+            sequence="Page_Up"
+            contextId="org.simantics.modeling.ui.diagramming"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </key>      
+      <key
+            commandId="sendDown"
+            sequence="Page_Down"
+            contextId="org.simantics.modeling.ui.diagramming"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </key>      
+      <key
+            commandId="rotateElementCCW"
+            sequence=","
+            contextId="org.simantics.modeling.ui.diagramming"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </key>      
+      <key
+            commandId="rotateElementCW"
+            sequence="."
+            contextId="org.simantics.modeling.ui.diagramming"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </key>      
+      <key
+            commandId="gridToggle"
+            sequence="G"
+            contextId="org.simantics.modeling.ui.diagramming"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </key>      
+      <key
+            commandId="rulerToggle"
+            sequence="R"
+            contextId="org.simantics.modeling.ui.diagramming"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </key>      
+      <key
+            commandId="flipElementHorizontal"
+            sequence="H"
+            contextId="org.simantics.modeling.ui.diagramming"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </key>
+      <key
+            commandId="flipElementVertical"
+            sequence="V"
+            contextId="org.simantics.modeling.ui.diagramming"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </key>
+      <key
+            commandId="panLeft"
+            sequence="Arrow_Left"
+            contextId="org.simantics.modeling.ui.diagramming"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </key>            
+      <key
+            commandId="panRight"
+            sequence="Arrow_Right"
+            contextId="org.simantics.modeling.ui.diagramming"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </key>            
+      <key
+            commandId="panUp"
+            sequence="Arrow_Up"
+            contextId="org.simantics.modeling.ui.diagramming"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </key>            
+      <key
+            commandId="panDown"
+            sequence="Arrow_Down"
+            contextId="org.simantics.modeling.ui.diagramming"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </key>
+      <key
+            commandId="splitConnection"
+            sequence="S"
+            contextId="org.simantics.modeling.ui.diagramming"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </key>
+      <key
+            commandId="scaleElement"
+            sequence="Alt+S"
+            contextId="org.simantics.modeling.ui.diagramming"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </key>
+      <key
+            commandId="symbolLibrary.activateFilter"
+            contextId="org.simantics.diagram.symbolLibrary"
+            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
+            sequence="Ctrl+F">
+      </key>
+   </extension>
+   
+   <extension
+         point="org.eclipse.ui.contexts">
+      <context
+            description="Diagramming Editor Context"
+            id="org.simantics.modeling.ui.diagramming"
+            name="In Diagram Editor"
+            parentId="org.eclipse.ui.contexts.window">
+      </context>
+      <context
+            description="An inline editor within a diagram is active"
+            id="org.simantics.modeling.ui.diagramming.inlineEdit"
+            name="Inline Editor Active"
+            parentId="org.eclipse.ui.contexts.window">
+      </context>
+      <context
+            description="Symbol Library Context"
+            id="org.simantics.diagram.symbolLibrary"
+            name="In Symbol Library"
+            parentId="org.eclipse.ui.contexts.window">
+      </context>
+   </extension>
+   
+   <extension
+         point="org.eclipse.core.expressions.propertyTesters">
+      <propertyTester
+            class="org.simantics.diagram.flag.FlagPropertyTester"
+            id="org.simantics.diagram.flagPropertyTester"
+            namespace="org.simantics.diagram.flag"
+            properties="connected,locallyConnected,external,merged"
+            type="java.lang.Object">
+      </propertyTester>
+      <propertyTester
+            class="org.simantics.diagram.elements.ElementPropertyTester"
+            id="org.simantics.diagram.elementPropertyTester"
+            namespace="org.simantics.diagram.element"
+            properties="mapped"
+            type="java.lang.Object">
+      </propertyTester>
+      <propertyTester
+            class="org.simantics.diagram.ui.ToolPropertyTester"
+            id="org.simantics.diagram.toolPropertyTester"
+            namespace="org.simantics.diagram.tool"
+            properties="mode"
+            type="org.eclipse.ui.IEditorPart">
+      </propertyTester>
+   </extension>
+
+   <extension
+         point="org.simantics.scl.reflection.binding">
+      <namespace
+            path="http://www.simantics.org/Diagram-0.0/Functions">
+         <externalClass className="org.simantics.diagram.content.ElementContext"/>
+         <externalClass className="org.simantics.db.Resource"/>
+         <externalClass className="org.simantics.db.ReadGraph"/>
+         <externalClass className="org.simantics.db.layer0.variable.Variable"/>
+         <class
+               className="org.simantics.diagram.function.All">
+         </class>
+      </namespace>
+   </extension>
+   <extension
+         point="org.simantics.export.core.export">
+         
+      <content_type
+            icon="platform:/plugin/com.famfamfam.silk/companion/shape_3d.png"
+            id="componentType"
+            label="User Component"
+            plural="User Components"
+            model="false">
+      </content_type>
+      <content_type
+            contentTypeAction="org.simantics.diagram.export.DiagramContentTypeAction"
+            icon="platform:/plugin/org.simantics.diagram/icons/Generic_Diagram.png"
+            id="diagram"
+            label="Diagram"
+            model="false"
+            plural="Diagrams">
+      </content_type>
+      <content_type
+            icon="platform:/plugin/com.famfamfam.silk/icons/layout.png"
+            id="diagramTemplate"
+            label="Diagram Template"
+            plural="Diagram Templates"
+            model="false">
+      </content_type>
+      <content_type
+            icon="platform:/plugin/org.simantics.diagram/icons/Typical_Diagram.png"
+            id="typical"
+            label="Typical Template"
+            plural="Typical Templates"
+            model="false">
+      </content_type>
+
+      <discoverer
+            content_type_id="diagram"
+            discoverAction="org.simantics.diagram.export.DiscoverDiagrams">
+      </discoverer>
+
+         <exporter
+         content_type_id="diagram"
+         exportAction="org.simantics.diagram.export.ExportDiagramPdf"
+         exportPriority="5"
+         formatId="pdf">
+      </exporter>    
+         
+   </extension>
+
+</plugin>