+ TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(tree, new FocusCellOwnerDrawHighlighter(tree));
+ ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(tree) {
+ @Override
+ protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
+ boolean singleSelect = tree.getStructuredSelection().size() == 1;
+ return singleSelect && (
+ (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.F2)
+ || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC
+ );
+ }
+ };
+
+ int feature = ColumnViewerEditor.KEYBOARD_ACTIVATION;
+
+ TreeViewerEditor.create(tree, focusCellManager, actSupport, feature);
+ final TextCellEditor textCellEditor = new TextCellEditor(tree.getTree());
+
+ TreeViewerColumn viewerColumn = new TreeViewerColumn(tree, SWT.LEFT);
+ columnLayout.setColumnData(viewerColumn.getColumn(), new ColumnWeightData(1));
+ viewerColumn.setLabelProvider(new LabelProvider());
+ viewerColumn.setEditingSupport(new EditingSupport(tree) {
+ @Override
+ protected void setValue(Object element, Object value) {
+ LOGGER.info("set value {} for {}", value, element);
+ Route r = (Route) element;
+ r.setName((String) value);
+ Activator.getDefault().getRouteService().persistRoute(r);
+ getViewer().update(element, null);
+ }
+
+ @Override
+ protected Object getValue(Object element) {
+ return ((Route) element).getName();
+ }
+
+ @Override
+ protected CellEditor getCellEditor(Object element) {
+ return textCellEditor;
+ }
+
+ @Override
+ protected boolean canEdit(Object element) {
+ return element instanceof Route;
+ }
+ });
+
+ // TODO: add DnD reordering support