blob: 94ba6320d2ed811afbcb7a14470a5f44bdd6f4b5 [file] [log] [blame]
/******************************************************************************
* Copyright (c) 2003, 2006 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.gmf.runtime.draw2d.ui.render.awt.internal.svg.metafile;
import java.awt.Graphics2D;
import java.awt.Shape;
import org.apache.batik.transcoder.TranscoderException;
import org.eclipse.gmf.runtime.draw2d.ui.render.awt.internal.svg.metafile.AbstractTranscoder;
import org.eclipse.gmf.runtime.draw2d.ui.render.awt.internal.svg.metafile.DeviceContext;
import org.eclipse.gmf.runtime.draw2d.ui.render.awt.internal.svg.metafile.GdiBrush;
import org.eclipse.gmf.runtime.draw2d.ui.render.awt.internal.svg.metafile.GdiFont;
import org.eclipse.gmf.runtime.draw2d.ui.render.awt.internal.svg.metafile.GdiPen;
import org.eclipse.gmf.runtime.draw2d.ui.render.awt.internal.svg.metafile.GdiRegion;
import org.eclipse.gmf.runtime.draw2d.ui.render.awt.internal.svg.metafile.ITraceMe;
/**
* @author dhabib
*/
public class DeleteObject extends ObjectBase implements ITraceMe
{
public void render( Graphics2D g, DeviceContext context ) throws TranscoderException
{
Object obj = context.getGDI( getId() );
if( obj != null )
{
if( obj instanceof GdiFont )
{
GdiFont gdiFont = (GdiFont) obj;
if( gdiFont == context.getCurFont() )
{
context.setCurFont( new GdiFont() );
}
}
else if( obj instanceof GdiBrush )
{
GdiBrush gdiBrush = (GdiBrush) obj;
if( gdiBrush == context.getCurBrush() )
{
context.setCurBrush( new GdiBrush() );
}
}
else if( obj instanceof GdiPen )
{
GdiPen pen = (GdiPen) obj;
if( pen == context.getCurPen() )
{
context.setCurPen( new GdiPen() );
}
}
else if( obj instanceof GdiRegion )
{
GdiRegion rgn = (GdiRegion) obj;
if( rgn == context.getCurRegion() )
{
context.setCurRegion( new GdiRegion( (Shape) null ) );
}
}
else
{
AbstractTranscoder.logMessage( getClass().getName() + "Invalid object type in delete object, object #" + getId() ); //$NON-NLS-1$
return;
}
context.deleteGDI( getId() );
}
else
{
AbstractTranscoder.logMessage( getClass().getName() + ": DeleteObject failed to delete object #" + getId() ); //$NON-NLS-1$
}
}
public String toString() {
return Integer.toString(getId());
}
}