diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/TriggeredOperations.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/TriggeredOperations.java
index a0635e90554..bfbbee0080d 100644
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/TriggeredOperations.java
+++ b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/TriggeredOperations.java
@@ -295,10 +295,11 @@ private void removeAllChildren() {
}
/**
- * Return the operation that triggered the other operations in this
- * composite.
+ * Return the operation that triggered the other operations in this composite.
*
- * @return the IUndoableOperation that triggered the other children.
+ * @return the IUndoableOperation that triggered the other children or
+ * null
if the triggeringOperation was removed
+ * @see TriggeredOperations#remove(IUndoableOperation)
*/
public IUndoableOperation getTriggeringOperation() {
return triggeringOperation;
diff --git a/bundles/org.eclipse.e4.ui.workbench.addons.swt/META-INF/MANIFEST.MF b/bundles/org.eclipse.e4.ui.workbench.addons.swt/META-INF/MANIFEST.MF
index 1902ea19495..d1349e8e07e 100644
--- a/bundles/org.eclipse.e4.ui.workbench.addons.swt/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.e4.ui.workbench.addons.swt/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-SymbolicName: org.eclipse.e4.ui.workbench.addons.swt;singleton:=true
-Bundle-Version: 1.5.400.qualifier
+Bundle-Version: 1.5.500.qualifier
Bundle-Name: %pluginName
Bundle-Vendor: %providerName
Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/minmax/MinMaxAddonUtil.java b/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/minmax/MinMaxAddonUtil.java
index 372ba2e7d52..d667dc54bec 100644
--- a/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/minmax/MinMaxAddonUtil.java
+++ b/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/minmax/MinMaxAddonUtil.java
@@ -347,7 +347,7 @@ public static MWindow getWindowFor(MUIElement element) {
// null since it's not in the 'children' hierarchy
while (parent != null && !(parent instanceof MWindow)) {
if (parent.getTags().contains(MIN_MAXIMIZEABLE_CHILDREN_AREA_TAG) && parent instanceof MArea) {
- parent = ((MArea) parent).getCurSharedRef();
+ parent = parent.getCurSharedRef();
} else {
parent = parent.getParent();
}
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/HandledContributionItem.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/HandledContributionItem.java
index 104db0fcfa2..ebd8a28e549 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/HandledContributionItem.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/HandledContributionItem.java
@@ -339,7 +339,7 @@ private String getToolTipText(boolean attachKeybinding) {
private String legacyActionLabelSupport(String text, ParameterizedCommand command) {
- return java.util.Optional.of(command).map(ParameterizedCommand::getCommand).map(Command::getHandler)
+ return java.util.Optional.ofNullable(command).map(ParameterizedCommand::getCommand).map(Command::getHandler)
.map(IHandler::getHandlerLabel).filter(Objects::nonNull).orElse(text);
}
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/SashLayout.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/SashLayout.java
index 36e2da08d82..4833b766d94 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/SashLayout.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/SashLayout.java
@@ -163,7 +163,7 @@ protected void layout(Composite composite, boolean flushCache) {
Rectangle bounds = composite.getBounds();
if (composite instanceof Shell)
- bounds = ((Shell) composite).getClientArea();
+ bounds = composite.getClientArea();
else {
bounds.x = 0;
bounds.y = 0;
diff --git a/bundles/org.eclipse.e4.ui.workbench/META-INF/MANIFEST.MF b/bundles/org.eclipse.e4.ui.workbench/META-INF/MANIFEST.MF
index fef5c44318d..f4f1df6ffe7 100644
--- a/bundles/org.eclipse.e4.ui.workbench/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.e4.ui.workbench/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-SymbolicName: org.eclipse.e4.ui.workbench;singleton:=true
-Bundle-Version: 1.15.400.qualifier
+Bundle-Version: 1.15.500.qualifier
Bundle-Name: %pluginName
Bundle-Vendor: %providerName
Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/LocaleChangeServiceImpl.java b/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/LocaleChangeServiceImpl.java
index 1c0ca43ce0b..d8f814bf027 100644
--- a/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/LocaleChangeServiceImpl.java
+++ b/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/LocaleChangeServiceImpl.java
@@ -25,7 +25,6 @@
import org.eclipse.e4.core.services.translation.TranslationService;
import org.eclipse.e4.ui.model.application.MApplication;
import org.eclipse.e4.ui.model.application.ui.MElementContainer;
-import org.eclipse.e4.ui.model.application.ui.MLocalizable;
import org.eclipse.e4.ui.model.application.ui.MUIElement;
import org.eclipse.e4.ui.model.application.ui.advanced.MPerspective;
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
@@ -142,7 +141,7 @@ protected void updateLocalization(List extends MUIElement> children) {
}
}
- ((MLocalizable) element).updateLocalization();
+ element.updateLocalization();
}
}
diff --git a/bundles/org.eclipse.jface.text/src/org/eclipse/jface/text/source/inlined/InlinedAnnotationDrawingStrategy.java b/bundles/org.eclipse.jface.text/src/org/eclipse/jface/text/source/inlined/InlinedAnnotationDrawingStrategy.java
index 60f4214018f..09464aef653 100644
--- a/bundles/org.eclipse.jface.text/src/org/eclipse/jface/text/source/inlined/InlinedAnnotationDrawingStrategy.java
+++ b/bundles/org.eclipse.jface.text/src/org/eclipse/jface/text/source/inlined/InlinedAnnotationDrawingStrategy.java
@@ -13,9 +13,6 @@
*/
package org.eclipse.jface.text.source.inlined;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.source.Annotation;
-import org.eclipse.jface.text.source.AnnotationPainter.IDrawingStrategy;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StyleRange;
import org.eclipse.swt.custom.StyledText;
@@ -27,6 +24,10 @@
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.jface.text.source.Annotation;
+import org.eclipse.jface.text.source.AnnotationPainter.IDrawingStrategy;
+
/**
* {@link IDrawingStrategy} implementation to render {@link AbstractInlinedAnnotation}.
*
@@ -115,7 +116,7 @@ private boolean match(Font annotationFont, StyledText widget) {
}
int widgetFontHeight = widget.getFont().getFontData()[0].getHeight();
int annotationFontHeight = annotationFont.getFontData()[0].getHeight();
- return annotationFontHeight == widgetFontHeight;
+ return annotationFontHeight == widgetFontHeight;
}
/**
@@ -201,7 +202,7 @@ private static void draw(LineHeaderAnnotation annotation, GC gc, StyledText text
*/
private static void draw(LineContentAnnotation annotation, GC gc, StyledText textWidget, int widgetOffset, int length,
Color color) {
- if (annotation.isEndOfLine(widgetOffset, textWidget)) {
+ if (annotation.isEmptyLine(widgetOffset, textWidget)) {
drawAfterLine(annotation, gc, textWidget, widgetOffset, length, color);
} else if (LineContentAnnotation.drawRightToPreviousChar(widgetOffset, textWidget)) {
drawAsRightOfPreviousCharacter(annotation, gc, textWidget, widgetOffset, length, color);
diff --git a/bundles/org.eclipse.jface.text/src/org/eclipse/jface/text/source/inlined/LineContentAnnotation.java b/bundles/org.eclipse.jface.text/src/org/eclipse/jface/text/source/inlined/LineContentAnnotation.java
index e0fbe501e5e..f451206f0d5 100644
--- a/bundles/org.eclipse.jface.text/src/org/eclipse/jface/text/source/inlined/LineContentAnnotation.java
+++ b/bundles/org.eclipse.jface.text/src/org/eclipse/jface/text/source/inlined/LineContentAnnotation.java
@@ -13,11 +13,6 @@
*/
package org.eclipse.jface.text.source.inlined;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.ITextViewerExtension5;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.TextPresentation;
-import org.eclipse.jface.text.source.ISourceViewer;
import org.eclipse.swt.custom.StyleRange;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.graphics.Color;
@@ -25,6 +20,12 @@
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.GlyphMetrics;
+import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.jface.text.ITextViewerExtension5;
+import org.eclipse.jface.text.Position;
+import org.eclipse.jface.text.TextPresentation;
+import org.eclipse.jface.text.source.ISourceViewer;
+
/**
* Inlined annotation which is drawn in the line content and which takes some place with a given
* width.
@@ -162,14 +163,12 @@ static boolean drawRightToPreviousChar(int widgetOffset, StyledText textWidget)
textWidget.getLineAtOffset(widgetOffset) == textWidget.getLineAtOffset(widgetOffset - 1);
}
- boolean isEndOfLine(int widgetOffset, StyledText text) {
+ boolean isEmptyLine(int widgetOffset, StyledText text) {
if (text.getCharCount() <= widgetOffset) { // Assuming widgetOffset >= 0
return true;
}
int line= text.getLineAtOffset(widgetOffset);
- int startOfLine= text.getOffsetAtLine(line);
- int offsetInLine= widgetOffset - startOfLine;
- return offsetInLine >= text.getLine(line).length();
+ String lineStr= text.getLine(line);
+ return lineStr.length() == 0;
}
-
}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/ConfigureColumns.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/util/ConfigureColumns.java
index 2cbe746f63b..9b3ef42694a 100644
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/ConfigureColumns.java
+++ b/bundles/org.eclipse.jface/src/org/eclipse/jface/util/ConfigureColumns.java
@@ -172,9 +172,9 @@ private boolean createColumnObjects() {
private Image getColumnImage(Item item) {
if (item instanceof TableColumn) {
- return ((TableColumn) item).getImage();
+ return item.getImage();
} else if (item instanceof TreeColumn) {
- return ((TreeColumn) item).getImage();
+ return item.getImage();
}
return null;
}
@@ -301,12 +301,12 @@ private void createLabel(final Composite composite, String string) {
private String getColumnName(Item item) {
String result = ""; //$NON-NLS-1$
if (item instanceof TableColumn) {
- result = ((TableColumn) item).getText();
+ result = item.getText();
if (result.trim().isEmpty()) {
result = ((TableColumn) item).getToolTipText();
}
} else if (item instanceof TreeColumn) {
- result = ((TreeColumn) item).getText();
+ result = item.getText();
if (result.trim().isEmpty()) {
result = ((TreeColumn) item).getToolTipText();
}
diff --git a/bundles/org.eclipse.ltk.core.refactoring/META-INF/MANIFEST.MF b/bundles/org.eclipse.ltk.core.refactoring/META-INF/MANIFEST.MF
index b4ad4bb24f9..49d207da620 100644
--- a/bundles/org.eclipse.ltk.core.refactoring/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.ltk.core.refactoring/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Automatic-Module-Name: org.eclipse.ltk.core.refactoring
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.ltk.core.refactoring; singleton:=true
-Bundle-Version: 3.14.400.qualifier
+Bundle-Version: 3.14.500.qualifier
Bundle-Activator: org.eclipse.ltk.internal.core.refactoring.RefactoringCorePlugin
Bundle-ActivationPolicy: lazy
Bundle-Vendor: %providerName
diff --git a/bundles/org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/core/refactoring/participants/ProcessorBasedRefactoring.java b/bundles/org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/core/refactoring/participants/ProcessorBasedRefactoring.java
index 15e9b34cb96..aca29f94def 100644
--- a/bundles/org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/core/refactoring/participants/ProcessorBasedRefactoring.java
+++ b/bundles/org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/core/refactoring/participants/ProcessorBasedRefactoring.java
@@ -430,7 +430,7 @@ private static void disableParticipant(final RefactoringParticipant participant,
private void addToTextChangeMap(Change change) {
if (change instanceof TextChange) {
- Object element= ((TextChange) change).getModifiedElement();
+ Object element= change.getModifiedElement();
if (element != null) {
fTextChangeMap.put(element, (TextChange) change);
}
diff --git a/bundles/org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/internal/core/refactoring/UndoManager2.java b/bundles/org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/internal/core/refactoring/UndoManager2.java
index afb1d5ed9ee..3c34e3fba6f 100644
--- a/bundles/org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/internal/core/refactoring/UndoManager2.java
+++ b/bundles/org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/internal/core/refactoring/UndoManager2.java
@@ -173,9 +173,10 @@ public void changePerformed(Change change, boolean successful) {
@Override
public void addUndo(String name, Change change) {
if (fActiveOperation != null) {
- UndoableOperation2ChangeAdapter operation= (UndoableOperation2ChangeAdapter)fActiveOperation.getTriggeringOperation();
- operation.setUndoChange(change);
- operation.setLabel(name);
+ if (fActiveOperation.getTriggeringOperation() instanceof UndoableOperation2ChangeAdapter operation) {
+ operation.setUndoChange(change);
+ operation.setLabel(name);
+ }
fOperationHistory.add(fActiveOperation);
fActiveOperation= null;
}
diff --git a/bundles/org.eclipse.search/META-INF/MANIFEST.MF b/bundles/org.eclipse.search/META-INF/MANIFEST.MF
index 8973a63ae63..f49bba72f71 100644
--- a/bundles/org.eclipse.search/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.search/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.search; singleton:=true
-Bundle-Version: 3.16.200.qualifier
+Bundle-Version: 3.16.300.qualifier
Bundle-Activator: org.eclipse.search.internal.ui.SearchPlugin
Bundle-ActivationPolicy: lazy
Bundle-Vendor: %providerName
diff --git a/bundles/org.eclipse.search/search/org/eclipse/search/internal/ui/SearchPageDescriptor.java b/bundles/org.eclipse.search/search/org/eclipse/search/internal/ui/SearchPageDescriptor.java
index f7bc43ad3ae..8bc61bf9397 100644
--- a/bundles/org.eclipse.search/search/org/eclipse/search/internal/ui/SearchPageDescriptor.java
+++ b/bundles/org.eclipse.search/search/org/eclipse/search/internal/ui/SearchPageDescriptor.java
@@ -34,7 +34,6 @@
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource;
import org.eclipse.jface.dialogs.IDialogSettings;
@@ -336,7 +335,7 @@ public int computeScore(Object element) {
IResource resource= ((IAdaptable)element).getAdapter(IResource.class);
if (resource != null && resource.getType() == IResource.FILE) {
- String extension= ((IFile)resource).getFileExtension();
+ String extension= resource.getFileExtension();
if (extension != null)
score= Math.max(score, getScoreForFileExtension(extension));
}
diff --git a/bundles/org.eclipse.ui.editors/src/org/eclipse/ui/internal/texteditor/LineNumberColumn.java b/bundles/org.eclipse.ui.editors/src/org/eclipse/ui/internal/texteditor/LineNumberColumn.java
index 74afbe2a0fd..d8aa52f331b 100644
--- a/bundles/org.eclipse.ui.editors/src/org/eclipse/ui/internal/texteditor/LineNumberColumn.java
+++ b/bundles/org.eclipse.ui.editors/src/org/eclipse/ui/internal/texteditor/LineNumberColumn.java
@@ -530,7 +530,7 @@ private boolean ensureQuickDiffProvider(String diffProviderId) {
modelExtension.addAnnotationModel(IChangeRulerColumn.QUICK_DIFF_MODEL_ID, newDiffer);
if (fDelegate instanceof IChangeRulerColumn)
- ((IChangeRulerColumn) fDelegate).setModel(annotationModel); // picks up the new model attachment
+ fDelegate.setModel(annotationModel); // picks up the new model attachment
return true;
}
@@ -543,7 +543,7 @@ private boolean ensureQuickDiffProvider(String diffProviderId) {
private void installChangeRulerModel(IVerticalRulerColumn column) {
if (column instanceof IChangeRulerColumn) {
IAnnotationModel model= getAnnotationModelWithDiffer();
- ((IChangeRulerColumn) column).setModel(model);
+ column.setModel(model);
if (model != null) {
ISourceViewer viewer= fViewer;
if (viewer != null && viewer.getAnnotationModel() == null && column.getControl() != null)
@@ -559,7 +559,7 @@ private void installChangeRulerModel(IVerticalRulerColumn column) {
*/
private void uninstallChangeRulerModel(IVerticalRulerColumn column) {
if (column instanceof IChangeRulerColumn)
- ((IChangeRulerColumn) column).setModel(null);
+ column.setModel(null);
IAnnotationModel model= getDiffer();
if (model instanceof ILineDifferExtension)
((ILineDifferExtension) model).suspend();
diff --git a/bundles/org.eclipse.ui.editors/src/org/eclipse/ui/texteditor/AddMarkerAction.java b/bundles/org.eclipse.ui.editors/src/org/eclipse/ui/texteditor/AddMarkerAction.java
index a593ec97694..76eeb3e1474 100644
--- a/bundles/org.eclipse.ui.editors/src/org/eclipse/ui/texteditor/AddMarkerAction.java
+++ b/bundles/org.eclipse.ui.editors/src/org/eclipse/ui/texteditor/AddMarkerAction.java
@@ -331,7 +331,7 @@ protected IResource getResource() {
ITextEditor editor= getTextEditor();
if (editor != null) {
IEditorInput input= editor.getEditorInput();
- return ((IAdaptable) input).getAdapter(IResource.class);
+ return input.getAdapter(IResource.class);
}
return null;
}
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CloseUnrelatedProjectsAction.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CloseUnrelatedProjectsAction.java
index 3d8c3ad6252..6bb045a4647 100644
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CloseUnrelatedProjectsAction.java
+++ b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CloseUnrelatedProjectsAction.java
@@ -162,7 +162,7 @@ private boolean promptForConfirmation() {
IResource firstSelected = selection.get(0);
String projectName = null;
if (firstSelected instanceof IProject) {
- projectName = ((IProject) firstSelected).getName();
+ projectName = firstSelected.getName();
}
message = NLS.bind(IDEWorkbenchMessages.CloseUnrelatedProjectsAction_confirmMsg1, projectName);
} else // if more then one project is selected then print there number
diff --git a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyResourceAction.java b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyResourceAction.java
index 4132c0acd2d..59204d631a1 100644
--- a/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyResourceAction.java
+++ b/bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyResourceAction.java
@@ -288,7 +288,7 @@ protected boolean updateSelection(IStructuredSelection selection) {
if (selectedResources.isEmpty()) {
return false;
}
- IContainer firstParent = ((IResource) selectedResources.get(0))
+ IContainer firstParent = selectedResources.get(0)
.getParent();
if (firstParent == null) {
return false;
diff --git a/bundles/org.eclipse.ui.navigator.resources/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.navigator.resources/META-INF/MANIFEST.MF
index e9c2740182b..4f37678762d 100644
--- a/bundles/org.eclipse.ui.navigator.resources/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.ui.navigator.resources/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Plugin.name
Bundle-SymbolicName: org.eclipse.ui.navigator.resources; singleton:=true
-Bundle-Version: 3.9.300.qualifier
+Bundle-Version: 3.9.400.qualifier
Bundle-Activator: org.eclipse.ui.internal.navigator.resources.plugin.WorkbenchNavigatorPlugin
Bundle-Vendor: %Plugin.providerName
Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/PasteAction.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/PasteAction.java
index 4117fffbf68..8674abdf5c2 100644
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/PasteAction.java
+++ b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/PasteAction.java
@@ -187,7 +187,7 @@ private IContainer getContainer(IResource[] clipboardContent) {
}
if (selection.get(0) instanceof IFile) {
- return ((IFile) selection.get(0)).getParent();
+ return selection.get(0).getParent();
}
return (IContainer) selection.get(0);
}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/ResourceMgmtActionProvider.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/ResourceMgmtActionProvider.java
index f860ce34324..a8fcea10af4 100644
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/ResourceMgmtActionProvider.java
+++ b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/ResourceMgmtActionProvider.java
@@ -145,8 +145,10 @@ public void fillContextMenu(IMenuManager menu) {
buildAction.selectionChanged(selection);
menu.appendToGroup(ICommonMenuConstants.GROUP_BUILD, buildAction);
}
- // To refresh, even if one project is open
- if (hasOpenProjects) {
+ // Add the 'refresh' item if any selection is either (a) an open project, or (b)
+ // a non-project selection (so the 'refresh' item is not shown if all selections
+ // are closed projects)
+ if (hasOpenProjects || !isProjectSelection) {
refreshAction.selectionChanged(selection);
menu.appendToGroup(ICommonMenuConstants.GROUP_BUILD, refreshAction);
}
diff --git a/bundles/org.eclipse.ui.navigator/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.navigator/META-INF/MANIFEST.MF
index 25dfe3706e2..69d1172c38e 100644
--- a/bundles/org.eclipse.ui.navigator/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.ui.navigator/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Plugin.name
Bundle-SymbolicName: org.eclipse.ui.navigator; singleton:=true
-Bundle-Version: 3.12.400.qualifier
+Bundle-Version: 3.12.500.qualifier
Bundle-Activator: org.eclipse.ui.internal.navigator.NavigatorPlugin
Bundle-Vendor: %Plugin.providerName
Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorContentServiceContentProvider.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorContentServiceContentProvider.java
index 81c8b35321d..af400de3305 100644
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorContentServiceContentProvider.java
+++ b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorContentServiceContentProvider.java
@@ -441,7 +441,7 @@ private boolean callNormalHasChildren(Object anElementOrPath, Object anElement,
ITreePathContentProvider tpcp = cp;
return tpcp.hasChildren((TreePath) anElementOrPath);
}
- return ((ITreeContentProvider) cp).hasChildren(anElement);
+ return cp.hasChildren(anElement);
}
private boolean pipelineHasChildren(Object anElementOrPath, Object anElement,
@@ -632,8 +632,8 @@ public void run() throws Exception {
if (!isOverridingDescriptorInSet(foundExtension.getDescriptor(), descriptors)) {
if (foundExtension.internalGetContentProvider().isTreePath()) {
- TreePath[] parentTreePaths = ((ITreePathContentProvider) foundExtension
- .internalGetContentProvider()).getParents(anElement);
+ TreePath[] parentTreePaths = foundExtension
+ .internalGetContentProvider().getParents(anElement);
for (TreePath parentTreePath : parentTreePaths) {
diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorPipelineService.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorPipelineService.java
index f7b4d35af50..4e45784a0fc 100644
--- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorPipelineService.java
+++ b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorPipelineService.java
@@ -25,7 +25,6 @@
import org.eclipse.ui.internal.navigator.extensions.NavigatorContentExtension;
import org.eclipse.ui.navigator.INavigatorContentDescriptor;
import org.eclipse.ui.navigator.INavigatorPipelineService;
-import org.eclipse.ui.navigator.IPipelinedTreeContentProvider;
import org.eclipse.ui.navigator.PipelinedShapeModification;
import org.eclipse.ui.navigator.PipelinedViewerUpdate;
@@ -79,8 +78,8 @@ private void pipelineInterceptAdd(final PipelinedShapeModification anAddModifica
SafeRunner.run(new NavigatorSafeRunnable() {
@Override
public void run() throws Exception {
- ((IPipelinedTreeContentProvider) extension
- .internalGetContentProvider())
+ extension
+ .internalGetContentProvider()
.interceptAdd(anAddModification);
}
@@ -139,8 +138,8 @@ private void pipelineInterceptRemove(final PipelinedShapeModification aRemoveMod
SafeRunner.run(new NavigatorSafeRunnable() {
@Override
public void run() throws Exception {
- ((IPipelinedTreeContentProvider) overridingExtension
- .internalGetContentProvider()).interceptRemove(aRemoveModification);
+ overridingExtension
+ .internalGetContentProvider().interceptRemove(aRemoveModification);
}
@Override
@@ -189,8 +188,8 @@ private boolean pipelineInterceptRefresh(final NavigatorContentExtension overrid
SafeRunner.run(new NavigatorSafeRunnable() {
@Override
public void run() throws Exception {
- intercepted[0] |= ((IPipelinedTreeContentProvider) nceLocal
- .internalGetContentProvider())
+ intercepted[0] |= nceLocal
+ .internalGetContentProvider()
.interceptRefresh(aRefreshSynchronization);
if (nceLocal.getDescriptor().hasOverridingExtensions())
@@ -242,8 +241,8 @@ private boolean pipelineInterceptUpdate(final NavigatorContentExtension override
SafeRunner.run(new NavigatorSafeRunnable() {
@Override
public void run() throws Exception {
- intercepted[0] |= ((IPipelinedTreeContentProvider) nceLocal
- .internalGetContentProvider())
+ intercepted[0] |= nceLocal
+ .internalGetContentProvider()
.interceptUpdate(anUpdateSynchronization);
if (nceLocal.getDescriptor().hasOverridingExtensions())
diff --git a/bundles/org.eclipse.ui.views/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.views/META-INF/MANIFEST.MF
index 7e22568a08b..711668e3508 100644
--- a/bundles/org.eclipse.ui.views/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.ui.views/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.ui.views; singleton:=true
-Bundle-Version: 3.12.300.qualifier
+Bundle-Version: 3.12.400.qualifier
Bundle-Vendor: %providerName
Bundle-Localization: plugin
Export-Package: org.eclipse.ui.internal.views.contentoutline;x-internal:=true,
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetEntry.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetEntry.java
index acffacc707a..6394f598931 100644
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetEntry.java
+++ b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetEntry.java
@@ -553,7 +553,7 @@ private void refreshChildEntries() {
// Dispose of entries which are no longer needed
for (PropertySheetEntry element : entriesToDispose) {
- ((IPropertySheetEntry) element).dispose();
+ element.dispose();
}
}
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/case_sensitive.png b/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/case_sensitive.png
similarity index 100%
rename from bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/case_sensitive.png
rename to bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/case_sensitive.png
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/case_sensitive@2x.png b/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/case_sensitive@2x.png
similarity index 100%
rename from bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/case_sensitive@2x.png
rename to bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/case_sensitive@2x.png
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/close_replace.png b/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/close_replace.png
new file mode 100644
index 00000000000..263ed7f4529
Binary files /dev/null and b/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/close_replace.png differ
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/close_replace@2x.png b/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/close_replace@2x.png
new file mode 100644
index 00000000000..2e70d7321ee
Binary files /dev/null and b/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/close_replace@2x.png differ
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/open_replace.png b/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/open_replace.png
new file mode 100644
index 00000000000..0801ecae190
Binary files /dev/null and b/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/open_replace.png differ
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/open_replace@2x.png b/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/open_replace@2x.png
new file mode 100644
index 00000000000..3638db358a2
Binary files /dev/null and b/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/open_replace@2x.png differ
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/regex.png b/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/regex.png
similarity index 100%
rename from bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/regex.png
rename to bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/regex.png
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/regex@2x.png b/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/regex@2x.png
similarity index 100%
rename from bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/regex@2x.png
rename to bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/regex@2x.png
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/replace.png b/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/replace.png
similarity index 100%
rename from bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/replace.png
rename to bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/replace.png
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/replace@2x.png b/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/replace@2x.png
similarity index 100%
rename from bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/replace@2x.png
rename to bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/replace@2x.png
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/replace_all.png b/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/replace_all.png
similarity index 100%
rename from bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/replace_all.png
rename to bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/replace_all.png
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/replace-all@2x.png b/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/replace_all@2x.png
similarity index 100%
rename from bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/replace-all@2x.png
rename to bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/replace_all@2x.png
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/search_all.png b/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/search_all.png
similarity index 100%
rename from bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/search_all.png
rename to bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/search_all.png
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/search_all@2x.png b/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/search_all@2x.png
similarity index 100%
rename from bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/search_all@2x.png
rename to bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/search_all@2x.png
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/search_in_area.png b/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/search_in_area.png
similarity index 100%
rename from bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/search_in_area.png
rename to bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/search_in_area.png
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/search_in_area@2x.png b/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/search_in_area@2x.png
similarity index 100%
rename from bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/search_in_area@2x.png
rename to bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/search_in_area@2x.png
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/select_next.png b/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/select_next.png
similarity index 100%
rename from bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/select_next.png
rename to bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/select_next.png
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/search_next@2x.png b/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/select_next@2x.png
similarity index 100%
rename from bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/search_next@2x.png
rename to bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/select_next@2x.png
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/select_prev.png b/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/select_prev.png
similarity index 100%
rename from bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/select_prev.png
rename to bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/select_prev.png
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/search_prev@2x.png b/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/select_prev@2x.png
similarity index 100%
rename from bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/search_prev@2x.png
rename to bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/select_prev@2x.png
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/whole_word.png b/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/whole_word.png
similarity index 100%
rename from bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/whole_word.png
rename to bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/whole_word.png
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/whole_word@2x.png b/bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/whole_word@2x.png
similarity index 100%
rename from bundles/org.eclipse.ui.workbench.texteditor/icons/full/obj16/whole_word@2x.png
rename to bundles/org.eclipse.ui.workbench.texteditor/icons/full/elcl16/whole_word@2x.png
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/AccessibleToolBar.java b/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/AccessibleToolBar.java
new file mode 100644
index 00000000000..959aa66f984
--- /dev/null
+++ b/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/AccessibleToolBar.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2024 Vector Informatik GmbH and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Vector Informatik GmbH - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.texteditor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.swt.widgets.ToolItem;
+
+import org.eclipse.jface.layout.GridLayoutFactory;
+
+/**
+ * This class wraps the ToolBar to make it possible to use tabulator-keys to
+ * navigate between the buttons of a ToolBar. For this, we simulate a singular
+ * ToolBar by putting each ToolItem into it's own ToolBar and composing them
+ * into a Composite. Since the "Enter" keypress could not previously trigger
+ * activation behavior, we listen for it manually and send according events if
+ * necessary.
+ */
+class AccessibleToolBar extends Composite {
+
+ private List toolBars = new ArrayList<>();
+
+ public AccessibleToolBar(Composite parent) {
+ super(parent, SWT.NONE);
+ GridLayoutFactory.fillDefaults().numColumns(0).spacing(0, 0).margins(0, 0).applyTo(this);
+ }
+
+ /**
+ * Creates a ToolItem handled by this ToolBar and returns it. Will add a
+ * KeyListener which will handle presses of "Enter".
+ *
+ * @param styleBits the StyleBits to apply to the created ToolItem
+ * @return a newly created ToolItem
+ */
+ public ToolItem createToolItem(int styleBits) {
+ ToolBar parent = new ToolBar(this, SWT.FLAT | SWT.HORIZONTAL);
+ ToolItem toolItem = new ToolItem(parent, styleBits);
+
+ addToolItemTraverseListener(parent, toolItem);
+
+ ((GridLayout) getLayout()).numColumns++;
+
+ toolBars.add(parent);
+ return toolItem;
+ }
+
+ private void addToolItemTraverseListener(ToolBar parent, ToolItem result) {
+ parent.addTraverseListener(e -> {
+ if (e.keyCode == SWT.CR || e.keyCode == SWT.KEYPAD_CR) {
+ result.setSelection(!result.getSelection());
+ e.doit = false;
+ }
+ });
+ }
+
+ @Override
+ public void setBackground(Color color) {
+ super.setBackground(color);
+ for (ToolBar bar : toolBars) { // some ToolItems (like SWT.SEPARATOR) don't easily inherit the color from the
+ // parent control.
+ bar.setBackground(color);
+ }
+ }
+
+}
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/AccessibleToolItemBuilder.java b/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/AccessibleToolItemBuilder.java
new file mode 100644
index 00000000000..45e3c40ef72
--- /dev/null
+++ b/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/AccessibleToolItemBuilder.java
@@ -0,0 +1,74 @@
+/*******************************************************************************
+ * Copyright (c) 2024 Vector Informatik GmbH and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Vector Informatik GmbH - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.texteditor;
+
+import java.util.Objects;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.ToolItem;
+
+/**
+ * Builder for ToolItems for {@link AccessibleToolBar}.
+ */
+class AccessibleToolItemBuilder {
+ private final AccessibleToolBar accessibleToolBar;
+ private int styleBits = SWT.NONE;
+ private Image image;
+ private String toolTipText;
+ private SelectionListener selectionListener;
+
+ public AccessibleToolItemBuilder(AccessibleToolBar accessibleToolBar) {
+ this.accessibleToolBar = Objects.requireNonNull(accessibleToolBar);
+ }
+
+ public AccessibleToolItemBuilder withStyleBits(int newStyleBits) {
+ this.styleBits = newStyleBits;
+ return this;
+ }
+
+ public AccessibleToolItemBuilder withImage(Image newImage) {
+ this.image = newImage;
+ return this;
+ }
+
+ public AccessibleToolItemBuilder withToolTipText(String newToolTipText) {
+ this.toolTipText = newToolTipText;
+ return this;
+ }
+
+ public AccessibleToolItemBuilder withSelectionListener(SelectionListener newSelectionListener) {
+ this.selectionListener = newSelectionListener;
+ return this;
+ }
+
+ public ToolItem build() {
+ ToolItem toolItem = accessibleToolBar.createToolItem(styleBits);
+
+ if (image != null) {
+ toolItem.setImage(image);
+ }
+
+ if (toolTipText != null) {
+ toolItem.setToolTipText(toolTipText);
+ }
+
+ if (selectionListener != null) {
+ toolItem.addSelectionListener(selectionListener);
+ }
+
+ return toolItem;
+ }
+}
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/FindReplaceDialog.java b/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/FindReplaceDialog.java
index dd9466e0f19..442f7f558d3 100644
--- a/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/FindReplaceDialog.java
+++ b/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/FindReplaceDialog.java
@@ -1003,7 +1003,7 @@ private void storeButtonWithMnemonicInMap(Button button) {
private void setGridData(Control component, int horizontalAlignment, boolean grabExcessHorizontalSpace,
int verticalAlignment, boolean grabExcessVerticalSpace) {
GridData gd;
- if (component instanceof Button && (((Button) component).getStyle() & SWT.PUSH) != 0) {
+ if (component instanceof Button && (component.getStyle() & SWT.PUSH) != 0) {
SWTUtil.setButtonDimensionHint((Button) component);
gd = (GridData) component.getLayoutData();
} else {
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/FindReplaceOverlay.java b/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/FindReplaceOverlay.java
index 5f465d90b56..42975f9a5eb 100644
--- a/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/FindReplaceOverlay.java
+++ b/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/FindReplaceOverlay.java
@@ -26,6 +26,8 @@
import org.eclipse.swt.events.KeyListener;
import org.eclipse.swt.events.PaintListener;
import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.events.ShellAdapter;
+import org.eclipse.swt.events.ShellEvent;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Point;
@@ -40,7 +42,6 @@
import org.eclipse.swt.widgets.Scrollable;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;
import org.eclipse.swt.widgets.Widget;
@@ -87,7 +88,7 @@ class FindReplaceOverlay extends Dialog {
private Composite searchContainer;
private Composite searchBarContainer;
private Text searchBar;
- private ToolBar searchTools;
+ private AccessibleToolBar searchTools;
private ToolItem searchInSelectionButton;
private ToolItem wholeWordSearchButton;
@@ -100,7 +101,7 @@ class FindReplaceOverlay extends Dialog {
private Composite replaceContainer;
private Composite replaceBarContainer;
private Text replaceBar;
- private ToolBar replaceTools;
+ private AccessibleToolBar replaceTools;
private ToolItem replaceButton;
private ToolItem replaceAllButton;
@@ -226,10 +227,17 @@ public void controlResized(ControlEvent e) {
}
};
- private FocusListener overlayFocusListener = FocusListener.focusLostAdapter(e -> {
- findReplaceLogic.activate(SearchOptions.GLOBAL);
- searchInSelectionButton.setSelection(false);
- });
+ private ShellAdapter overlayDeactivationListener = new ShellAdapter() {
+ @Override
+ public void shellActivated(ShellEvent e) {
+ // Do nothing
+ }
+
+ @Override
+ public void shellDeactivated(ShellEvent e) {
+ removeSearchScope();
+ }
+ };
private PaintListener widgetMovementListener = __ -> positionToPart();
@@ -317,7 +325,7 @@ public int open() {
}
overlayOpen = true;
applyOverlayColors(backgroundToUse, true);
- initFindStringFromSelection();
+ updateFromTargetSelection();
getShell().layout();
positionToPart();
@@ -361,7 +369,7 @@ private void applyOverlayColors(Color color, boolean tryToColorReplaceBar) {
}
private void unbindListeners() {
- getShell().removeFocusListener(overlayFocusListener);
+ getShell().removeShellListener(overlayDeactivationListener);
if (targetPart != null && targetPart instanceof StatusTextEditor textEditor) {
Control targetWidget = textEditor.getSourceViewer().getTextWidget();
if (targetWidget != null) {
@@ -373,7 +381,7 @@ private void unbindListeners() {
}
private void bindListeners() {
- getShell().addFocusListener(overlayFocusListener);
+ getShell().addShellListener(overlayDeactivationListener);
if (targetPart instanceof StatusTextEditor textEditor) {
Control targetWidget = textEditor.getSourceViewer().getTextWidget();
@@ -423,7 +431,7 @@ private void retrieveBackgroundColor() {
}
private void createSearchTools() {
- searchTools = new ToolBar(searchContainer, SWT.HORIZONTAL);
+ searchTools = new AccessibleToolBar(searchContainer);
GridDataFactory.fillDefaults().grab(false, true).align(GridData.CENTER, GridData.END).applyTo(searchTools);
createWholeWordsButton();
@@ -432,104 +440,106 @@ private void createSearchTools() {
createAreaSearchButton();
@SuppressWarnings("unused")
- ToolItem separator = new ToolItem(searchTools, SWT.SEPARATOR);
-
- searchUpButton = new ToolItem(searchTools, SWT.PUSH);
- searchUpButton.setImage(FindReplaceOverlayImages.get(FindReplaceOverlayImages.OBJ_FIND_PREV));
- searchUpButton.setToolTipText(FindReplaceMessages.FindReplaceOverlay_upSearchButton_toolTip);
- searchUpButton.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
- performSearch(false);
- evaluateFindReplaceStatus();
- }));
- searchDownButton = new ToolItem(searchTools, SWT.PUSH);
+ ToolItem separator = searchTools.createToolItem(SWT.SEPARATOR);
+
+ searchUpButton = new AccessibleToolItemBuilder(searchTools).withStyleBits(SWT.PUSH)
+ .withImage(FindReplaceOverlayImages.get(FindReplaceOverlayImages.KEY_FIND_PREV))
+ .withToolTipText(FindReplaceMessages.FindReplaceOverlay_upSearchButton_toolTip)
+ .withSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
+ performSearch(false);
+ evaluateFindReplaceStatus();
+ })).build();
+ searchDownButton = new AccessibleToolItemBuilder(searchTools).withStyleBits(SWT.PUSH)
+ .withImage(FindReplaceOverlayImages.get(FindReplaceOverlayImages.KEY_FIND_NEXT))
+ .withToolTipText(FindReplaceMessages.FindReplaceOverlay_downSearchButton_toolTip)
+ .withSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
+ performSearch(true);
+ evaluateFindReplaceStatus();
+ })).build();
searchDownButton.setSelection(true); // by default, search down
- searchDownButton.setImage(FindReplaceOverlayImages.get(FindReplaceOverlayImages.OBJ_FIND_NEXT));
- searchDownButton.setToolTipText(FindReplaceMessages.FindReplaceOverlay_downSearchButton_toolTip);
- searchDownButton.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
- performSearch(true);
- evaluateFindReplaceStatus();
- }));
- searchAllButton = new ToolItem(searchTools, SWT.PUSH);
- searchAllButton.setImage(FindReplaceOverlayImages.get(FindReplaceOverlayImages.OBJ_SEARCH_ALL));
- searchAllButton.setToolTipText(FindReplaceMessages.FindReplaceOverlay_searchAllButton_toolTip);
- searchAllButton.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
- performSelectAll();
- evaluateFindReplaceStatus();
- }));
+
+ searchAllButton = new AccessibleToolItemBuilder(searchTools).withStyleBits(SWT.PUSH)
+ .withImage(FindReplaceOverlayImages.get(FindReplaceOverlayImages.KEY_SEARCH_ALL))
+ .withToolTipText(FindReplaceMessages.FindReplaceOverlay_searchAllButton_toolTip)
+ .withSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
+ performSelectAll();
+ evaluateFindReplaceStatus();
+ })).build();
}
private void createAreaSearchButton() {
- searchInSelectionButton = new ToolItem(searchTools, SWT.CHECK);
- searchInSelectionButton.setImage(FindReplaceOverlayImages.get(FindReplaceOverlayImages.OBJ_SEARCH_IN_AREA));
- searchInSelectionButton.setToolTipText(FindReplaceMessages.FindReplaceOverlay_searchInSelectionButton_toolTip);
+ searchInSelectionButton = new AccessibleToolItemBuilder(searchTools).withStyleBits(SWT.CHECK)
+ .withImage(FindReplaceOverlayImages.get(FindReplaceOverlayImages.KEY_SEARCH_IN_AREA))
+ .withToolTipText(FindReplaceMessages.FindReplaceOverlay_searchInSelectionButton_toolTip)
+ .withSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
+ activateInFindReplacerIf(SearchOptions.GLOBAL, !searchInSelectionButton.getSelection());
+ updateIncrementalSearch();
+ })).build();
searchInSelectionButton.setSelection(findReplaceLogic.isActive(SearchOptions.WHOLE_WORD));
- searchInSelectionButton.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
- activateInFindReplacerIf(SearchOptions.GLOBAL, !searchInSelectionButton.getSelection());
- updateIncrementalSearch();
- }));
}
private void createRegexSearchButton() {
- regexSearchButton = new ToolItem(searchTools, SWT.CHECK);
- regexSearchButton.setImage(FindReplaceOverlayImages.get(FindReplaceOverlayImages.OBJ_FIND_REGEX));
- regexSearchButton.setToolTipText(FindReplaceMessages.FindReplaceOverlay_regexSearchButton_toolTip);
+ regexSearchButton = new AccessibleToolItemBuilder(searchTools).withStyleBits(SWT.CHECK)
+ .withImage(FindReplaceOverlayImages.get(FindReplaceOverlayImages.KEY_FIND_REGEX))
+ .withToolTipText(FindReplaceMessages.FindReplaceOverlay_regexSearchButton_toolTip)
+ .withSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
+ activateInFindReplacerIf(SearchOptions.REGEX, ((ToolItem) e.widget).getSelection());
+ wholeWordSearchButton.setEnabled(!findReplaceLogic.isActive(SearchOptions.REGEX));
+ updateIncrementalSearch();
+ })).build();
regexSearchButton.setSelection(findReplaceLogic.isActive(SearchOptions.REGEX));
- regexSearchButton.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
- activateInFindReplacerIf(SearchOptions.REGEX, ((ToolItem) e.widget).getSelection());
- wholeWordSearchButton.setEnabled(!findReplaceLogic.isActive(SearchOptions.REGEX));
- updateIncrementalSearch();
- }));
}
private void createCaseSensitiveButton() {
- caseSensitiveSearchButton = new ToolItem(searchTools, SWT.CHECK);
- caseSensitiveSearchButton.setImage(FindReplaceOverlayImages.get(FindReplaceOverlayImages.OBJ_CASE_SENSITIVE));
- caseSensitiveSearchButton.setToolTipText(FindReplaceMessages.FindReplaceOverlay_caseSensitiveButton_toolTip);
+ caseSensitiveSearchButton = new AccessibleToolItemBuilder(searchTools).withStyleBits(SWT.CHECK)
+ .withImage(FindReplaceOverlayImages.get(FindReplaceOverlayImages.KEY_CASE_SENSITIVE))
+ .withToolTipText(FindReplaceMessages.FindReplaceOverlay_caseSensitiveButton_toolTip)
+ .withSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
+ activateInFindReplacerIf(SearchOptions.CASE_SENSITIVE, caseSensitiveSearchButton.getSelection());
+ updateIncrementalSearch();
+ })).build();
caseSensitiveSearchButton.setSelection(findReplaceLogic.isActive(SearchOptions.CASE_SENSITIVE));
- caseSensitiveSearchButton.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
- activateInFindReplacerIf(SearchOptions.CASE_SENSITIVE, caseSensitiveSearchButton.getSelection());
- updateIncrementalSearch();
- }));
}
private void createWholeWordsButton() {
- wholeWordSearchButton = new ToolItem(searchTools, SWT.CHECK);
- wholeWordSearchButton.setImage(FindReplaceOverlayImages.get(FindReplaceOverlayImages.OBJ_WHOLE_WORD));
- wholeWordSearchButton.setToolTipText(FindReplaceMessages.FindReplaceOverlay_wholeWordsButton_toolTip);
+ wholeWordSearchButton = new AccessibleToolItemBuilder(searchTools).withStyleBits(SWT.CHECK)
+ .withImage(FindReplaceOverlayImages.get(FindReplaceOverlayImages.KEY_WHOLE_WORD))
+ .withToolTipText(FindReplaceMessages.FindReplaceOverlay_wholeWordsButton_toolTip)
+ .withSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
+ activateInFindReplacerIf(SearchOptions.WHOLE_WORD, wholeWordSearchButton.getSelection());
+ updateIncrementalSearch();
+ })).build();
wholeWordSearchButton.setSelection(findReplaceLogic.isActive(SearchOptions.WHOLE_WORD));
- wholeWordSearchButton.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
- activateInFindReplacerIf(SearchOptions.WHOLE_WORD, wholeWordSearchButton.getSelection());
- updateIncrementalSearch();
- }));
}
private void createReplaceTools() {
Color warningColor = JFaceColors.getErrorText(getShell().getDisplay());
- replaceTools = new ToolBar(replaceContainer, SWT.HORIZONTAL);
+ replaceTools = new AccessibleToolBar(replaceContainer);
GridDataFactory.fillDefaults().grab(false, true).align(GridData.CENTER, GridData.END).applyTo(replaceTools);
- replaceButton = new ToolItem(replaceTools, SWT.PUSH);
- replaceButton.setImage(FindReplaceOverlayImages.get(FindReplaceOverlayImages.OBJ_REPLACE));
- replaceButton.setToolTipText(FindReplaceMessages.FindReplaceOverlay_replaceButton_toolTip);
- replaceButton.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
- if (getFindString().isEmpty()) {
- showUserFeedback(warningColor, true);
- return;
- }
- performSingleReplace();
- evaluateFindReplaceStatus();
- }));
- replaceAllButton = new ToolItem(replaceTools, SWT.PUSH);
- replaceAllButton.setImage(FindReplaceOverlayImages.get(FindReplaceOverlayImages.OBJ_REPLACE_ALL));
- replaceAllButton.setToolTipText(FindReplaceMessages.FindReplaceOverlay_replaceAllButton_toolTip);
- replaceAllButton.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
- if (getFindString().isEmpty()) {
- showUserFeedback(warningColor, true);
- return;
- }
- performReplaceAll();
- evaluateFindReplaceStatus();
- }));
+ replaceButton = new AccessibleToolItemBuilder(replaceTools).withStyleBits(SWT.PUSH)
+ .withImage(FindReplaceOverlayImages.get(FindReplaceOverlayImages.KEY_REPLACE))
+ .withToolTipText(FindReplaceMessages.FindReplaceOverlay_replaceButton_toolTip)
+ .withSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
+ if (getFindString().isEmpty()) {
+ showUserFeedback(warningColor, true);
+ return;
+ }
+ performSingleReplace();
+ evaluateFindReplaceStatus();
+ })).build();
+
+ replaceAllButton = new AccessibleToolItemBuilder(replaceTools).withStyleBits(SWT.PUSH)
+ .withImage(FindReplaceOverlayImages.get(FindReplaceOverlayImages.KEY_REPLACE_ALL))
+ .withToolTipText(FindReplaceMessages.FindReplaceOverlay_replaceAllButton_toolTip)
+ .withSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
+ if (getFindString().isEmpty()) {
+ showUserFeedback(warningColor, true);
+ return;
+ }
+ performReplaceAll();
+ evaluateFindReplaceStatus();
+ })).build();
}
private void createSearchBar() {
@@ -629,17 +639,17 @@ private void createReplaceToggle() {
GridDataFactory.fillDefaults().grab(false, true).align(GridData.BEGINNING, GridData.FILL)
.applyTo(replaceToggle);
replaceToggle.setToolTipText(FindReplaceMessages.FindReplaceOverlay_replaceToggle_toolTip);
- replaceToggle.setText("⯈"); //$NON-NLS-1$
+ replaceToggle.setImage(FindReplaceOverlayImages.get(FindReplaceOverlayImages.KEY_OPEN_REPLACE_AREA));
replaceToggle.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> toggleReplace()));
}
private void toggleReplace() {
if (!replaceBarOpen) {
createReplaceDialog();
- replaceToggle.setText("⯅"); //$NON-NLS-1$
+ replaceToggle.setImage(FindReplaceOverlayImages.get(FindReplaceOverlayImages.KEY_CLOSE_REPLACE_AREA));
} else {
hideReplace();
- replaceToggle.setText("⯈"); //$NON-NLS-1$
+ replaceToggle.setImage(FindReplaceOverlayImages.get(FindReplaceOverlayImages.KEY_OPEN_REPLACE_AREA));
}
replaceToggle.setSelection(false); // We don't want the button to look "locked in", so don't
// use it's selectionState
@@ -815,7 +825,7 @@ private void performSearch(boolean forward) {
findReplaceLogic.activate(SearchOptions.INCREMENTAL);
}
- private void initFindStringFromSelection() {
+ private void updateFromTargetSelection() {
String initText = findReplaceLogic.getTarget().getSelectionText();
if (initText.isEmpty()) {
return;
@@ -863,4 +873,9 @@ private static boolean okayToUse(Widget widget) {
public void setPositionToTop(boolean shouldPositionOverlayOnTop) {
positionAtTop = shouldPositionOverlayOnTop;
}
+
+ private void removeSearchScope() {
+ findReplaceLogic.activate(SearchOptions.GLOBAL);
+ searchInSelectionButton.setSelection(false);
+ }
}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/FindReplaceOverlayImages.java b/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/FindReplaceOverlayImages.java
index 2017e13f966..15d034b037a 100644
--- a/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/FindReplaceOverlayImages.java
+++ b/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/FindReplaceOverlayImages.java
@@ -33,25 +33,19 @@
* find/replace-operations.
*/
class FindReplaceOverlayImages {
- static final String PREFIX_OBJ = TextEditorPlugin.PLUGIN_ID + ".obj."; //$NON-NLS-1$
-
- static final String OBJ_FIND_NEXT = PREFIX_OBJ + "select_next.png"; //$NON-NLS-1$
-
- static final String OBJ_FIND_PREV = PREFIX_OBJ + "select_prev.png"; //$NON-NLS-1$
-
- static final String OBJ_FIND_REGEX = PREFIX_OBJ + "regex_gear.gif"; //$NON-NLS-1$
-
- static final String OBJ_REPLACE = PREFIX_OBJ + "replace.png"; //$NON-NLS-1$
-
- static final String OBJ_REPLACE_ALL = PREFIX_OBJ + "replace_all.png"; //$NON-NLS-1$
-
- static final String OBJ_WHOLE_WORD = PREFIX_OBJ + "whole_word.png"; //$NON-NLS-1$
-
- static final String OBJ_CASE_SENSITIVE = PREFIX_OBJ + "case_sensitive.png"; //$NON-NLS-1$
-
- static final String OBJ_SEARCH_ALL = PREFIX_OBJ + "search_all.png"; //$NON-NLS-1$
-
- static final String OBJ_SEARCH_IN_AREA = PREFIX_OBJ + "search_in_selection.png"; //$NON-NLS-1$
+ private static final String PREFIX_ELCL = TextEditorPlugin.PLUGIN_ID + ".elcl."; //$NON-NLS-1$
+
+ static final String KEY_FIND_NEXT = PREFIX_ELCL + "select_next"; //$NON-NLS-1$
+ static final String KEY_FIND_PREV = PREFIX_ELCL + "select_prev"; //$NON-NLS-1$
+ static final String KEY_FIND_REGEX = PREFIX_ELCL + "regex"; //$NON-NLS-1$
+ static final String KEY_REPLACE = PREFIX_ELCL + "replace"; //$NON-NLS-1$
+ static final String KEY_REPLACE_ALL = PREFIX_ELCL + "replace_all"; //$NON-NLS-1$
+ static final String KEY_WHOLE_WORD = PREFIX_ELCL + "whole_word"; //$NON-NLS-1$
+ static final String KEY_CASE_SENSITIVE = PREFIX_ELCL + "case_sensitive"; //$NON-NLS-1$
+ static final String KEY_SEARCH_ALL = PREFIX_ELCL + "search_all"; //$NON-NLS-1$
+ static final String KEY_SEARCH_IN_AREA = PREFIX_ELCL + "search_in_selection"; //$NON-NLS-1$
+ static final String KEY_OPEN_REPLACE_AREA = PREFIX_ELCL + "open_replace"; //$NON-NLS-1$
+ static final String KEY_CLOSE_REPLACE_AREA = PREFIX_ELCL + "close_replace"; //$NON-NLS-1$
/**
* The image registry containing {@link Image images}.
@@ -60,21 +54,23 @@ class FindReplaceOverlayImages {
private static String ICONS_PATH = "$nl$/icons/full/"; //$NON-NLS-1$
- private final static String OBJ = ICONS_PATH + "obj16/"; //$NON-NLS-1$
+ private final static String ELCL = ICONS_PATH + "elcl16/"; //$NON-NLS-1$
/**
* Declare all images
*/
private static void declareImages() {
- declareRegistryImage(OBJ_FIND_NEXT, OBJ + "select_next.png"); //$NON-NLS-1$
- declareRegistryImage(OBJ_FIND_PREV, OBJ + "select_prev.png"); //$NON-NLS-1$
- declareRegistryImage(OBJ_FIND_REGEX, OBJ + "regex.png"); //$NON-NLS-1$
- declareRegistryImage(OBJ_REPLACE_ALL, OBJ + "replace_all.png"); //$NON-NLS-1$
- declareRegistryImage(OBJ_REPLACE, OBJ + "replace.png"); //$NON-NLS-1$
- declareRegistryImage(OBJ_WHOLE_WORD, OBJ + "whole_word.png"); //$NON-NLS-1$
- declareRegistryImage(OBJ_CASE_SENSITIVE, OBJ + "case_sensitive.png"); //$NON-NLS-1$
- declareRegistryImage(OBJ_SEARCH_ALL, OBJ + "search_all.png"); //$NON-NLS-1$
- declareRegistryImage(OBJ_SEARCH_IN_AREA, OBJ + "search_in_area.png"); //$NON-NLS-1$
+ declareRegistryImage(KEY_FIND_NEXT, ELCL + "select_next.png"); //$NON-NLS-1$
+ declareRegistryImage(KEY_FIND_PREV, ELCL + "select_prev.png"); //$NON-NLS-1$
+ declareRegistryImage(KEY_FIND_REGEX, ELCL + "regex.png"); //$NON-NLS-1$
+ declareRegistryImage(KEY_REPLACE_ALL, ELCL + "replace_all.png"); //$NON-NLS-1$
+ declareRegistryImage(KEY_REPLACE, ELCL + "replace.png"); //$NON-NLS-1$
+ declareRegistryImage(KEY_WHOLE_WORD, ELCL + "whole_word.png"); //$NON-NLS-1$
+ declareRegistryImage(KEY_CASE_SENSITIVE, ELCL + "case_sensitive.png"); //$NON-NLS-1$
+ declareRegistryImage(KEY_SEARCH_ALL, ELCL + "search_all.png"); //$NON-NLS-1$
+ declareRegistryImage(KEY_SEARCH_IN_AREA, ELCL + "search_in_area.png"); //$NON-NLS-1$
+ declareRegistryImage(KEY_OPEN_REPLACE_AREA, ELCL + "open_replace.png"); //$NON-NLS-1$
+ declareRegistryImage(KEY_CLOSE_REPLACE_AREA, ELCL + "close_replace.png"); //$NON-NLS-1$
}
/**
diff --git a/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/templates/AbstractTemplatesPage.java b/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/templates/AbstractTemplatesPage.java
index 11b1b13d58c..95db4172441 100644
--- a/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/templates/AbstractTemplatesPage.java
+++ b/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/templates/AbstractTemplatesPage.java
@@ -1510,7 +1510,7 @@ public void dragOver(DropTargetEvent event) {
public void drop(DropTargetEvent event) {
if (event.item == null)
return;
- Object object= ((TreeItem) event.item).getData();
+ Object object= event.item.getData();
final String contextId;
if (object instanceof TemplateContextType)
contextId= ((TemplateContextType) object).getId();
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PluginActionSetBuilder.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PluginActionSetBuilder.java
index 6d35273fe61..5d6a92ee4a8 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PluginActionSetBuilder.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PluginActionSetBuilder.java
@@ -619,7 +619,7 @@ private void revokeActionSetFromCoolbar(ICoolBarManager coolbarMgr, String actio
if (item instanceof IToolBarManager) {
revokeActionSetFromToolbar((IToolBarManager) item, actionsetId);
} else if (item instanceof IToolBarContributionItem) {
- id = ((IToolBarContributionItem) item).getId();
+ id = item.getId();
if (actionsetId.equals(id)) {
itemsToRemove.add(item);
}
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java
index e487b14a0fa..3a30b16a229 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java
@@ -1030,13 +1030,13 @@ public MPart findPart(IWorkbenchPart part) {
for (ViewReference reference : viewReferences) {
if (part == reference.getPart(false)) {
- return ((WorkbenchPartReference) reference).getModel();
+ return reference.getModel();
}
}
for (EditorReference reference : editorReferences) {
if (part == reference.getPart(false)) {
- return ((WorkbenchPartReference) reference).getModel();
+ return reference.getModel();
}
}
return null;
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/databinding/MultiSelectionProperty.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/databinding/MultiSelectionProperty.java
index b2ff183f4e5..56501815295 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/databinding/MultiSelectionProperty.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/databinding/MultiSelectionProperty.java
@@ -36,9 +36,9 @@ public Object getElementType() {
protected List doGetList(S source) {
ISelection selection;
if (partId != null) {
- selection = ((ISelectionService) source).getSelection(partId);
+ selection = source.getSelection(partId);
} else {
- selection = ((ISelectionService) source).getSelection();
+ selection = source.getSelection();
}
if (selection instanceof IStructuredSelection) {
List list = ((IStructuredSelection) selection).toList();
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/databinding/SingleSelectionProperty.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/databinding/SingleSelectionProperty.java
index 0baa077703a..ce09c025353 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/databinding/SingleSelectionProperty.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/databinding/SingleSelectionProperty.java
@@ -28,9 +28,9 @@ public INativePropertyListener adaptListener(ISimplePropertyListener openExportWizard(parent));
} else if (control instanceof Link) {
- Composite linkParent = ((Link) control).getParent();
+ Composite linkParent = control.getParent();
Link importLink = new Link(linkParent, SWT.WRAP | SWT.NO_FOCUS);
((GridLayout) parent.getLayout()).numColumns++;
importLink.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER));
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/handlers/SelectAllHandler.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/handlers/SelectAllHandler.java
index 4fe24c769a4..9e8b24f4920 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/handlers/SelectAllHandler.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/handlers/SelectAllHandler.java
@@ -51,7 +51,7 @@ public final Object execute(final ExecutionEvent event) throws ExecutionExceptio
final int numParams = methodToExecute.getParameterTypes().length;
if ((focusControl instanceof Composite)
- && ((((Composite) focusControl).getStyle() & SWT.EMBEDDED) != 0)) {
+ && ((focusControl.getStyle() & SWT.EMBEDDED) != 0)) {
// we only support selectAll for swing components
if (numParams != 0) {
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/handlers/WidgetMethodHandler.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/handlers/WidgetMethodHandler.java
index 596029ca4b1..601043ce538 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/handlers/WidgetMethodHandler.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/handlers/WidgetMethodHandler.java
@@ -70,7 +70,7 @@ public Object execute(final ExecutionEvent event) throws ExecutionException {
try {
final Control focusControl = Display.getCurrent().getFocusControl();
if ((focusControl instanceof Composite)
- && ((((Composite) focusControl).getStyle() & SWT.EMBEDDED) != 0)) {
+ && ((focusControl.getStyle() & SWT.EMBEDDED) != 0)) {
/*
* Okay. Have a seat. Relax a while. This is going to be a bumpy ride. If it is
* an embedded widget, then it *might* be a Swing widget. At the point where
@@ -210,7 +210,7 @@ protected Method getMethodToExecute() {
}
if ((method == null) && (focusControl instanceof Composite)
- && ((((Composite) focusControl).getStyle() & SWT.EMBEDDED) != 0)) {
+ && ((focusControl.getStyle() & SWT.EMBEDDED) != 0)) {
/*
* We couldn't find the appropriate method on the current focus control. It is
* possible that the current focus control is an embedded SWT composite, which
diff --git a/tests/org.eclipse.jface.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.jface.tests/META-INF/MANIFEST.MF
index 70ccca58dcd..15b357fd9f7 100644
--- a/tests/org.eclipse.jface.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.jface.tests/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name
Bundle-SymbolicName: org.eclipse.jface.tests
-Bundle-Version: 1.4.500.qualifier
+Bundle-Version: 1.4.600.qualifier
Automatic-Module-Name: org.eclipse.jface.tests
Bundle-RequiredExecutionEnvironment: JavaSE-17
Require-Bundle: org.junit;bundle-version="4.12.0",
diff --git a/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/viewers/TestModelContentProvider.java b/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/viewers/TestModelContentProvider.java
index b798ce304b9..d6da01409a5 100644
--- a/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/viewers/TestModelContentProvider.java
+++ b/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/viewers/TestModelContentProvider.java
@@ -143,7 +143,7 @@ public void testModelChanged(TestModelChange change) {
StructuredSelection selection = new StructuredSelection(change.getChildren());
if ((change.getModifiers() & TestModelChange.SELECT) != 0) {
- ((StructuredViewer) fViewer).setSelection(selection);
+ fViewer.setSelection(selection);
}
if ((change.getModifiers() & TestModelChange.REVEAL) != 0) {
Object element = selection.getFirstElement();
diff --git a/tests/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/codemining/CodeMiningTest.java b/tests/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/codemining/CodeMiningTest.java
index 815ff06a6a3..e7bf25f6f06 100644
--- a/tests/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/codemining/CodeMiningTest.java
+++ b/tests/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/codemining/CodeMiningTest.java
@@ -26,6 +26,7 @@
import org.junit.Test;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.StyleRange;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Image;
@@ -194,6 +195,62 @@ protected boolean condition() {
}.waitForCondition(fViewer.getControl().getDisplay(), 3000));
}
+ @Test
+ public void testCodeMiningEmptyLine() {
+ fViewer.getDocument().set("\n");
+ fViewer.setCodeMiningProviders(new ICodeMiningProvider[] { new ICodeMiningProvider() {
+ @Override
+ public CompletableFuture> provideCodeMinings(ITextViewer viewer, IProgressMonitor monitor) {
+ return CompletableFuture.completedFuture(Collections.singletonList(new StaticContentLineCodeMining(new Position(0, 1), "mining", this)));
+ }
+
+ @Override
+ public void dispose() {
+ }
+ } });
+ StyledText widget= fViewer.getTextWidget();
+ Assert.assertTrue("Code mining is not visible in 1st empty line after line break character", new DisplayHelper() {
+ @Override
+ protected boolean condition() {
+ try {
+ StyleRange range= widget.getStyleRangeAtOffset(0);
+ return range == null && hasCodeMiningPrintedAfterTextOnLine(fViewer, 0);
+ } catch (BadLocationException e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+ }.waitForCondition(fViewer.getTextWidget().getDisplay(), 1000));
+ }
+
+ @Test
+ public void testCodeMiningEndOfLine() {
+ fViewer.getDocument().set("a\n");
+ fViewer.setCodeMiningProviders(new ICodeMiningProvider[] { new ICodeMiningProvider() {
+ @Override
+ public CompletableFuture> provideCodeMinings(ITextViewer viewer, IProgressMonitor monitor) {
+ return CompletableFuture.completedFuture(Collections.singletonList(new StaticContentLineCodeMining(new Position(1, 1), "mining", this)));
+ }
+
+ @Override
+ public void dispose() {
+ }
+ } });
+ StyledText widget= fViewer.getTextWidget();
+ Assert.assertTrue("Code mining is not visible in 1st line after character a before line break character", new DisplayHelper() {
+ @Override
+ protected boolean condition() {
+ try {
+ StyleRange range= widget.getStyleRangeAtOffset(0);
+ return range != null && range.metrics != null && hasCodeMiningPrintedAfterTextOnLine(fViewer, 0) == false;
+ } catch (BadLocationException e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+ }.waitForCondition(fViewer.getTextWidget().getDisplay(), 1000));
+ }
+
@Test
public void testCodeMiningMultiLine() {
fViewer.getDocument().set("a\nbc");
@@ -225,7 +282,11 @@ protected boolean condition() {
private static boolean hasCodeMiningPrintedAfterTextOnLine(ITextViewer viewer, int line) throws BadLocationException {
StyledText widget = viewer.getTextWidget();
IDocument document= viewer.getDocument();
- Rectangle secondLineBounds = widget.getTextBounds(document.getLineOffset(1), document.getLineOffset(line) + document.getLineLength(line) - 1);
+ int lineLength= document.getLineLength(line) - 1;
+ if (lineLength < 0) {
+ lineLength= 0;
+ }
+ Rectangle secondLineBounds= widget.getTextBounds(document.getLineOffset(line), document.getLineOffset(line) + lineLength);
Image image = new Image(widget.getDisplay(), widget.getSize().x, widget.getSize().y);
GC gc = new GC(widget);
gc.copyArea(image, 0, 0);
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/WorkingSetTestCase.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/WorkingSetTestCase.java
index 24401cd92bf..4a00d7377dc 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/WorkingSetTestCase.java
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/WorkingSetTestCase.java
@@ -20,7 +20,6 @@
import org.eclipse.core.resources.mapping.ResourceMapping;
import org.eclipse.core.resources.mapping.ResourceTraversal;
import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.QualifiedName;
import org.eclipse.ui.IResourceActionFilter;
import org.eclipse.ui.IWorkingSet;
@@ -42,11 +41,11 @@ public WorkingSetTestCase() {
}
private ResourceMapping getResourceMapping(IWorkingSet set) {
- return ((IAdaptable) set).getAdapter(ResourceMapping.class);
+ return set.getAdapter(ResourceMapping.class);
}
private IWorkbenchAdapter getWorkbenchAdapter(IWorkingSet set) {
- return ((IAdaptable) set).getAdapter(IWorkbenchAdapter.class);
+ return set.getAdapter(IWorkbenchAdapter.class);
}
private void assertMatches(ResourceMapping mapping, IResource[] resources) throws CoreException {
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/ResourcePathCopyTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/ResourcePathCopyTest.java
index fe77d2e91bd..5bd9e45353b 100644
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/ResourcePathCopyTest.java
+++ b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/ResourcePathCopyTest.java
@@ -150,7 +150,7 @@ private void copyButtonSelection(Control[] children, Control childElement)
// for getting location value
Control control = children[5];
// for button click
- ((Button) childElement).notifyListeners(SWT.Selection, new Event());
+ childElement.notifyListeners(SWT.Selection, new Event());
assertNotNull(Toolkit.getDefaultToolkit().getSystemClipboard()
.getData(DataFlavor.stringFlavor));
assertEquals(((Text) control).getText(), Toolkit.getDefaultToolkit()