package sk.sorien.pimpleplugin;
import com.intellij.notification.Notification;
import com.intellij.notification.NotificationType;
import com.intellij.notification.Notifications;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.wm.StatusBar;
import com.intellij.openapi.wm.WindowManager;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import sk.sorien.pimpleplugin.pimple.ContainerResolver;
import sk.sorien.pimpleplugin.pimple.JsonFileContainer;
import sk.sorien.pimpleplugin.ui.ContainerStatusBarWidget;
/**
* @author Stanislav Turza
*/
public class ProjectComponent implements com.intellij.openapi.components.ProjectComponent {
private final Project project;
public ProjectComponent(Project project) {
this.project = project;
}
public void projectOpened() {
StatusBar statusBar = WindowManager.getInstance().getStatusBar(project);
if (statusBar != null) {
ContainerStatusBarWidget containerStatusBarWidget = new ContainerStatusBarWidget(project);
statusBar.addWidget(containerStatusBarWidget);
containerStatusBarWidget.setText("");
}
ContainerResolver.put(project, new JsonFileContainer(project, Configuration.getInstance(project).containerDefinitionFileName));
}
public void projectClosed() {
ContainerResolver.remove(project);
}
public static boolean isEnabled(@Nullable Project project) {
return project != null && Configuration.getInstance(project).pluginEnabled;
}
public static void error(String text, Project project) {
Notifications.Bus.notify(new Notification("Silex Plugin", "Silex Plugin", text, NotificationType.ERROR), project);
}
public static void warning(String text, Project project) {
Notifications.Bus.notify(new Notification("Silex Plugin", "Silex Plugin", text, NotificationType.WARNING), project);
}
public static void configChanged(Project project) {
ContainerResolver.remove(project);
ContainerResolver.put(project, new JsonFileContainer(project, Configuration.getInstance(project).containerDefinitionFileName));
}
public void initComponent() {
}
public void disposeComponent() {
}
@NotNull
public String getComponentName() {
return "silexPlugin";
}
}