move mxml static members
[fedora-idea.git] / lang-impl / src / com / intellij / refactoring / actions / MoveAction.java
blob4f19b172915b62adf8c56db29792cde32d846d6e
1 package com.intellij.refactoring.actions;
3 import com.intellij.lang.Language;
4 import com.intellij.openapi.actionSystem.DataContext;
5 import com.intellij.psi.PsiElement;
6 import com.intellij.refactoring.RefactoringActionHandler;
7 import com.intellij.refactoring.move.MoveHandler;
8 import org.jetbrains.annotations.NonNls;
10 public class MoveAction extends BaseRefactoringAction {
11 @NonNls public static final String MOVE_PROVIDER = "MoveProvider";
13 private final MoveProvider myDefaultMoveProvider = new MoveProvider() {
14 public boolean isEnabledOnDataContext(DataContext dataContext) {
15 return false;
18 public RefactoringActionHandler getHandler(DataContext dataContext) {
19 return new MoveHandler();
23 public MoveAction() {
24 setInjectedContext(true);
27 public boolean isAvailableInEditorOnly() {
28 return false;
31 protected boolean isAvailableForLanguage(Language language){
32 // move is supported in any language
33 return true;
36 public boolean isEnabledOnElements(PsiElement[] elements) {
37 return MoveHandler.canMove(elements, null);
40 protected boolean isEnabledOnDataContext(DataContext dataContext) {
41 return getMoveProvider(dataContext).isEnabledOnDataContext(dataContext);
44 private MoveProvider getMoveProvider(DataContext dataContext) {
45 final MoveProvider moveProvider = (MoveProvider)dataContext.getData(MOVE_PROVIDER);
46 if (moveProvider != null) {
47 return moveProvider;
50 return myDefaultMoveProvider;
53 public RefactoringActionHandler getHandler(DataContext dataContext) {
54 return getMoveProvider(dataContext).getHandler(dataContext);
57 public interface MoveProvider {
58 boolean isEnabledOnDataContext(DataContext dataContext);
59 RefactoringActionHandler getHandler(DataContext dataContext);