package krasa.mavenrun.analyzer; import java.beans.PropertyChangeListener; import javax.swing.*; import org.jetbrains.annotations.NotNull; import org.jetbrains.idea.maven.project.MavenProject; import org.jetbrains.idea.maven.project.MavenProjectsManager; import com.intellij.codeHighlighting.BackgroundEditorHighlighter; import com.intellij.ide.structureView.StructureViewBuilder; import com.intellij.openapi.fileEditor.FileEditor; import com.intellij.openapi.fileEditor.FileEditorLocation; import com.intellij.openapi.fileEditor.FileEditorState; import com.intellij.openapi.fileEditor.FileEditorStateLevel; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.UserDataHolderBase; import com.intellij.openapi.vfs.VirtualFile; public final class UIFormEditor extends UserDataHolderBase implements /* Navigatable */FileEditor { public static final FileEditorState MY_EDITOR_STATE = new FileEditorState() { @Override public boolean canBeMergedWith(FileEditorState otherState, FileEditorStateLevel level) { return false; } }; private GuiForm myEditor; public UIFormEditor(final Project project, final VirtualFile file) { final MavenProject mavenProject = MavenProjectsManager.getInstance(project).findProject(file); if (mavenProject == null) { throw new RuntimeException("Report this bug please. MavenProject not found for file " + file.getPath()); } myEditor = new GuiForm(project, file, mavenProject); } @NotNull public JComponent getComponent() { return myEditor.getRootComponent(); } public void dispose() { } public JComponent getPreferredFocusedComponent() { return myEditor.getPreferredFocusedComponent(); } @NotNull public String getName() { return "Dependency Analyzer"; } public boolean isModified() { return false; } public boolean isValid() { return true; } public void selectNotify() { myEditor.selectNotify(); } public void deselectNotify() { } public void addPropertyChangeListener(@NotNull final PropertyChangeListener listener) { } public void removePropertyChangeListener(@NotNull final PropertyChangeListener listener) { } public BackgroundEditorHighlighter getBackgroundHighlighter() { return null; } public FileEditorLocation getCurrentLocation() { return null; } @NotNull public FileEditorState getState(@NotNull final FileEditorStateLevel ignored) { return MY_EDITOR_STATE; } public void setState(@NotNull final FileEditorState state) { } public StructureViewBuilder getStructureViewBuilder() { return null; } }