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()]); } }