We must not specify the image in the theme
layer but when providing the branding icon. Please provide a new Gerrit
change along the lines that have been mentioned before.
Brian de Alwis <briandealwis@xxxxxxxxx> To:
19.04.2016 20:01 Subject:
Request API exemption for Bug 491556 - [Welcome] Provide
theme-specific mechanism to influence path resolution Sent by:
I put in the filePrefix as the theme ids follow the Java-style
reverse-DNS format, which is pretty unwieldy as a file prefix. For
example, the standard theme Ids follow the format ‘org.eclipse.ui.intro.universal.XXX’.
But we can use the themeId as a base directory for resolving the
file within the bundle, much like how we often resolve resources using
$nl$. That’s simple, and it makes it easy to see what resources
are overridden by a theme. I’ll get this implemented tonight, and
add docs to the Universal Intro doc where these properties are defined.
As to why the themes are included in org.eclipse.ui.intro.universal…
It’s a good question, and it doesn’t make sense to me. The real
problem is that a product definer who wants to craft a custom look but
still use the Universal Intro approach has no choice but to include the
other themes or fork the bundle. I’ve opened bug
492036 to track this.
+1 for documenting the new functionality
in the core.runtime.products extension point, Especially as all examples for the "filePrefix"
in the Gerrit Change could be derived from the Theme ID.
Added advantage of this approach is, that
even legacy themes that don't add a new property could benefit from the
new functionality by just contributing new images in the product bundle.
I don't understand the hardcoded "-intro-eclipse.png"
image name in your description, Dani; and I do think that adding to the core.runtime.products
extension point API docs is an API addition; But I'm +1 on the approach if a Gerrit
change can be provided for review early enough.
Thanks, Martin -- Martin Oberhuber, SMTS
/ Product Owner – Development Tools, Wind
River direct +43.662.457915.85 fax
The problem is that the same branding
image is currently used by all themes. The current branding image looks
good for all existing themes, but not for the new Solstice theme. Products
(usually via org.eclipse.ui.intro/INTRO_THEME in their plugin_customization.ini)
and users (via UI) can choose the theme of their choice (i.e. not use the
default). If we change the branding image to make Solstice look nice it
will make all other themes look bad and affect most existing products.
They would be forced to change their product and might have to update screenshots.
That's not an acceptable approach.
We don't need to add a new API / property but simply document on the 'org.eclipse.core.runtime.products'
extension point that theme specific branding images can be provided by
prepending the last segment of the theme ID to "-intro-eclipse.png".
No changes to the existing themes would be required.
My first impulse was to support the idea that a Theme could also influence
image selection from the product bundle. But
Looking at the Gerrit contriburtion, I'm
missing docs for the new API (what does the new property do ? Could a .exsd
for the plugin editor be provided?)
I'm also not sure about the name of the
property ("filePrefix"), shouldn't it be "productImagePrefix"
and how does it relate to HIGH_CONTRAST_PREFIX ?
be honest, I question the value of providing multiple Themes in the SDK
to choose from, and try to make all of them look really good. What is the expected audience who would ever want to switch to a different
Intro Theme ? Isn't that just Product Builders, who would create their own product bundle
In other words, why don't we just provide one default Theme – Solstice
– with excellent quality in the SDK and get rid of the other ones or move
them to an "example plugin" (or keep them around but don't care
about how good they look) ?
I might be missing background on why the "choose theme" was created
in the first place – any thoughts ?
Thanks, Martin -- Martin Oberhuber, SMTS / Product Owner – Development Tools, Wind
River direct +43.662.457915.85 fax +43.662.457915.6
This change adds a new theme property for Welcome/Intro themes called “filePrefix”
used to resolve theme-dependent variants of images that are referenced
by the theme.
We need this functionality for the new Solstice theme (bug 466370). Unlike
the previous themes (circles, slate, and mesh), the Solstice theme has
a dark background where the product logos are shown. The Eclipse
logo is effectively invisible in this theme.
The filePrefix causes the Intro code to first attempt to resolve images
with the given prefix and then fallback to the path as-is. This prefixing
only happens for files specified as product-properties, such as the branding
logo. For example, the Solstice theme defines (simplified; full details
When resolving the introBrandingImage, the code will now first try resolving
’solstice-intro-eclipse.png’ from the product bundle. If not found,
it will fallback to ‘intro-eclipse.png’. If a directory is specified
(e.g., ‘product:logos/eclipse.png’) then the prefix is applied to the
file portion (‘logos/solstice-eclipse.png’).
Without this change, product definitions have to explicitly reference a
more Solstice-friendly logo. But then the other themes don’t look
as intended. [Though to be honest, I think they all look better with the
Solstice with the current logo (purple lettering):