2 * Copyright 2000-2009 JetBrains s.r.o.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 * Created by IntelliJ IDEA.
23 package com
.intellij
.uiDesigner
.projectView
;
25 import com
.intellij
.openapi
.actionSystem
.DataContext
;
26 import com
.intellij
.openapi
.editor
.Editor
;
27 import com
.intellij
.openapi
.project
.Project
;
28 import com
.intellij
.psi
.PsiClass
;
29 import com
.intellij
.psi
.PsiElement
;
30 import com
.intellij
.psi
.PsiFile
;
31 import com
.intellij
.refactoring
.RefactoringActionHandlerFactory
;
32 import com
.intellij
.refactoring
.rename
.RenameHandler
;
33 import org
.jetbrains
.annotations
.NotNull
;
35 public class FormRenameHandler
implements RenameHandler
{
36 public boolean isAvailableOnDataContext(DataContext dataContext
) {
37 Form
[] forms
= Form
.DATA_KEY
.getData(dataContext
);
38 return forms
!= null && forms
.length
== 1;
41 public boolean isRenaming(DataContext dataContext
) {
42 return isAvailableOnDataContext(dataContext
);
45 public void invoke(@NotNull Project project
, Editor editor
, PsiFile file
, DataContext dataContext
) {
46 Form
[] forms
= Form
.DATA_KEY
.getData(dataContext
);
47 if (forms
== null || forms
.length
!= 1) return;
48 PsiClass boundClass
= forms
[0].getClassToBind();
49 RefactoringActionHandlerFactory
.getInstance().createRenameHandler().invoke(project
, new PsiElement
[] { boundClass
},
53 public void invoke(@NotNull Project project
, @NotNull PsiElement
[] elements
, DataContext dataContext
) {
54 invoke(project
, null, null, dataContext
);