package com.jetbrains.profiler;
import com.intellij.codeHighlighting.BackgroundEditorHighlighter;
import com.intellij.ide.structureView.StructureViewBuilder;
import com.intellij.ide.ui.UISettingsListener;
import com.intellij.openapi.fileEditor.FileEditor;
import com.intellij.openapi.fileEditor.FileEditorLocation;
import com.intellij.openapi.fileEditor.FileEditorState;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.UserDataHolderBase;
import com.intellij.openapi.vfs.VirtualFile;
import com.jetbrains.actionscript.profiler.base.ProfilerActionGroup;
import org.jetbrains.annotations.NotNull;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
public abstract class ProfileView extends UserDataHolderBase implements FileEditor, ProfilerActionGroup {
private PropertyChangeSupport myPropertyChangeSupport = new PropertyChangeSupport(this);
private final VirtualFile myFile;
private final Project myProject;
public ProfileView(VirtualFile file, Project project) {
myFile = file;
myProject = project;
project.getMessageBus().connect().subscribe(UISettingsListener.TOPIC, uiSettings -> uiSettingsChange());
}
protected void uiSettingsChange() {
}
public Project getProject() {
return myProject;
}
@Override
@NotNull
public String getName() {
return myFile.getNameWithoutExtension();
}
@Override
public void setState(@NotNull FileEditorState fileEditorState) {
// TODO:
}
@Override
public boolean isModified() {
return false;
}
@Override
public boolean isValid() {
return true;
}
@Override
public void selectNotify() {
}
@Override
public void deselectNotify() {
}
@Override
public void addPropertyChangeListener(@NotNull PropertyChangeListener propertyChangeListener) {
myPropertyChangeSupport.addPropertyChangeListener(propertyChangeListener);
}
@Override
public void removePropertyChangeListener(@NotNull PropertyChangeListener propertyChangeListener) {
myPropertyChangeSupport.removePropertyChangeListener(propertyChangeListener);
}
@Override
public BackgroundEditorHighlighter getBackgroundHighlighter() {
return null;
}
@Override
public FileEditorLocation getCurrentLocation() {
return null;
}
@Override
public StructureViewBuilder getStructureViewBuilder() {
return null;
}
@Override
public void dispose() {
myPropertyChangeSupport = null;
}
}