find usages & validation in project structure reworked
[fedora-idea.git] / java / idea-ui / src / com / intellij / openapi / roots / ui / configuration / artifacts / actions / ArtifactEditorFindUsagesAction.java
blob55f0b8c0754d98b9a2758e8ed8bd667a1f39e1ee
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.openapi.roots.ui.configuration.artifacts.actions;
18 import com.intellij.openapi.project.Project;
19 import com.intellij.openapi.roots.ui.configuration.artifacts.LayoutTreeComponent;
20 import com.intellij.openapi.roots.ui.configuration.artifacts.nodes.PackagingElementNode;
21 import com.intellij.openapi.roots.ui.configuration.projectRoot.FindUsagesInProjectStructureActionBase;
22 import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.ProjectStructureElement;
23 import com.intellij.ui.awt.RelativePoint;
25 import java.awt.*;
27 /**
28 * @author nik
30 public class ArtifactEditorFindUsagesAction extends FindUsagesInProjectStructureActionBase {
31 private LayoutTreeComponent myLayoutTreeComponent;
33 public ArtifactEditorFindUsagesAction(LayoutTreeComponent layoutTreeComponent, Project project) {
34 super(layoutTreeComponent.getLayoutTree(), project);
35 myLayoutTreeComponent = layoutTreeComponent;
38 protected boolean isEnabled() {
39 PackagingElementNode<?> node = myLayoutTreeComponent.getSelection().getNodeIfSingle();
40 return node != null && node.getElementPresentation().getSourceObject() != null;
43 protected ProjectStructureElement getSelectedElement() {
44 PackagingElementNode<?> node = myLayoutTreeComponent.getSelection().getNodeIfSingle();
45 return node != null ? (ProjectStructureElement)node.getElementPresentation().getSourceObject() : null;
48 protected RelativePoint getPointToShowResults() {
49 final int selectedRow = myLayoutTreeComponent.getLayoutTree().getSelectionRows()[0];
50 final Rectangle rowBounds = myLayoutTreeComponent.getLayoutTree().getRowBounds(selectedRow);
51 final Point location = rowBounds.getLocation();
52 location.y += rowBounds.height;
53 return new RelativePoint(myLayoutTreeComponent.getLayoutTree(), location);