1 /*******************************************************************************
2 * Copyright (c) Sep 7, 2012 Edwin Park and others.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
9 * Edwin Park - initial API and implementation
10 *******************************************************************************/
11 package org.simantics.browsing.ui.nattable.override;
13 import org.eclipse.nebula.widgets.nattable.config.CellConfigAttributes;
14 import org.eclipse.nebula.widgets.nattable.config.IConfigRegistry;
15 import org.eclipse.nebula.widgets.nattable.config.IConfiguration;
16 import org.eclipse.nebula.widgets.nattable.export.ExportConfigAttributes;
17 import org.eclipse.nebula.widgets.nattable.grid.GridRegion;
18 import org.eclipse.nebula.widgets.nattable.layer.ILayer;
19 import org.eclipse.nebula.widgets.nattable.style.CellStyleAttributes;
20 import org.eclipse.nebula.widgets.nattable.style.DisplayMode;
21 import org.eclipse.nebula.widgets.nattable.style.HorizontalAlignmentEnum;
22 import org.eclipse.nebula.widgets.nattable.style.Style;
23 import org.eclipse.nebula.widgets.nattable.tree.TreeLayer;
24 import org.eclipse.nebula.widgets.nattable.tree.action.TreeExpandCollapseAction;
25 import org.eclipse.nebula.widgets.nattable.tree.config.TreeExportFormatter;
26 import org.eclipse.nebula.widgets.nattable.tree.painter.TreeImagePainter;
27 import org.eclipse.nebula.widgets.nattable.ui.action.NoOpMouseAction;
28 import org.eclipse.nebula.widgets.nattable.ui.binding.UiBindingRegistry;
29 import org.eclipse.nebula.widgets.nattable.ui.matcher.CellPainterMouseEventMatcher;
30 import org.eclipse.nebula.widgets.nattable.ui.matcher.MouseEventMatcher;
36 public class DefaultTreeLayerConfiguration2 implements IConfiguration {
39 private TreeLayer2 treeLayer;
44 public DefaultTreeLayerConfiguration2(TreeLayer2 treeLayer) {
45 this.treeLayer = treeLayer;
49 public void configureLayer(ILayer layer) {}
52 public void configureRegistry(IConfigRegistry configRegistry) {
53 configRegistry.registerConfigAttribute(CellConfigAttributes.CELL_STYLE,
57 CellStyleAttributes.HORIZONTAL_ALIGNMENT,
58 HorizontalAlignmentEnum.LEFT);
60 }, DisplayMode.NORMAL, TreeLayer.TREE_COLUMN_CELL);
61 configRegistry.registerConfigAttribute(
62 ExportConfigAttributes.EXPORT_FORMATTER,
63 new TreeExportFormatter(this.treeLayer.getModel()),
64 DisplayMode.NORMAL, TreeLayer.TREE_COLUMN_CELL);
68 public void configureUiBindings(UiBindingRegistry uiBindingRegistry) {
69 TreeExpandCollapseAction treeExpandCollapseAction = new TreeExpandCollapseAction();
70 CellPainterMouseEventMatcher treeImagePainterMouseEventMatcher = new CellPainterMouseEventMatcher(
71 GridRegion.BODY, MouseEventMatcher.LEFT_BUTTON,
72 TreeImagePainter.class);
74 uiBindingRegistry.registerFirstSingleClickBinding(
75 treeImagePainterMouseEventMatcher, treeExpandCollapseAction);
77 // Obscure any mouse down bindings for this image painter
78 uiBindingRegistry.registerFirstMouseDownBinding(
79 treeImagePainterMouseEventMatcher, new NoOpMouseAction());