| /******************************************************************************* |
| * Copyright (c) 2004, 2015 IBM Corporation 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: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.ui.internal; |
| |
| import org.eclipse.core.runtime.IProduct; |
| import org.eclipse.jface.resource.ImageDescriptor; |
| |
| /** |
| * Stores information about the product. This class replaces the old AboutInfo. |
| * The product information is available as strings, but is needed as URLs, etc. |
| * This class manages that translation. |
| * |
| * @since 3.0 |
| */ |
| public class ProductInfo { |
| private IProduct product; |
| |
| private String productName; |
| |
| private String appName; |
| |
| private ImageDescriptor[] windowImages; |
| |
| private ImageDescriptor aboutImage; |
| |
| private String aboutText; |
| |
| public ProductInfo(IProduct product) { |
| this.product = product; |
| } |
| |
| /** |
| * Returns the product name or <code>null</code>. This is shown in the window |
| * title and the About action. |
| * |
| * @return the product name, or <code>null</code> |
| */ |
| public String getProductName() { |
| if (productName == null && product != null) { |
| productName = product.getName(); |
| } |
| return productName; |
| } |
| |
| /** |
| * Returns the application name or <code>null</code>. Note this is never shown |
| * to the user. It is used to initialize the SWT Display. |
| * <p> |
| * On Motif, for example, this can be used to set the name used for resource |
| * lookup. |
| * </p> |
| * |
| * @return the application name, or <code>null</code> |
| * |
| * @see org.eclipse.swt.widgets.Display#setAppName |
| */ |
| public String getAppName() { |
| if (appName == null && product != null) { |
| appName = ProductProperties.getAppName(product); |
| } |
| return appName; |
| } |
| |
| /** |
| * Returns the descriptor for an image which can be shown in an "about" dialog |
| * for this product. Products designed to run "headless" typically would not |
| * have such an image. |
| * |
| * @return the descriptor for an about image, or <code>null</code> if none |
| */ |
| public ImageDescriptor getAboutImage() { |
| if (aboutImage == null && product != null) { |
| aboutImage = ProductProperties.getAboutImage(product); |
| } |
| return aboutImage; |
| } |
| |
| /** |
| * Return an array of image descriptors for the window images to use for this |
| * product. The expectations is that the elements will be the same image |
| * rendered at different sizes. Products designed to run "headless" typically |
| * would not have such images. |
| * |
| * @return an array of the image descriptors for the window images, or |
| * <code>null</code> if none |
| */ |
| public ImageDescriptor[] getWindowImages() { |
| if (windowImages == null && product != null) { |
| windowImages = ProductProperties.getWindowImages(product); |
| } |
| return windowImages; |
| } |
| |
| /** |
| * Returns the text to show in an "about" dialog for this product. Products |
| * designed to run "headless" typically would not have such text. |
| * |
| * @return the about text, or <code>null</code> if none |
| */ |
| public String getAboutText() { |
| if (aboutText == null && product != null) { |
| aboutText = ProductProperties.getAboutText(product); |
| } |
| return aboutText; |
| } |
| } |