View Javadoc

1   /*
2    * "Peko" Visual Novel System
3    *
4    * All Rights Reserved.
5    * Copyright (c) 1999-2003 Tsukuba Bunko.
6    *
7    * $Id: IconDeserializer.java,v 1.1 2005/07/11 12:49:18 ppoi Exp $
8    */
9   package tsukuba_bunko.peko.resource;
10  
11  import	java.net.URL;
12  
13  import	javax.swing.ImageIcon;
14  
15  import	org.xml.sax.SAXException;
16  
17  import	tsukuba_bunko.resource.SimpleDeserializer;
18  
19  
20  /***
21   * {@link javax.swing.ImageIcon} 型のリソースに対する {@link tsukuba_bunko.resource.ResourceDeserializer} 実装です。
22   * @author	$Author: ppoi $
23   * @version	$Revision: 1.1 $
24   * @see <a href="http://softlab.tsukuba-bunko.org/peko/userguide/resource.html#type-peko:icon">peko:icon 型のリソース</a>
25   */
26  public class IconDeserializer	extends SimpleDeserializer	{
27  
28  	/***
29  	 * ベース URL
30  	 */
31  	private URL	_baseURL = null;
32  
33  
34  	/***
35  	 * <code>IconDeserializer</code> のインスタンスを作成します。
36  	 */
37  	public IconDeserializer()
38  	{
39  		super();
40  	}
41  
42  
43  	/***
44  	 * ベース URL を設定します.
45  	 * @param	baseURL	ベース URL
46  	 */
47  	public void setBaseURL( URL baseURL )
48  	{
49  		_baseURL = baseURL;
50  	}
51  
52  
53  //
54  //	SimpleDeserializer の実装
55  //
56  	public Object convertValue( String source )
57  		throws SAXException
58  	{
59  		try	{
60  			if( _baseURL != null )	{
61  				return new ImageIcon( new URL(_baseURL, source) );
62  			}
63  			else	{
64  				return new ImageIcon( source );
65  			}
66  		}
67  		catch( Exception e )	{
68  			throw new SAXException( e );
69  		}
70  	}
71  }