/****************************************************************************** * 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.geom.GeneralPath; import java.io.IOException; import org.apache.batik.transcoder.TranscoderException; 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.IEmf2SvgConverter; import org.eclipse.gmf.runtime.draw2d.ui.render.awt.internal.svg.metafile.IRenderToPath; import org.eclipse.gmf.runtime.draw2d.ui.render.awt.internal.svg.metafile.ITraceMe; import org.eclipse.gmf.runtime.draw2d.ui.render.awt.internal.svg.metafile.IWmf2SvgConverter; import org.eclipse.gmf.runtime.draw2d.ui.render.awt.internal.svg.metafile.Record; /** * @author dhabib */ public class MoveTo implements IEmf2SvgConverter, IWmf2SvgConverter, IRenderToPath, ITraceMe { private static final int EMF_X_OFFSET = 0; private static final int EMF_Y_OFFSET = 4; private static final int WMF_X_OFFSET = 2; private static final int WMF_Y_OFFSET = 0; private int m_xPos = 0; private int m_yPos = 0; private int m_xPosConv = -1; private int m_yPosConv = -1; public void readWMFRecord( Record emr ) throws IOException { m_xPos = emr.getShortAt( WMF_X_OFFSET ); m_yPos = emr.getShortAt( WMF_Y_OFFSET ); } public void readEMFRecord( Record emr ) throws IOException { // First members of the structure are the x,y coordinates to move to. m_xPos = emr.getIntAt( EMF_X_OFFSET ); m_yPos = emr.getIntAt( EMF_Y_OFFSET ); } public void render( Graphics2D g, DeviceContext context ) throws TranscoderException { context.setCurPosX( m_xPos ); context.setCurPosY( m_yPos ); m_xPosConv = m_xPos; m_yPosConv = m_yPos; } public void render( DeviceContext context ) throws TranscoderException { GeneralPath p = context.getGdiPath().getCurrentFigure(); m_xPosConv = context.convertXToSVGLogicalUnits( m_xPos ); m_yPosConv = context.convertYToSVGLogicalUnits( m_yPos ); p.moveTo( m_xPosConv, m_yPosConv ); context.setCurPosX( m_xPos ); context.setCurPosY( m_yPos ); } public String toString() { StringBuffer sb = new StringBuffer(); sb.append('('); sb.append(m_xPosConv); sb.append(','); sb.append(m_yPosConv); sb.append(')'); return sb.toString(); } }