Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2000, 2018 IBM Corporation and others.
* Copyright (c) 2000, 2026 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
Expand Down Expand Up @@ -29,12 +29,15 @@
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.jface.resource.LocalResourceManager;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.jface.viewers.IBasicPropertyConstants;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
Expand Down Expand Up @@ -123,6 +126,9 @@ public class ConsoleView extends PageBookView implements IConsoleView, IConsoleL
private boolean fScrollLock;
private boolean fWordWrap;

private Image currentIcon, defaultIcon;
private LocalResourceManager localResManager;

private boolean isAvailable() {
return getPageBook() != null && !getPageBook().isDisposed();
}
Expand Down Expand Up @@ -184,6 +190,7 @@ protected void showPageRec(PageRec pageRec) {
}
updateTitle();
updateHelp();
updateIcon();
// update console actions
if (fPinAction != null) {
fPinAction.update();
Expand Down Expand Up @@ -269,6 +276,31 @@ protected void updateHelp() {
PlatformUI.getWorkbench().getHelpSystem().setHelp(getPageBook().getParent(), helpContextId);
}

protected void updateIcon() {
IConsole console = getConsole();
if (console == null) {
// Check and restore default console icon if last page is closed
if (currentIcon != defaultIcon) {
currentIcon = defaultIcon;
setTitleImage(currentIcon);
}
return;
}
Image newImage;

ImageDescriptor desc = console.getImageDescriptor();
if (desc != null) {
newImage = localResManager.create(desc);
} else {
newImage = defaultIcon;
}

if (!newImage.equals(currentIcon)) {
currentIcon = newImage;
setTitleImage(currentIcon);
}
}

@Override
protected void doDestroyPage(IWorkbenchPart part, PageRec pageRecord) {
IConsole console = fPartToConsole.get(part);
Expand Down Expand Up @@ -376,6 +408,10 @@ public void dispose() {
fOpenConsoleAction.dispose();
fOpenConsoleAction = null;
}
if (localResManager != null) {
localResManager.dispose();
localResManager = null;
}
}

/**
Expand Down Expand Up @@ -575,6 +611,9 @@ public void createPartControl(Composite parent) {
PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, IConsoleHelpContextIds.CONSOLE_VIEW);
getViewSite().getPage().addPartListener((IPartListener2)this);
initPageSwitcher();
localResManager = new LocalResourceManager(JFaceResources.getResources(), parent);
defaultIcon = ConsolePluginImages.getImage(IConsoleConstants.IMG_VIEW_CONSOLE);
currentIcon = defaultIcon;
}

/**
Expand Down
Loading