package com.intellij.openapi.roots.ui.configuration; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleConfigurationEditor; import com.intellij.openapi.project.Project; import com.intellij.ui.navigation.Place; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; /** * @author ksafonov */ public abstract class HeaderHidingTabbedModuleEditor extends TabbedModuleEditor { public HeaderHidingTabbedModuleEditor(Project project, ModulesProvider modulesProvider, @NotNull Module module) { super(project, modulesProvider, module); } @Override protected JComponent createCenterPanel() { ModuleConfigurationEditor singleEditor = getSingleEditor(); if (singleEditor != null) { final JComponent component = singleEditor.createComponent(); singleEditor.reset(); return component; } else { return super.createCenterPanel(); } } @Nullable private ModuleConfigurationEditor getSingleEditor() { return myEditors.size() == 1 ? myEditors.get(0) : null; } @Override public ModuleConfigurationEditor getSelectedEditor() { ModuleConfigurationEditor singleEditor = getSingleEditor(); return singleEditor != null ? singleEditor : super.getSelectedEditor(); } @Override public void selectEditor(String displayName) { if (displayName != null) { ModuleConfigurationEditor singleEditor = getSingleEditor(); if (singleEditor != null) { // TODO [ksafonov] commented until IDEA-73889 is implemented //assert singleEditor.getDisplayName().equals(displayName); } else { super.selectEditor(displayName); } } } @Override protected void restoreSelectedEditor() { ModuleConfigurationEditor singleEditor = getSingleEditor(); if (singleEditor == null) { super.restoreSelectedEditor(); } } @Override @Nullable public ModuleConfigurationEditor getEditor(@NotNull String displayName) { ModuleConfigurationEditor singleEditor = getSingleEditor(); if (singleEditor != null) { if (displayName.equals(singleEditor.getDisplayName())) { return singleEditor; } else { return null; } } else { return super.getEditor(displayName); } } @Override protected void disposeCenterPanel() { if (getSingleEditor() == null) { super.disposeCenterPanel(); } } @Override public void queryPlace(@NotNull Place place) { ModuleConfigurationEditor singleEditor = getSingleEditor(); if (singleEditor != null) { place.putPath(SELECTED_EDITOR_NAME, singleEditor.getDisplayName()); } else { super.queryPlace(place); } } }