update copyright
[fedora-idea.git] / plugins / ui-designer / src / com / intellij / uiDesigner / actions / StartInplaceEditingAction.java
blob4bec6e2509dd803414188548f05050470926dc62
1 /*
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.
16 package com.intellij.uiDesigner.actions;
18 import com.intellij.openapi.actionSystem.AnAction;
19 import com.intellij.openapi.actionSystem.AnActionEvent;
20 import com.intellij.openapi.actionSystem.Presentation;
21 import com.intellij.uiDesigner.FormEditingUtil;
22 import com.intellij.uiDesigner.radComponents.RadComponent;
23 import com.intellij.uiDesigner.designSurface.GuiEditor;
24 import com.intellij.uiDesigner.propertyInspector.Property;
25 import com.intellij.uiDesigner.propertyInspector.InplaceContext;
26 import org.jetbrains.annotations.Nullable;
28 import java.util.ArrayList;
30 /**
31 * @author Anton Katilin
32 * @author Vladimir Kondratyev
34 public final class StartInplaceEditingAction extends AnAction{
36 private GuiEditor myEditor;
38 public StartInplaceEditingAction(@Nullable final GuiEditor editor) {
39 myEditor = editor;
42 public void setEditor(final GuiEditor editor) {
43 myEditor = editor;
46 public void actionPerformed(final AnActionEvent e) {
47 final ArrayList<RadComponent> selection = FormEditingUtil.getAllSelectedComponents(myEditor);
48 final RadComponent component = selection.get(0);
49 final Property defaultInplaceProperty = component.getDefaultInplaceProperty();
50 myEditor.getInplaceEditingLayer().startInplaceEditing(component, defaultInplaceProperty,
51 component.getDefaultInplaceEditorBounds(), new InplaceContext(true));
54 public void update(final AnActionEvent e) {
55 final Presentation presentation = e.getPresentation();
56 final ArrayList<RadComponent> selection = FormEditingUtil.getAllSelectedComponents(myEditor);
58 // Inplace editing can be started only if single component is selected
59 if(selection.size() != 1){
60 presentation.setEnabled(false);
61 return;
64 // Selected component should have "inplace" property
65 final RadComponent component = selection.get(0);
66 presentation.setEnabled(component.getDefaultInplaceProperty() != null);