]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.browsing.ui.nattable/src/org/simantics/browsing/ui/nattable/override/DefaultTreeLayerConfiguration2.java
Sync git svn branch with SVN repository r33144.
[simantics/platform.git] / bundles / org.simantics.browsing.ui.nattable / src / org / simantics / browsing / ui / nattable / override / DefaultTreeLayerConfiguration2.java
diff --git a/bundles/org.simantics.browsing.ui.nattable/src/org/simantics/browsing/ui/nattable/override/DefaultTreeLayerConfiguration2.java b/bundles/org.simantics.browsing.ui.nattable/src/org/simantics/browsing/ui/nattable/override/DefaultTreeLayerConfiguration2.java
new file mode 100644 (file)
index 0000000..2a575b8
--- /dev/null
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) Sep 7, 2012 Edwin Park and others.
+ * 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:
+ *    Edwin Park - initial API and implementation
+ *******************************************************************************/
+package org.simantics.browsing.ui.nattable.override;
+
+import org.eclipse.nebula.widgets.nattable.config.CellConfigAttributes;
+import org.eclipse.nebula.widgets.nattable.config.IConfigRegistry;
+import org.eclipse.nebula.widgets.nattable.config.IConfiguration;
+import org.eclipse.nebula.widgets.nattable.export.ExportConfigAttributes;
+import org.eclipse.nebula.widgets.nattable.grid.GridRegion;
+import org.eclipse.nebula.widgets.nattable.layer.ILayer;
+import org.eclipse.nebula.widgets.nattable.style.CellStyleAttributes;
+import org.eclipse.nebula.widgets.nattable.style.DisplayMode;
+import org.eclipse.nebula.widgets.nattable.style.HorizontalAlignmentEnum;
+import org.eclipse.nebula.widgets.nattable.style.Style;
+import org.eclipse.nebula.widgets.nattable.tree.TreeLayer;
+import org.eclipse.nebula.widgets.nattable.tree.action.TreeExpandCollapseAction;
+import org.eclipse.nebula.widgets.nattable.tree.config.TreeExportFormatter;
+import org.eclipse.nebula.widgets.nattable.tree.painter.TreeImagePainter;
+import org.eclipse.nebula.widgets.nattable.ui.action.NoOpMouseAction;
+import org.eclipse.nebula.widgets.nattable.ui.binding.UiBindingRegistry;
+import org.eclipse.nebula.widgets.nattable.ui.matcher.CellPainterMouseEventMatcher;
+import org.eclipse.nebula.widgets.nattable.ui.matcher.MouseEventMatcher;
+
+/**
+ * @author Edwin Park
+ *
+ */
+public class DefaultTreeLayerConfiguration2 implements IConfiguration {
+       
+       
+       private TreeLayer2 treeLayer;
+
+       /**
+        * 
+        */
+       public DefaultTreeLayerConfiguration2(TreeLayer2 treeLayer) {
+               this.treeLayer = treeLayer;
+       }
+
+        @Override
+           public void configureLayer(ILayer layer) {}
+
+           @Override
+           public void configureRegistry(IConfigRegistry configRegistry) {
+               configRegistry.registerConfigAttribute(CellConfigAttributes.CELL_STYLE,
+                       new Style() {
+                           {
+                               setAttributeValue(
+                                       CellStyleAttributes.HORIZONTAL_ALIGNMENT,
+                                       HorizontalAlignmentEnum.LEFT);
+                           }
+                       }, DisplayMode.NORMAL, TreeLayer.TREE_COLUMN_CELL);
+               configRegistry.registerConfigAttribute(
+                       ExportConfigAttributes.EXPORT_FORMATTER,
+                       new TreeExportFormatter(this.treeLayer.getModel()),
+                       DisplayMode.NORMAL, TreeLayer.TREE_COLUMN_CELL);
+           }
+
+           @Override
+           public void configureUiBindings(UiBindingRegistry uiBindingRegistry) {
+               TreeExpandCollapseAction treeExpandCollapseAction = new TreeExpandCollapseAction();
+               CellPainterMouseEventMatcher treeImagePainterMouseEventMatcher = new CellPainterMouseEventMatcher(
+                       GridRegion.BODY, MouseEventMatcher.LEFT_BUTTON,
+                       TreeImagePainter.class);
+
+               uiBindingRegistry.registerFirstSingleClickBinding(
+                       treeImagePainterMouseEventMatcher, treeExpandCollapseAction);
+
+               // Obscure any mouse down bindings for this image painter
+               uiBindingRegistry.registerFirstMouseDownBinding(
+                       treeImagePainterMouseEventMatcher, new NoOpMouseAction());
+           }
+
+}