diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/DebuggerSessionTab.java b/java/debugger/impl/src/com/intellij/debugger/ui/DebuggerSessionTab.java index 4b9a146a7ee4..4294ffb81e7b 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/DebuggerSessionTab.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/DebuggerSessionTab.java @@ -43,10 +43,7 @@ import com.intellij.execution.runners.RestartAction; import com.intellij.execution.ui.ConsoleView; import com.intellij.execution.ui.ExecutionConsoleEx; import com.intellij.execution.ui.RunContentDescriptor; -import com.intellij.execution.ui.RunnerLayoutUi; import com.intellij.execution.ui.actions.CloseAction; -import com.intellij.execution.ui.layout.LayoutAttractionPolicy; -import com.intellij.execution.ui.layout.LayoutViewOptions; import com.intellij.execution.ui.layout.PlaceInGrid; import com.intellij.ide.CommonActionsManager; import com.intellij.ide.actions.ContextHelpAction; @@ -91,7 +88,6 @@ public class DebuggerSessionTab extends DebuggerSessionTabBase implements Dispos private final MyDebuggerStateManager myStateManager = new MyDebuggerStateManager(); private final FramesPanel myFramesPanel; - private final RunnerLayoutUi myUi; private ExecutionEnvironment myEnvironment; private RunProfile myConfiguration; @@ -100,16 +96,10 @@ public class DebuggerSessionTab extends DebuggerSessionTabBase implements Dispos private final Icon myIcon; public DebuggerSessionTab(final Project project, final String sessionName, @Nullable final Icon icon) { - super(project); + super(project, "JavaDebugger", sessionName); myIcon = icon; - myUi = RunnerLayoutUi.Factory.getInstance(project).create("JavaDebugger", XDebuggerBundle.message("xdebugger.default.content.title"), sessionName, this); - - myUi.getDefaults().initTabDefaults(0, XDebuggerBundle.message("xdebugger.debugger.tab.title"), null). - initFocusContent(DebuggerContentInfo.FRAME_CONTENT, XDebuggerUIConstants.LAYOUT_VIEW_BREAKPOINT_CONDITION). - initFocusContent(DebuggerContentInfo.CONSOLE_CONTENT, LayoutViewOptions.STARTUP, new LayoutAttractionPolicy.FocusOnce(false)); - final DefaultActionGroup focus = new DefaultActionGroup(); focus.add(ActionManager.getInstance().getAction("Debugger.FocusOnBreakpoint")); myUi.getOptions().setAdditionalFocusActions(focus); @@ -222,11 +212,6 @@ public class DebuggerSessionTab extends DebuggerSessionTabBase implements Dispos }, this); } - @Override - public RunnerLayoutUi getUi() { - return myUi; - } - private static void updateStatus(final Content content) { if (content.getComponent() instanceof DebuggerView) { final DebuggerView view = (DebuggerView)content.getComponent(); diff --git a/platform/lang-api/src/com/intellij/execution/ui/RunnerLayoutUi.java b/platform/lang-api/src/com/intellij/execution/ui/RunnerLayoutUi.java index 9b7e02189a67..e5c6f004b1e1 100644 --- a/platform/lang-api/src/com/intellij/execution/ui/RunnerLayoutUi.java +++ b/platform/lang-api/src/com/intellij/execution/ui/RunnerLayoutUi.java @@ -89,7 +89,7 @@ public interface RunnerLayoutUi { return ServiceManager.getService(project, Factory.class); } - public abstract RunnerLayoutUi create(@NotNull String runnerType, @NotNull String runnerTitle, @NotNull String sessionName, @NotNull Disposable parent); + public abstract RunnerLayoutUi create(@NotNull String runnerId, @NotNull String runnerTitle, @NotNull String sessionName, @NotNull Disposable parent); } } \ No newline at end of file diff --git a/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerLayoutUiFactoryImpl.java b/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerLayoutUiFactoryImpl.java index 0326cc00909b..adc11e73663b 100644 --- a/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerLayoutUiFactoryImpl.java +++ b/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerLayoutUiFactoryImpl.java @@ -28,7 +28,7 @@ public class RunnerLayoutUiFactoryImpl extends RunnerLayoutUi.Factory { myProject = project; } - public RunnerLayoutUi create(@NotNull final String runnerType, @NotNull final String runnerTitle, @NotNull final String sessionName, @NotNull final Disposable parent) { - return new RunnerLayoutUiImpl(myProject, parent, runnerType, runnerTitle, sessionName); + public RunnerLayoutUi create(@NotNull final String runnerId, @NotNull final String runnerTitle, @NotNull final String sessionName, @NotNull final Disposable parent) { + return new RunnerLayoutUiImpl(myProject, parent, runnerId, runnerTitle, sessionName); } } diff --git a/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerLayoutUiImpl.java b/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerLayoutUiImpl.java index d373a17437bd..3560b1c25a17 100644 --- a/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerLayoutUiImpl.java +++ b/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerLayoutUiImpl.java @@ -54,8 +54,8 @@ public class RunnerLayoutUiImpl implements Disposable, RunnerLayoutUi, LayoutSta private final ContentManager myViewsContentManager; public static final Key CONTENT_TYPE = Key.create("ContentType"); - public RunnerLayoutUiImpl(Project project, Disposable parent, String runnerType, String runnerTitle, String sessionName) { - myLayout = RunnerLayoutSettings.getInstance().getLayout(runnerType); + public RunnerLayoutUiImpl(Project project, Disposable parent, String runnerId, String runnerTitle, String sessionName) { + myLayout = RunnerLayoutSettings.getInstance().getLayout(runnerId); Disposer.register(parent, this); myContentUI = new RunnerContentUi(project, this, ActionManager.getInstance(), IdeFocusManager.getInstance(project), myLayout, diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/DebuggerSessionTabBase.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/DebuggerSessionTabBase.java index d09084f50f4e..2c2ac49701d7 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/DebuggerSessionTabBase.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/DebuggerSessionTabBase.java @@ -15,6 +15,7 @@ */ package com.intellij.xdebugger.impl.ui; +import com.intellij.debugger.ui.DebuggerContentInfo; import com.intellij.diagnostic.logging.*; import com.intellij.execution.ExecutionManager; import com.intellij.execution.configurations.RunConfigurationBase; @@ -23,6 +24,8 @@ import com.intellij.execution.executors.DefaultDebugExecutor; import com.intellij.execution.process.ProcessHandler; import com.intellij.execution.runners.ExecutionEnvironment; import com.intellij.execution.ui.*; +import com.intellij.execution.ui.layout.LayoutAttractionPolicy; +import com.intellij.execution.ui.layout.LayoutViewOptions; import com.intellij.ide.impl.ProjectUtil; import com.intellij.openapi.Disposable; import com.intellij.openapi.application.ApplicationManager; @@ -38,6 +41,7 @@ import com.intellij.ui.content.Content; import com.intellij.ui.content.ContentManagerAdapter; import com.intellij.ui.content.ContentManagerEvent; import com.intellij.ui.content.ContentManagerListener; +import com.intellij.xdebugger.XDebuggerBundle; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -53,11 +57,16 @@ import java.util.Map; * @author nik */ public abstract class DebuggerSessionTabBase implements DebuggerLogConsoleManager, Disposable { - private final Map myAdditionalContent = new HashMap(); - private final Map myContentListeners = + @NotNull private final Project myProject; + @NotNull private final LogFilesManager myManager; + + @NotNull final String mySessionName; + @NotNull protected final RunnerLayoutUi myUi; + + @NotNull private final Map myAdditionalContent = new HashMap(); + @NotNull private final Map myContentListeners = new HashMap(); - private final Project myProject; - private final LogFilesManager myManager; + protected ExecutionEnvironment myEnvironment; protected ExecutionConsole myConsole; @@ -65,14 +74,27 @@ public abstract class DebuggerSessionTabBase implements DebuggerLogConsoleManage private final Icon DEFAULT_TAB_COMPONENT_ICON = IconLoader.getIcon("/fileTypes/text.png"); - public DebuggerSessionTabBase(Project project) { + public DebuggerSessionTabBase(Project project, @NotNull String runnerId, @NotNull final String sessionName) { myProject = project; myManager = new LogFilesManager(project, this, this); + + mySessionName = sessionName; + + myUi = RunnerLayoutUi.Factory.getInstance(project).create( + runnerId, XDebuggerBundle.message("xdebugger.default.content.title"), sessionName, this); + + myUi.getDefaults() + .initTabDefaults(0, XDebuggerBundle.message("xdebugger.debugger.tab.title"), null) + .initFocusContent(DebuggerContentInfo.FRAME_CONTENT, XDebuggerUIConstants.LAYOUT_VIEW_BREAKPOINT_CONDITION) + .initFocusContent(DebuggerContentInfo.CONSOLE_CONTENT, LayoutViewOptions.STARTUP, new LayoutAttractionPolicy.FocusOnce(false)); } public abstract RunContentDescriptor getRunContentDescriptor(); - public abstract RunnerLayoutUi getUi(); + @NotNull + public RunnerLayoutUi getUi() { + return myUi; + } protected void registerFileMatcher(final RunProfile runConfiguration) { if (runConfiguration instanceof RunConfigurationBase) { diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebugSessionTab.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebugSessionTab.java index efd760d40209..30a204ab41ca 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebugSessionTab.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/XDebugSessionTab.java @@ -27,10 +27,7 @@ import com.intellij.execution.runners.RunContentBuilder; import com.intellij.execution.ui.ConsoleView; import com.intellij.execution.ui.ExecutionConsole; import com.intellij.execution.ui.RunContentDescriptor; -import com.intellij.execution.ui.RunnerLayoutUi; import com.intellij.execution.ui.actions.CloseAction; -import com.intellij.execution.ui.layout.LayoutAttractionPolicy; -import com.intellij.execution.ui.layout.LayoutViewOptions; import com.intellij.execution.ui.layout.PlaceInGrid; import com.intellij.ide.CommonActionsManager; import com.intellij.ide.actions.ContextHelpAction; @@ -60,20 +57,11 @@ import java.util.List; * @author spleaner */ public class XDebugSessionTab extends DebuggerSessionTabBase { - private final String mySessionName; - private final RunnerLayoutUi myUi; private XWatchesView myWatchesView; private final List myViews = new ArrayList(); public XDebugSessionTab(@NotNull final Project project, @NotNull final String sessionName) { - super(project); - mySessionName = sessionName; - - myUi = RunnerLayoutUi.Factory.getInstance(project).create("Debug", "unknown!", sessionName, this); - myUi.getDefaults() - .initTabDefaults(0, XDebuggerBundle.message("xdebugger.debugger.tab.title"), null) - .initFocusContent(DebuggerContentInfo.FRAME_CONTENT, XDebuggerUIConstants.LAYOUT_VIEW_BREAKPOINT_CONDITION) - .initFocusContent(DebuggerContentInfo.CONSOLE_CONTENT, LayoutViewOptions.STARTUP, new LayoutAttractionPolicy.FocusOnce(false)); + super(project, "Debug", sessionName); } private static ActionGroup getActionGroup(final String id) { @@ -206,9 +194,6 @@ public class XDebugSessionTab extends DebuggerSessionTabBase { return myRunContentDescriptor; } - public RunnerLayoutUi getUi() { - return myUi; - } @Nullable public RunContentDescriptor getRunContentDescriptor() {