| package org.jetbrains.android.refactoring; |
| |
| import com.intellij.psi.PsiFile; |
| import com.intellij.psi.xml.XmlFile; |
| import com.intellij.psi.xml.XmlTag; |
| import com.intellij.util.xml.DomElement; |
| import com.intellij.util.xml.DomManager; |
| import org.jetbrains.android.dom.layout.LayoutDomFileDescription; |
| import org.jetbrains.android.dom.layout.LayoutViewElement; |
| import org.jetbrains.annotations.NotNull; |
| import org.jetbrains.annotations.Nullable; |
| |
| /** |
| * @author Eugene.Kudelevsky |
| */ |
| public abstract class AndroidBaseLayoutRefactoringAction extends AndroidBaseXmlRefactoringAction { |
| |
| @Override |
| protected boolean isEnabledForTags(@NotNull XmlTag[] tags) { |
| for (XmlTag tag : tags) { |
| if (getLayoutViewElement(tag) == null) { |
| return false; |
| } |
| } |
| return true; |
| } |
| |
| @Override |
| protected boolean isMyFile(PsiFile file) { |
| return DomManager.getDomManager(file.getProject()).getDomFileDescription((XmlFile)file) |
| instanceof LayoutDomFileDescription; |
| } |
| |
| @Nullable |
| public static LayoutViewElement getLayoutViewElement(@NotNull XmlTag tag) { |
| final DomElement domElement = DomManager.getDomManager(tag.getProject()).getDomElement(tag); |
| return domElement instanceof LayoutViewElement |
| ? (LayoutViewElement)domElement |
| : null; |
| } |
| } |