blob: 898c96f3b89b120cca163a0ac5f13912e1c66774 [file] [log] [blame]
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));
}
}