/*******************************************************************************
* Copyright (c) 2002, 2009 Innoopract Informationssysteme GmbH.
* 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:
* Innoopract Informationssysteme GmbH - initial API and implementation
* EclipseSource - ongoing development
******************************************************************************/
package org.eclipse.ui.forms.internal.widgets.imagehyperlinkkit;
import java.io.IOException;
import org.eclipse.rwt.lifecycle.*;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.internal.graphics.ResourceFactory;
import org.eclipse.swt.widgets.Widget;
import org.eclipse.ui.forms.internal.widgets.hyperlinkkit.HyperlinkLCA;
import org.eclipse.ui.forms.widgets.ImageHyperlink;
public class ImageHyperlinkLCA extends HyperlinkLCA {
static final String PROP_IMAGE = "image"; //$NON-NLS-1$
public void renderChanges( Widget widget ) throws IOException {
super.renderChanges( widget );
writeImage( ( ImageHyperlink )widget );
}
public void preserveValues( Widget widget ) {
super.preserveValues( widget );
preserveImage( ( ImageHyperlink )widget );
}
private static void preserveImage( final ImageHyperlink imageHyperlink ) {
IWidgetAdapter adapter = WidgetUtil.getAdapter( imageHyperlink );
adapter.preserve( PROP_IMAGE, imageHyperlink.getImage() );
}
private static void writeImage( final ImageHyperlink imageHyperlink )
throws IOException
{
Image image = imageHyperlink.getImage();
if( WidgetLCAUtil.hasChanged( imageHyperlink, PROP_IMAGE, image, null ) ) {
String imagePath;
if( image == null ) {
imagePath = ""; //$NON-NLS-1$
} else {
imagePath = ResourceFactory.getImagePath( image );
}
JSWriter writer = JSWriter.getWriterFor( imageHyperlink );
writer.set( "icon", imagePath ); //$NON-NLS-1$
}
}
}