Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jface wizard placeholder without gradient #10

Open
wants to merge 213 commits into
base: master
Choose a base branch
from

Conversation

vogella
Copy link
Member

@vogella vogella commented Nov 29, 2024

No description provided.

vogella and others added 30 commits September 30, 2024 12:38
StackRendererTest should remove the used window before each test
Before this change the the model
elements were not removed after a test.
which allows to render a code mining where the cursor selection does not
include the code mining at the given source position.
The tests for the FindReplaceDialog and FindReplaceOverlay currently use
reflection to access specific UI elements. This ties the test
implementations to implementation details of the production classes
(i.e., specific hidden field to be present) and particularly requires
the production code to contain (hidden) fields even if they would not be
required just to provide according tests.

This change replaces the reflective access with widget extraction
functionality based on explicit IDs assigned to the UI elements of
interest.

Fixes eclipse-platform#2060
For Large Java file 'Replace All' takes long time and freezes the UI.
One of the reason is Projection Model tries to iterate over all the
Projection Annotations to expand/collapse status.
We can improve this situation by using Region specific iterator. This
returns annotations which are enclosed by given offset.
This improves the performance by 25% at least.

See eclipse-platform#2257
The button to toggle whether the replace bar in a find/replace overlay
is shown currently appears to be a rather heavyweight button with a
border. With this change, the button is replace with a lightweight
toolbar item like used for all other buttons in the overlay. This
improves the appearance as well as the implementation as the same
implementation patterns can now be applied to all buttons in the
overlay.
…ort for Compatibility parts and new Parts which represent an Editor and are contributed via eg. PartDescriptors in a Model Fragment. Associated with Issue#2176.
To avoid error messages about missing file after testOpenEditors3()
When using find/replace (via overlay or dialog) in incremental mode, if
the currently found element is only a case-insensitive match with the
current search string, a replace operation will perform an unnecessary
additional search and thus replace the next matching element. The reason
is a comparison for whether the currently found string exactly matches
the search string, not ignoring the casing.

This change adapts the behavior to properly consider case-sensitivity
when performing replace operations. It also adds according regression
tests.
…#294

Concurrent "Decoration Calculation" sometimes prevented Project from
deleting on Windows OS.

eclipse-platform#294
When closing a find/replace overlay, the SWT dispose operations try to
set focus to some remaining widget. The HistoryTextWrapper tries to pass
this operation to the contained Text widget without validating it for
already being disposed (which is the case when closing the overlay),
thus potentially leading to exception.

This change ensures that before trying to set focus on the Text widget
of a HistoryTextWrapper that widget is validated for not being disposed.
The find/replace UI tests currently validate for proper focus only in
specific situations, usually restricted to when running on GTK. On the
one hand, this makes debugging more difficult in case the focus was not
properly set in the beginning, e.g., because the workbench window was
not active when the test started. On the other hand, it makes the test
execution more prone to be indeterministic and platform-specific, as
GTK-specific code is involved.

This change provides three improvements to mitigate these issues:
- It ensures that the workbench window is active when test execution
starts
- It validates that the find/replace UI (overlay/dialog) has focus every
time it is opened during test execution
- It gets rid of GTK-specific focus validation
Currently, Window#getShell() only states to return null if the shell has
not been created yet. It will, however, also return null if the Window
has been closed. The contract of Window#close() only states that the
shell will be disposed, but not that #getShell() will return null
afterwards as well. This change improves the explicit contract with this
information. It has been part of the implicit contract anyway, since it
is the behavior ever since the class and method exist.
- ITextSelection.emptySelection has offset and length -1 so those values
need to be tolerated downstream, included in the recent-optimized
ProjectionAnnotationModel.expandAll method.

eclipse-platform#2257
If the IDE is running because we are executing automated tests it
doesn't make sense to run this registration job.

Fixes : eclipse-platform#2245
Additionally add a styled and drag&drop-able Oomph Configuration button
and clean-up the build instructions.

Part of eclipse-platform/eclipse.platform.releng.aggregator#2430
nightly logfile is flooded with intentional RuntimeException that are
hard to distinguish from unintentional exceptions.
as logged during LabelProviderTest

asyncExec can happen when viewer is already disposed
to a single "SWT Resource was not properly disposed"
during LabelProviderTest

(and fixed the font to be not bold)
BeckerWdf and others added 29 commits December 18, 2024 10:37
…rojects eclipse-platform#2538

Change made since the fix to eclipse-platform#1438 unintentionally removed the "refresh" contextual menu for resources that are not projects.

