/******************************************************************************* * Copyright (c) 2004, 2016 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.ui.internal.intro.impl.model; import java.net.MalformedURLException; import java.net.URL; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.ui.internal.intro.impl.util.ImageUtil; import org.eclipse.ui.intro.config.IntroElement; /** * An Intro Config component that captures launch bar shortcut information. * * @since 3.1 */ public class IntroLaunchBarShortcut extends AbstractIntroElement { protected static final String TAG_SHORTCUT = "shortcut"; //$NON-NLS-1$ private static final String ATT_TOOLTIP = "tooltip"; //$NON-NLS-1$ private static final String ATT_ICON = "icon"; //$NON-NLS-1$ private static final String ATT_URL = "url"; //$NON-NLS-1$ private IntroElement ielement; IntroLaunchBarShortcut(IConfigurationElement element, IntroElement ielement) { super(element); this.ielement = ielement; } IntroLaunchBarShortcut(IConfigurationElement element) { super(element); } @Override public int getType() { return AbstractIntroElement.LAUNCH_BAR_SHORTCUT; } private String getAttribute(String name) { if (ielement!=null) return ielement.getAttribute(name); return getCfgElement().getAttribute(name); } /** * Returns the URL of this shortcut. * * @return */ public String getURL() { return getAttribute(ATT_URL); } /** * Returns the tooltip of this shortcut. * * @return */ public String getToolTip() { return getAttribute(ATT_TOOLTIP); } /** * Returns the relative icon path of this shortcut. * * @return */ private String getIcon() { return getAttribute(ATT_ICON); } /** * Returns the icon image of this shortcut, or <code>null</code> if not * found. * * @return */ public ImageDescriptor getImageDescriptor() { String icon = getIcon(); if (icon!=null) { try { URL imageUrl = new URL(icon); ImageDescriptor desc = ImageDescriptor.createFromURL(imageUrl); return desc; } catch (MalformedURLException e) { // not a full url } } return ImageUtil.createImageDescriptor(getBundle(), getIcon()); } }