RunDashboard: edit types shown in dashboard

- Show edit panel in internal mode or when registry key is enabled
This commit is contained in:
Konstantin Aleev
2017-09-04 12:26:33 +03:00
parent 00029d32af
commit f3dded7758
3 changed files with 24 additions and 9 deletions
@@ -24,6 +24,7 @@ import com.intellij.execution.process.ProcessHandler;
import com.intellij.execution.runners.ExecutionEnvironment;
import com.intellij.execution.ui.RunContentDescriptor;
import com.intellij.icons.AllIcons;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.components.PersistentStateComponent;
import com.intellij.openapi.components.State;
import com.intellij.openapi.components.Storage;
@@ -80,14 +81,13 @@ public class RunDashboardManagerImpl implements RunDashboardManager, PersistentS
.sorted(DashboardGroupingRule.PRIORITY_COMPARATOR)
.map(DashboardGrouper::new)
.collect(Collectors.toList());
if (isDashboardEnabled()) {
initToolWindowListeners();
}
}
private static boolean isDashboardEnabled() {
return Registry.is("ide.run.dashboard") && RunDashboardContributor.EP_NAME.getExtensions().length > 0;
return Registry.is("ide.run.dashboard") &&
(Registry.is("ide.run.dashboard.types.configuration") ||
ApplicationManager.getApplication().isInternal() ||
RunDashboardContributor.EP_NAME.getExtensions().length > 0);
}
private void initToolWindowListeners() {
@@ -185,6 +185,7 @@ public class RunDashboardManagerImpl implements RunDashboardManager, PersistentS
toolWindow.getContentManager().addContent(myToolWindowContent);
toolWindow.setDefaultContentUiType(ToolWindowContentUiType.COMBO);
toolWindow.setContentUiType(ToolWindowContentUiType.COMBO, null);
initToolWindowListeners();
}
@Override
@@ -260,6 +261,12 @@ public class RunDashboardManagerImpl implements RunDashboardManager, PersistentS
RunDashboardContributor contributor = getContributor(runConfiguration.getType());
return contributor == null || contributor.isShowInDashboard(runConfiguration);
}
else {
if (!Registry.is("ide.run.dashboard.types.configuration") && !ApplicationManager.getApplication().isInternal()) {
RunDashboardContributor contributor = getContributor(runConfiguration.getType());
return contributor != null && contributor.isShowInDashboard(runConfiguration);
}
}
return false;
}
@@ -37,6 +37,7 @@ import com.intellij.openapi.util.Comparing
import com.intellij.openapi.util.Disposer
import com.intellij.openapi.util.Pair
import com.intellij.openapi.util.Trinity
import com.intellij.openapi.util.registry.Registry
import com.intellij.openapi.util.text.StringUtil
import com.intellij.openapi.wm.IdeFocusManager
import com.intellij.openapi.wm.IdeFocusManager.getGlobalInstance
@@ -493,11 +494,16 @@ open class RunConfigurable @JvmOverloads constructor(private val myProject: Proj
settingsWrapper.add(settingsPanel, BorderLayout.WEST)
settingsWrapper.add(Box.createGlue(), BorderLayout.CENTER)
val wrapper = JPanel(BorderLayout())
wrapper.add(createRunDashboardTypesPanel(), BorderLayout.CENTER)
wrapper.add(settingsWrapper, BorderLayout.SOUTH)
if (Registry.`is`("ide.run.dashboard.types.configuration") || ApplicationManager.getApplication().isInternal) {
val wrapper = JPanel(BorderLayout())
wrapper.add(createRunDashboardTypesPanel(), BorderLayout.CENTER)
wrapper.add(settingsWrapper, BorderLayout.SOUTH)
rightPanel.add(wrapper, BorderLayout.SOUTH)
rightPanel.add(wrapper, BorderLayout.SOUTH)
}
else {
rightPanel.add(settingsWrapper, BorderLayout.SOUTH)
}
}
rightPanel.revalidate()
rightPanel.repaint()
@@ -1078,6 +1078,8 @@ pause.indexing.in.power.save.mode.description=Whether indexing activities should
ide.run.dashboard=true
ide.run.dashboard.description=Enable Run Dashboard tool window
ide.run.dashboard.restartRequired=true
ide.run.dashboard.types.configuration=false
ide.run.dashboard.types.configuration.description=Enable Run Dashboard types configuration in Edit Run/Debug configurations dialog
focus.follows.mouse.workarounds=false
focus.follows.mouse.workarounds.description=Enables some workarounds for Focus-follows-mouse issues, like IDEA-112015