blob: b21a04883511798846076cccdc73b36c5c43a1c9 [file] [log] [blame]
package com.intellij.android.designer;
import com.intellij.android.designer.model.RadViewComponent;
import com.intellij.designer.designSurface.EditableArea;
import com.intellij.designer.model.EmptyXmlTag;
import com.intellij.designer.model.RadComponent;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.psi.xml.XmlTag;
import org.jetbrains.android.refactoring.AndroidRefactoringContextProvider;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
/**
* @author Eugene.Kudelevsky
*/
public class AndroidDesignerRefactoringContextProvider implements AndroidRefactoringContextProvider {
@NotNull
@Override
public XmlTag[] getComponentTags(@NotNull DataContext dataContext) {
final EditableArea area = EditableArea.DATA_KEY.getData(dataContext);
if (area == null) {
return XmlTag.EMPTY;
}
final List<RadComponent> selection = area.getSelection();
if (selection.size() == 0) {
return XmlTag.EMPTY;
}
final List<XmlTag> tags = new ArrayList<XmlTag>(selection.size());
for (RadComponent component : selection) {
if (!(component instanceof RadViewComponent)) {
return XmlTag.EMPTY;
}
final XmlTag tag = ((RadViewComponent)component).getTag();
if (tag == null || tag.equals(EmptyXmlTag.INSTANCE)) {
return XmlTag.EMPTY;
}
tags.add(tag);
}
return tags.toArray(new XmlTag[tags.size()]);
}
}