use of com.intellij.ui.content.Content in project intellij-community by JetBrains.
the class JavaDebugProcess method createTabLayouter.
@NotNull
@Override
public XDebugTabLayouter createTabLayouter() {
return new XDebugTabLayouter() {
@Override
public void registerAdditionalContent(@NotNull RunnerLayoutUi ui) {
registerThreadsPanel(ui);
registerMemoryViewPanel(ui);
}
@NotNull
@Override
public Content registerConsoleContent(@NotNull RunnerLayoutUi ui, @NotNull ExecutionConsole console) {
Content content = null;
if (console instanceof ExecutionConsoleEx) {
((ExecutionConsoleEx) console).buildUi(ui);
content = ui.findContent(DebuggerContentInfo.CONSOLE_CONTENT);
}
if (content == null) {
content = super.registerConsoleContent(ui, console);
}
return content;
}
private void registerThreadsPanel(@NotNull RunnerLayoutUi ui) {
final ThreadsPanel panel = new ThreadsPanel(myJavaSession.getProject(), getDebuggerStateManager());
final Content threadsContent = ui.createContent(DebuggerContentInfo.THREADS_CONTENT, panel, XDebuggerBundle.message("debugger.session.tab.threads.title"), AllIcons.Debugger.Threads, null);
Disposer.register(threadsContent, panel);
threadsContent.setCloseable(false);
ui.addContent(threadsContent, 0, PlaceInGrid.left, true);
ui.addListener(new ContentManagerAdapter() {
@Override
public void selectionChanged(ContentManagerEvent event) {
if (event.getContent() == threadsContent) {
if (threadsContent.isSelected()) {
panel.setUpdateEnabled(true);
if (panel.isRefreshNeeded()) {
panel.rebuildIfVisible(DebuggerSession.Event.CONTEXT);
}
} else {
panel.setUpdateEnabled(false);
}
}
}
}, threadsContent);
}
private void registerMemoryViewPanel(@NotNull RunnerLayoutUi ui) {
final XDebugSession session = getSession();
final DebugProcessImpl process = myJavaSession.getProcess();
final InstancesTracker tracker = InstancesTracker.getInstance(myJavaSession.getProject());
final ClassesFilteredView classesFilteredView = new ClassesFilteredView(session, process, tracker);
final Content memoryViewContent = ui.createContent(MemoryViewManager.MEMORY_VIEW_CONTENT, classesFilteredView, "Memory View", AllIcons.Debugger.MemoryView.Active, null);
memoryViewContent.setCloseable(false);
memoryViewContent.setPinned(true);
memoryViewContent.setShouldDisposeContent(true);
final MemoryViewDebugProcessData data = new MemoryViewDebugProcessData(classesFilteredView);
process.putUserData(MemoryViewDebugProcessData.KEY, data);
ui.addListener(new ContentManagerAdapter() {
@Override
public void contentAdded(ContentManagerEvent event) {
changeMemoryViewMode(event);
}
@Override
public void contentRemoved(ContentManagerEvent event) {
changeMemoryViewMode(event);
}
@Override
public void selectionChanged(ContentManagerEvent event) {
changeMemoryViewMode(event);
}
private void changeMemoryViewMode(@Nullable ContentManagerEvent event) {
if (event != null && event.getContent() == memoryViewContent) {
final ContentManagerEvent.ContentOperation operation = event.getOperation();
final boolean isAddOperation = operation.equals(ContentManagerEvent.ContentOperation.add);
if (isAddOperation || operation.equals(ContentManagerEvent.ContentOperation.remove)) {
classesFilteredView.setActive(isAddOperation, process.getManagerThread());
}
}
}
}, classesFilteredView);
ui.addContent(memoryViewContent, 0, PlaceInGrid.right, true);
}
};
}
use of com.intellij.ui.content.Content in project intellij-community by JetBrains.
the class NewErrorTreeViewPanel method close.
public void close() {
MessageView messageView = MessageView.SERVICE.getInstance(myProject);
Content content = messageView.getContentManager().getContent(this);
if (content != null) {
messageView.getContentManager().removeContent(content, true);
}
}
use of com.intellij.ui.content.Content in project intellij-community by JetBrains.
the class TestErrorViewAction method openView.
protected void openView(Project project, JComponent component) {
final MessageView messageView = MessageView.SERVICE.getInstance(project);
final Content content = ContentFactory.SERVICE.getInstance().createContent(component, getContentName(), true);
messageView.getContentManager().addContent(content);
messageView.getContentManager().setSelectedContent(content);
ToolWindow toolWindow = ToolWindowManager.getInstance(project).getToolWindow(ToolWindowId.MESSAGES_WINDOW);
if (toolWindow != null) {
toolWindow.activate(null);
}
}
use of com.intellij.ui.content.Content in project intellij-community by JetBrains.
the class CompositeDiffPanel method setDiffRequest.
@Override
public void setDiffRequest(DiffRequest request) {
final Map<String, DiffRequest> requestMap = myRequest.discloseRequest(request);
HashMap<String, Pair<DiffViewer, Content>> mapCopy = new HashMap<>(myMap);
myMap.clear();
for (Map.Entry<String, DiffRequest> entry : requestMap.entrySet()) {
final String key = entry.getKey();
final DiffRequest diffRequest = entry.getValue();
diffRequest.getGenericData().put(PlatformDataKeys.COMPOSITE_DIFF_VIEWER.getName(), this);
final Pair<DiffViewer, Content> pair = mapCopy.get(key);
DiffViewer viewer = pair != null ? pair.first : null;
if (viewer != null && viewer.acceptsType(diffRequest.getType()) && viewer.canShowRequest(diffRequest)) {
viewer.setDiffRequest(diffRequest);
myMap.put(key, pair);
mapCopy.remove(key);
} else {
final DiffViewer newViewer = myRequest.viewerForRequest(myWindow, myParentDisposable, key, diffRequest);
if (newViewer == null)
continue;
final Content content = myUi.createContent(key, newViewer.getComponent(), key, null, newViewer.getPreferredFocusedComponent());
content.setCloseable(false);
content.setPinned(true);
content.setDisposer(myParentDisposable);
myUi.addContent(content);
myMap.put(key, Pair.create(newViewer, content));
if (pair != null)
myUi.removeContent(pair.second, false);
}
}
if (myMap.isEmpty()) {
final ErrorDiffViewer errorDiffViewer = new ErrorDiffViewer(myWindow, request);
final Content content = myUi.createContent(FICTIVE_KEY, errorDiffViewer.getComponent(), FICTIVE_KEY, null, errorDiffViewer.getPreferredFocusedComponent());
content.setCloseable(false);
content.setPinned(true);
content.setDisposer(myParentDisposable);
myUi.addContent(content);
myMap.put(FICTIVE_KEY, Pair.<DiffViewer, Content>create(errorDiffViewer, content));
}
for (Pair<DiffViewer, Content> pair : mapCopy.values()) {
myUi.removeContent(pair.second, false);
if (pair.first instanceof Disposable)
Disposer.dispose((Disposable) pair.first);
}
}
use of com.intellij.ui.content.Content in project intellij-community by JetBrains.
the class OccurenceNavigatorActionBase method getNavigator.
@Nullable
protected OccurenceNavigator getNavigator(DataContext dataContext) {
ContentManager contentManager = ContentManagerUtil.getContentManagerFromContext(dataContext, false);
if (contentManager != null) {
Content content = contentManager.getSelectedContent();
if (content == null)
return null;
JComponent component = content.getComponent();
return findNavigator(component);
}
return (OccurenceNavigator) getOccurenceNavigatorFromContext(dataContext);
}
Aggregations