2 * Copyright (c) 2000-2006 JetBrains s.r.o. All Rights Reserved.
5 package com
.intellij
.util
.xml
.tree
.actions
;
7 import com
.intellij
.openapi
.actionSystem
.AnActionEvent
;
8 import com
.intellij
.openapi
.application
.ApplicationBundle
;
9 import com
.intellij
.openapi
.application
.Result
;
10 import com
.intellij
.openapi
.command
.WriteCommandAction
;
11 import com
.intellij
.openapi
.util
.IconLoader
;
12 import com
.intellij
.openapi
.ui
.Messages
;
13 import com
.intellij
.ui
.treeStructure
.SimpleNode
;
14 import com
.intellij
.util
.xml
.DomElement
;
15 import com
.intellij
.util
.xml
.ElementPresentation
;
16 import com
.intellij
.util
.xml
.tree
.BaseDomElementNode
;
17 import com
.intellij
.util
.xml
.tree
.DomFileElementNode
;
18 import com
.intellij
.util
.xml
.tree
.DomModelTreeView
;
21 * User: Sergey.Vasiliev
23 public class DeleteDomElement
extends BaseDomTreeAction
{
25 public DeleteDomElement() {
28 public DeleteDomElement(final DomModelTreeView treeView
) {
32 public void actionPerformed(AnActionEvent e
, DomModelTreeView treeView
) {
33 final SimpleNode selectedNode
= treeView
.getTree().getSelectedNode();
35 if (selectedNode
instanceof BaseDomElementNode
) {
37 final DomElement domElement
= ((BaseDomElementNode
)selectedNode
).getDomElement();
39 final int ret
= Messages
.showOkCancelDialog(getPresentationText(selectedNode
) + "?", ApplicationBundle
.message("action.remove"),
40 Messages
.getQuestionIcon());
42 new WriteCommandAction(domElement
.getManager().getProject(), domElement
.getRoot().getFile()) {
43 protected void run(final Result result
) throws Throwable
{
44 domElement
.undefine();
51 public void update(AnActionEvent e
, DomModelTreeView treeView
) {
52 final SimpleNode selectedNode
= treeView
.getTree().getSelectedNode();
54 if (selectedNode
instanceof DomFileElementNode
) {
55 e
.getPresentation().setVisible(false);
59 boolean enabled
= false;
60 if (selectedNode
instanceof BaseDomElementNode
) {
61 final DomElement domElement
= ((BaseDomElementNode
)selectedNode
).getDomElement();
62 if (domElement
.isValid() && domElement
.getXmlElement() != null && !domElement
.equals(domElement
.getRoot().getRootElement())) {
67 e
.getPresentation().setEnabled(enabled
);
71 e
.getPresentation().setText(getPresentationText(selectedNode
));
74 e
.getPresentation().setText(ApplicationBundle
.message("action.remove"));
77 e
.getPresentation().setIcon(IconLoader
.getIcon("/general/remove.png"));
80 private static String
getPresentationText(final SimpleNode selectedNode
) {
81 String removeString
= ApplicationBundle
.message("action.remove");
82 final ElementPresentation presentation
= ((BaseDomElementNode
)selectedNode
).getDomElement().getPresentation();
83 removeString
+= " " + presentation
.getTypeName() +
84 (presentation
.getElementName() == null || presentation
.getElementName().trim().length() == 0?
"" : ": " + presentation
.getElementName());