package jetbrains.mps.ide.findusages.view.optionseditor; /*Generated by MPS */ import com.intellij.openapi.components.State; import com.intellij.openapi.components.Storage; import com.intellij.openapi.components.StoragePathMacros; import com.intellij.openapi.components.ProjectComponent; import com.intellij.openapi.components.PersistentStateComponent; import org.jdom.Element; import com.intellij.openapi.project.Project; import jetbrains.mps.ide.make.StartupModuleMaker; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import jetbrains.mps.project.MPSProject; import com.intellij.openapi.startup.StartupManager; @State(name = "DefaultSearchOptions3", storages = @Storage(value = StoragePathMacros.WORKSPACE_FILE) ) public class DefaultSearchOptionsComponent implements ProjectComponent, PersistentStateComponent<Element> { private DefaultOptionsContainer myDefaultOptions = null; private Project myProject; private Element myState; public DefaultSearchOptionsComponent(Project project, StartupModuleMaker maker) { myProject = project; } public DefaultOptionsContainer getDefaultOptions() { return myDefaultOptions; } @NonNls @NotNull @Override public String getComponentName() { return DefaultSearchOptionsComponent.class.getSimpleName(); } @Override public void initComponent() { } @Override public void disposeComponent() { } @Override public Element getState() { if (myDefaultOptions == null) { return myState; } myState = myDefaultOptions.writeOptions(myProject.getComponent(MPSProject.class)); return myState; } @Override public void loadState(Element state) { myState = (Element) state.clone(); if (myDefaultOptions == null) { return; } myDefaultOptions.readOptions(myState, myProject.getComponent(MPSProject.class)); } @Override public void projectOpened() { StartupManager.getInstance(myProject).registerStartupActivity(new Runnable() { @Override public void run() { myDefaultOptions = new DefaultOptionsContainer(); if (myState == null) { return; } myDefaultOptions.readOptions(myState, myProject.getComponent(MPSProject.class)); } }); } @Override public void projectClosed() { } }