Allows to rename only nodes without children
diff --git a/org.eclipse.babel.editor/src/org/eclipse/babel/editor/tree/actions/AbstractRenameKeyAction.java b/org.eclipse.babel.editor/src/org/eclipse/babel/editor/tree/actions/AbstractRenameKeyAction.java index f57faa1..7db39eb 100644 --- a/org.eclipse.babel.editor/src/org/eclipse/babel/editor/tree/actions/AbstractRenameKeyAction.java +++ b/org.eclipse.babel.editor/src/org/eclipse/babel/editor/tree/actions/AbstractRenameKeyAction.java
@@ -28,7 +28,6 @@ super(editor, treeViewer); setText(MessagesEditorPlugin.getString("key.rename") + " ..."); //$NON-NLS-1$ setImageDescriptor(UIUtils.getImageDescriptor(UIUtils.IMAGE_RENAME)); - setToolTipText("TODO put something here"); // TODO put tooltip } /**
diff --git a/org.eclipse.babel.editor/src/org/eclipse/babel/editor/tree/actions/RefactorKeyAction.java b/org.eclipse.babel.editor/src/org/eclipse/babel/editor/tree/actions/RefactorKeyAction.java index 6d40292..fffa3b1 100644 --- a/org.eclipse.babel.editor/src/org/eclipse/babel/editor/tree/actions/RefactorKeyAction.java +++ b/org.eclipse.babel.editor/src/org/eclipse/babel/editor/tree/actions/RefactorKeyAction.java
@@ -56,4 +56,6 @@ bundleId, key, null); } + + }
diff --git a/org.eclipse.babel.editor/src/org/eclipse/babel/editor/tree/internal/KeyTreeContributor.java b/org.eclipse.babel.editor/src/org/eclipse/babel/editor/tree/internal/KeyTreeContributor.java index c45a543..93a3f26 100644 --- a/org.eclipse.babel.editor/src/org/eclipse/babel/editor/tree/internal/KeyTreeContributor.java +++ b/org.eclipse.babel.editor/src/org/eclipse/babel/editor/tree/internal/KeyTreeContributor.java
@@ -29,9 +29,12 @@ import org.eclipse.babel.editor.tree.actions.DeleteKeyAction; import org.eclipse.babel.editor.tree.actions.RefactorKeyAction; import org.eclipse.jface.action.IAction; +import org.eclipse.jface.action.IMenuListener; +import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.viewers.CellEditor; import org.eclipse.jface.viewers.ColumnViewerToolTipSupport; +import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.StructuredSelection; @@ -49,6 +52,8 @@ import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.Tree; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PlatformUI; /** * @author Pascal Essiembre @@ -361,6 +366,17 @@ menuManager.add(refactorAction); menuManager.update(true); + menuManager.addMenuListener(new IMenuListener() { + + @Override + public void menuAboutToShow(IMenuManager manager) { + // TODO Auto-generated method stub + IStructuredSelection selection = (IStructuredSelection) treeViewer + .getSelection(); + KeyTreeNode node = (KeyTreeNode) selection.getFirstElement(); + refactorAction.setEnabled(node.getChildren().length == 0); + } + }); tree.setMenu(menu); // Bind actions to tree