blob: 4d193e77d7332e1d9bf593e2ad87bf404cd65b08 [file] [log] [blame]
/******************************************************************************
* Copyright (c) 2008 Oracle
* 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:
* Konstantin Komissarchik - initial implementation and ongoing maintenance
******************************************************************************/
package org.eclipse.wst.common.project.facet.ui.internal;
import org.eclipse.core.runtime.IAdapterFactory;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent;
import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentVersion;
import org.eclipse.wst.common.project.facet.ui.IDecorationsProvider;
/**
* @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
*/
public final class RuntimeDecorationsProvider
implements IDecorationsProvider
{
private static final ImageDescriptor DEFAULT_RUNTIME_IMAGE
= FacetUiPlugin.getImageDescriptor( "images/default-runtime-image.gif" ); //$NON-NLS-1$
private final IRuntime runtime;
public RuntimeDecorationsProvider( final IRuntime runtime )
{
this.runtime = runtime;
}
public ImageDescriptor getIcon()
{
if( this.runtime.getRuntimeComponents().size() > 0 )
{
final IRuntimeComponent rc = this.runtime.getRuntimeComponents().get( 0 );
final IRuntimeComponentVersion rcv = rc.getRuntimeComponentVersion();
final IDecorationsProvider rcvDecorationsProvider
= (IDecorationsProvider) rcv.getAdapter( IDecorationsProvider.class );
return rcvDecorationsProvider.getIcon();
}
else
{
return DEFAULT_RUNTIME_IMAGE;
}
}
public static final class Factory
implements IAdapterFactory
{
private static final Class<?>[] ADAPTER_TYPES = { IDecorationsProvider.class };
public Object getAdapter( final Object adaptable,
final Class adapterType )
{
if( adapterType == IDecorationsProvider.class )
{
return new RuntimeDecorationsProvider( (IRuntime) adaptable );
}
else
{
return null;
}
}
public Class<?>[] getAdapterList()
{
return ADAPTER_TYPES;
}
}
}