With this change the "refresh" contextual menu is shown if ANY navigator selection is either (A) an open project, or (B) a non-project resource. Put another way: the 'refresh' item is NOT shown if ALL selections are closed projects.

Fixes eclipse-platform#2538
To remaining tests identified. Fixes
eclipse-platform#2615
Currently if one passes more parameters as the command accepts (e.g. a
parameter was removed from the command), this suddenly leads to commands
no longer being found as null is returned.

Instead now ignore additional parameters and simply continue the loop
over the map.
Currently when the application has no focus there is also no active
window child and in this case several actions still fail even though a
part is available for perform actions.

This now handles the case of an application without focus with an empty
optional to allow fall back to the part context. If that context has
still no suitable part service implementation as a last resort the
containing window context is used.
PR 2455 leads to regression in the behavior of highlight of selected
tabs in inactive stack. This caused only in windows and Linux and has
been fixed with this change
On macOS we use arrow symbols (see
xhttps://www.fileformat.info/info/unicode/char/2193/index.htm) when
formatting key bindings (e.g. in tooltips or menu entries).
This is much more compact then writing "UP", "DOWN", etc. and looks a
lot nicer.

Let's also use this on Windows and Linux.
When navigating the open tabs with Ctrl+Pg Up/Down and only if there is
no chevron (i.e. more tabs opened than one can show) then the tab next
to the last one is the first one and the tab previous to the first one
is the last one.
…-platform#2564

If the error is due to an unwritten character at the end of the regex
(e.g. an unescaped trailing backslash) then add a whitespace to avoid
IOOBE.

Fixes eclipse-platform#2654
Selected sub-tabs in editor and views were missing blue highlight with
the dark theme changes. This has been fixed with this change.
This commit addresses an occasionally occurring NullPointerException in the LogView class:
```
LogListener.logged threw a non-fatal unchecked exception as follows:
java.lang.NullPointerException: Cannot invoke "org.eclipse.jface.action.Action.isChecked()" because "this.fActivateViewAction" is null
	at org.eclipse.ui.internal.views.log.LogView.asyncRefreshAndActivate(LogView.java:1253)
	at org.eclipse.ui.internal.views.log.LogView.pushEntry(LogView.java:1212)
	at org.eclipse.ui.internal.views.log.LogView.logged(LogView.java:1143)
	at org.eclipse.osgi.internal.log.ExtendedLogReaderServiceFactory.safeLogged(ExtendedLogReaderServiceFactory.java:108)
	at org.eclipse.osgi.internal.log.ExtendedLogReaderServiceFactory$LogTask.run(ExtendedLogReaderServiceFactory.java:56)
	at org.eclipse.osgi.internal.log.OrderedExecutor$OrderedTaskQueue$OrderedTask.run(ExtendedLogReaderServiceFactory.java:458)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)
```
if the last line at the end of the document is empty

Fixes: eclipse-platform#2157
…pse-platform#2657

The implementation of FindReplaceDocumentAdapter#findReplace(), used by
its API methods #find() and #replace(), currently leaves an inconsistent
state when failing because of an invalid input or state.
This inconsistent state affects the last executed operation type, which
the adapter stores in order to identify whether a replace operation is
preceded by an according find operation. In case the #findReplace()
method is called with an invalid position or to execute a replace
without a preceding find, the method aborts (throwing an exception)
without storing the operation to be executed as the last executed
operation, i.e., it leaves the adapter as if that method was never
called. In case the method is called in regular expression mode and the
expression used as find or replace input is invalid, the operation
aborts (throwing an exception) but still stores the operation to be
executed as the last executed operation, i.e., it leaves the adapter as
if that method was called successfully.

This behavior is unexpected as is handles invalid inputs inconsistently.
This also becomes visible in the existing consumers, such as
FindReplaceTarget#replaceSelection() used by the FindReplaceDialog and
FindReplaceOvleray. They assume that in case an exception occurs while
trying to perform a replace operation, a subsequent replace should
succeed without an additional find operation being required. This
assumption does currently not hold.

This change corrects the behavior of the
FindReplaceDocumentAdapter#findReplace() method to always leave the
adapter in an unmodified state when the method fails because of being
called with invalid input or in an inconsistent state.
In addition, regular expressions with an unfinished character escape at
the end now lead to a proper exception.

Fixes #eclipse-platform#2657
The LineNumberRulerColumn should consider the text widget's LineSpacing when word wrapping is enabled.

Fixes eclipse-platform#2668
The gradient placeholder is replace with just an empty image.
@vogella vogella force-pushed the jface-wizard-placeholder-without-gradient branch from bb2a620 to db06c43 Compare January 7, 2025 12:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.