| package org.jetbrains.android.refactoring; |
| |
| import com.intellij.openapi.project.Project; |
| import com.intellij.psi.PsiElement; |
| import com.intellij.psi.xml.XmlFile; |
| import com.intellij.psi.xml.XmlTag; |
| import com.intellij.refactoring.inline.InlineOptionsDialog; |
| import org.jetbrains.android.util.AndroidBundle; |
| import org.jetbrains.annotations.NotNull; |
| import org.jetbrains.annotations.Nullable; |
| |
| /** |
| * @author Eugene.Kudelevsky |
| */ |
| public class AndroidInlineLayoutDialog extends InlineOptionsDialog { |
| private final XmlFile myLayoutFile; |
| private final XmlTag myLayoutRootTag; |
| private final PsiElement myUsageElement; |
| |
| public AndroidInlineLayoutDialog(@NotNull Project project, |
| @NotNull XmlFile layoutFile, |
| @NotNull XmlTag layoutRootTag, |
| @Nullable PsiElement usageElement) { |
| super(project, true, layoutFile); |
| myLayoutFile = layoutFile; |
| myLayoutRootTag = layoutRootTag; |
| myUsageElement = usageElement; |
| myInvokedOnReference = usageElement != null; |
| setTitle(AndroidBundle.message("android.inline.layout.title")); |
| init(); |
| } |
| |
| @Override |
| protected String getNameLabelText() { |
| return "Layout file '" + myLayoutFile.getName() + "'"; |
| } |
| |
| @Override |
| protected String getBorderTitle() { |
| return "Inline"; |
| } |
| |
| @Override |
| protected String getInlineAllText() { |
| return AndroidBundle.message("android.inline.file.inline.all.text"); |
| } |
| |
| @Override |
| protected String getInlineThisText() { |
| return AndroidBundle.message("android.inline.file.inline.this.text"); |
| } |
| |
| @Override |
| protected boolean isInlineThis() { |
| return myUsageElement != null; |
| } |
| |
| @Override |
| protected void doAction() { |
| final PsiElement usageElement = isInlineThisOnly() ? myUsageElement : null; |
| invokeRefactoring(new AndroidInlineLayoutProcessor(myProject, myLayoutFile, myLayoutRootTag, usageElement, null)); |
| } |
| } |