HTMLIconUI.java :  » Swing-Library » Swinglets » com » javelin » swinglets » plaf » html » Java Open Source

Java Open Source » Swing Library » Swinglets 
Swinglets » com » javelin » swinglets » plaf » html » HTMLIconUI.java
/*
 * Copyright Javelin Software, All rights reserved.
 */
 
package com.javelin.swinglets.plaf.html;

import java.awt.*;
import java.util.*;
import java.io.*;

import com.javelin.swinglets.*;
import com.javelin.swinglets.plaf.*;

/**
 * HTMLIconUI defines a look and feel for default HTML. 
 * 
 * @author Robin Sharp
 */
 
public class HTMLIconUI extends HTMLComponentUI implements SIconUI
{
   
    /**
     * Render the UI on the PrintWriter
     */
    public void update( PrintWriter out, SComponent c )
    {
        if( !c.isVisible() ) return;
        
        SIcon icon = (SIcon)c;

        if( icon.getAreaCount() > 0 )
        {
            out.print( "<MAP NAME=\"" );
            out.print( icon.getName() );
            out.println( "MAP\" >" );
            
            for( Enumeration areas = icon.getAreas(); areas.hasMoreElements(); )
            {
                SArea area = (SArea)areas.nextElement();
    
                out.print( "<AREA" );
                
                out.print( " SHAPE=\"" );
                out.print( area.getShape() );
                out.print( "\"" );

                if( area.getLink() != null )
                {
                    out.print( " HREF=\"" );
                    if( area.getLink().getUrl() != null )
                    {
                        out.print( area.getLink().getUrl() );
                    }
                    else
                    {
                        out.print( icon.getComponentUrl() );
                    }
                    out.print( "\"" );
                    
                    if( area.getLink().getTarget() != null )
                    {
                        if( area.getLink().getTarget().equals( SFrame.NEW ) )
                            out.print( " target=\"_blank\"" );
                        else
                        if( area.getLink().getTarget().equals( SFrame.SELF ) )
                            out.print( " target=\"_self\"" );
                        else
                        if( area.getLink().getTarget().equals( SFrame.PARENT ) )
                            out.print( " target=\"_parent\"" );
                        else
                        if( area.getLink().getTarget().equals( SFrame.TOP ) )
                            out.print( " target=\"_top\"" );
                        else
                        {
                            out.print( " target=\"" );
                            out.print( area.getLink().getTarget() );
                            out.print( "\"" );
                        }
                    }
                }
                
                if( area.getText() != null )
                {
                    out.print( " ALT=\"" );
                    out.print( area.getText() );
                    out.print( "\"" );
                }

                out.print( " COORDS=\"" );
                if( area.getShape() == SArea.RECTANGLE )
                {
                    if( area.getRectangle().x >= 0 )
                    {
                        out.print( area.getRectangle().x );
                        out.print( "," );
                        out.print( area.getRectangle().y );
                        out.print( "," );
                        out.print( ( area.getRectangle().x + area.getRectangle().width ) );
                        out.print( "," );
                        out.print( ( area.getRectangle().y + area.getRectangle().height ) );
                    }                     
                    else
                    {
                        out.print( area.getRectangle().x );
                        out.print( "%," );
                        out.print( area.getRectangle().y );
                        out.print( "%," );
                        out.print( ( area.getRectangle().x + area.getRectangle().width ) );
                        out.print( "%," );
                        out.print( ( area.getRectangle().y + area.getRectangle().height ) );
                        out.print( "%" );
                    }                     
                }
                else
                if( area.getShape() == SArea.CIRCLE )
                {
                    if( area.getPoint().x >= 0 )
                    {
                        out.print( area.getPoint().x );
                        out.print( "," );
                        out.print( area.getPoint().y );
                        out.print( "," );
                        out.print( area.getRadius() );
                    }                     
                    else
                    {
                        out.print( area.getPoint().x );
                        out.print( "%," );
                        out.print( area.getPoint().y );
                        out.print( "%," );
                        out.print( area.getRadius() );
                    }                     
                }
                else
                if( area.getShape() == SArea.POLYGON )
                {
                    for( int index = 0; index < area.getPolygon().npoints; index++ )
                    {
                        if( index > 0 )
                        {
                            out.print( "," );
                        }

                        if( area.getPolygon().xpoints[index] >= 0 )
                        {
                            out.print( area.getPolygon().xpoints[index] );
                            out.print( "," );
                            out.print( area.getPolygon().ypoints[index] );
                        }
                        else
                        {
                            out.print( area.getPolygon().xpoints[index] );
                            out.print( "%," );
                            out.print( area.getPolygon().ypoints[index] );
                            out.print( "%" );
                        }
                    }
                }
                
                out.println( "\" >" );
            }
            out.println( "</MAP>" );
        }

        if( icon.getLink() != null )
        {
            out.print( "<A HREF=\"" );
            if( icon.getLink().getUrl() != null )
            {
                out.print( icon.getLink().getUrl() );
            }
            else
            {
                out.print( icon.getComponentUrl() );
            }
            out.print( "\"" );
            
            HTMLUtility.setMouseOverStatusText(out, c.getToolTipText());
            
            updateLinkScript( out, c );
            
            if( icon.getLink().getTarget() != null )
            {
                if( icon.getLink().getTarget().equals( SFrame.NEW ) )
                    out.print( " target=\"_blank\"" );
                else
                if( icon.getLink().getTarget().equals( SFrame.SELF ) )
                    out.print( " target=\"_self\"" );
                else
                if( icon.getLink().getTarget().equals( SFrame.PARENT ) )
                    out.print( " target=\"_parent\"" );
                else
                if( icon.getLink().getTarget().equals( SFrame.TOP ) )
                    out.print( " target=\"_top\"" );
                else
                {
                    out.print( " target=\"" );
                    out.print( icon.getLink().getTarget() );
                    out.print( "\"" );
                }
            }
            
            out.print( ">" );
        }
     
        if( icon.getUrl() != null )
        {
            out.print( "<IMG NAME=\"");
            out.print( icon.getName() );
            out.print( "\"" );
            
            HTMLUtility.setSrc(out,icon);   
                        
            if( icon.getBorder() == null )
            {
                out.print( " BORDER=0" );
            }
            
            //SET THE HEIGHT
            if( icon.getSize().height > 0 ) 
            {
                out.print( " HEIGHT=" );
                out.print( icon.getSize().height );
            }
            else
            if( icon.getSize().height < 0 ) 
            {
                out.print( " HEIGHT=" );
                out.print( 0-icon.getSize().height );
                out.print( "%" );
            }
            
            //SET THE WIDTH    
            if( icon.getSize().width > 0 )
            {
                out.print( " WIDTH=" );
                out.print( icon.getSize().width );
            }
            else
            if( icon.getSize().width < 0 )
            {
                out.print( " WIDTH=" );
                out.print( 0-icon.getSize().width );
                out.print( "%" );
            }
            
            if( icon.getAreaCount() > 0 )
            {
                out.print( " USEMAP=\"#" );
                out.print( icon.getName() );
                out.print( "MAP\"" );
            }
            
            updateEvent( out, c );
            
            out.print( ">" );
        }

        if( icon.getLink() != null ) out.print( "</A>" );
    }
    
    /**
     * Render the script on the output, in the body part of the web page
     */
     public void updateLinkScript( Object out, SComponent c )
     {
        updateLinkScript( (PrintWriter)out, c );
     }

    /**
     * Render the script on the PrintWriter, in the body part of the web page
     */
     public void updateLinkScript( PrintWriter out, SComponent c ){}
    
}


java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.