dph.getUserValue( pbh.getExpression( ) ) ); }  return map; }  public Map getSearchCriteria( ) { Map map = new HashMap( );  for ( Iterator itr = handle.getSearch( ).iterator( ); itr.hasNext( ); ) { SearchKeyHandle skh = (SearchKeyHandle) itr.next( ); map.put( skh.getExpression( ), dph.getUserValue( skh.getExpression( ) ) ); }  return map; }  public String getTargetWindow( ) { return handle.getTargetWindow( ); }  public String getFormat( ) { return handle.getFormatType( ); }  public boolean isBookmark( ) { return DesignChoiceConstants.ACTION_BOOKMARK_TYPE_BOOKMARK.equals( handle.getTargetBookmarkType( ) ); }  public String getSystemId( ) { ModuleHandle mod = eih.getRoot( ); if ( mod != null ) { return mod.getFileName( ); } return null; }  }, context ); } catch ( Exception e ) { sa = ""; logger.log( e ); } } else { try { final ActionHandle handle = ModuleUtil.deserializeAction( sa );  target = handle.getTargetWindow( );    sa = handler.getURL( new IAction( ) {  public int getType( ) { if ( DesignChoiceConstants.ACTION_LINK_TYPE_HYPERLINK.equals( handle.getLinkType( ) ) ) return IAction.ACTION_HYPERLINK; if ( DesignChoiceConstants.ACTION_LINK_TYPE_BOOKMARK_LINK.equals( handle.getLinkType( ) ) ) return IAction.ACTION_BOOKMARK; if ( DesignChoiceConstants.ACTION_LINK_TYPE_DRILL_THROUGH.equals( handle.getLinkType( ) ) ) return IAction.ACTION_DRILLTHROUGH; return 0; }  public String getBookmark( ) { return ChartUtil.stringValue( evaluator.evaluate( handle.getTargetBookmark( ) ) ); }  public String getActionString( ) { if ( DesignChoiceConstants.ACTION_LINK_TYPE_HYPERLINK.equals( handle.getLinkType( ) ) ) return ChartUtil.stringValue( evaluator.evaluate( handle.getURI( ) ) ); if ( DesignChoiceConstants.ACTION_LINK_TYPE_BOOKMARK_LINK.equals( handle.getLinkType( ) ) ) return ChartUtil.stringValue( evaluator.evaluate( handle.getTargetBookmark( ) ) ); return null; }  public String getReportName( ) { String rptName = handle.getReportName( ); ModuleHandle mod = eih.getRoot( ); if ( mod != null ) { URL reportURL = mod.findResource( rptName, IResourceLocator.LIBRARY ); if ( reportURL != null ) { String reportFile = reportURL.getFile( ); if ( reportFile != null ) { rptName = reportFile; } } }  return rptName; }  public Map getParameterBindings( ) { Map map = new HashMap( );  for ( Iterator itr = handle.getParamBindings( ) .iterator( ); itr.hasNext( ); ) { ParamBindingHandle pbh = (ParamBindingHandle) itr.next( ); map.put( pbh.getParamName( ),
	public void processAction( Action action, StructureSource source )	{		if ( ActionType.URL_REDIRECT_LITERAL.equals( action.getType( ) ) )		{			URLValue uv = (URLValue) action.getValue( );			String sa = uv.getBaseUrl( );			String target = null;			if ( StructureType.SERIES_DATA_POINT.equals( source.getType( ) ) )			{				final DataPointHints dph = (DataPointHints) source.getSource( );				try				{					final ActionHandle handle = ModuleUtil.deserializeAction( sa );					target = handle.getTargetWindow( );					// use engine api to convert actionHandle to a final url					// value.					sa = handler.getURL( new IAction( ) {						public int getType( )						{							if ( DesignChoiceConstants.ACTION_LINK_TYPE_HYPERLINK.equals( handle.getLinkType( ) ) )								return IAction.ACTION_HYPERLINK;							if ( DesignChoiceConstants.ACTION_LINK_TYPE_BOOKMARK_LINK.equals( handle.getLinkType( ) ) )								return IAction.ACTION_BOOKMARK;							if ( DesignChoiceConstants.ACTION_LINK_TYPE_DRILL_THROUGH.equals( handle.getLinkType( ) ) )								return IAction.ACTION_DRILLTHROUGH;							return 0;						}						public String getBookmark( )						{							return ChartUtil.stringValue( dph.getUserValue( handle.getTargetBookmark( ) ) );						}						public String getActionString( )						{							if ( DesignChoiceConstants.ACTION_LINK_TYPE_HYPERLINK.equals( handle.getLinkType( ) ) )								return ChartUtil.stringValue( dph.getUserValue( handle.getURI( ) ) );							if ( DesignChoiceConstants.ACTION_LINK_TYPE_BOOKMARK_LINK.equals( handle.getLinkType( ) ) )								return ChartUtil.stringValue( dph.getUserValue( handle.getTargetBookmark( ) ) );							return null;						}						public String getReportName( )						{							String rptName = handle.getReportName( );							ModuleHandle mod = eih.getRoot( );							if ( mod != null )							{								URL reportURL = mod.findResource( rptName,										IResourceLocator.LIBRARY );								if ( reportURL != null )								{									String reportFile = reportURL.getFile( );									if ( reportFile != null )									{										rptName = reportFile;									}								}							}							return rptName;						}						public Map getParameterBindings( )						{							Map map = new HashMap( );							for ( Iterator itr = handle.getParamBindings( )									.iterator( ); itr.hasNext( ); )							{								ParamBindingHandle pbh = (ParamBindingHandle) itr.next( );								map.put( pbh.getParamName( ),										dph.getUserValue( pbh.getExpression( ) ) );							}							return map;						}						public Map getSearchCriteria( )						{							Map map = new HashMap( );							for ( Iterator itr = handle.getSearch( ).iterator( ); itr.hasNext( ); )							{								SearchKeyHandle skh = (SearchKeyHandle) itr.next( );								map.put( skh.getExpression( ),										dph.getUserValue( skh.getExpression( ) ) );							}							return map;						}						public String getTargetWindow( )						{							return handle.getTargetWindow( );						}						public String getFormat( )						{							return handle.getFormatType( );						}						public boolean isBookmark( )						{							return DesignChoiceConstants.ACTION_BOOKMARK_TYPE_BOOKMARK.equals( handle.getTargetBookmarkType( ) );						}						public String getSystemId( )						{							ModuleHandle mod = eih.getRoot( );							if ( mod != null )							{								return mod.getFileName( );							}							return null;						}					},							context );				}				catch ( Exception e )				{					sa = ""; //$NON-NLS-1$					logger.log( e );				}			}			else			{				try				{					final ActionHandle handle = ModuleUtil.deserializeAction( sa );					target = handle.getTargetWindow( );					// use engine api to convert actionHandle to a final url					// value.					sa = handler.getURL( new IAction( ) {						public int getType( )						{							if ( DesignChoiceConstants.ACTION_LINK_TYPE_HYPERLINK.equals( handle.getLinkType( ) ) )								return IAction.ACTION_HYPERLINK;							if ( DesignChoiceConstants.ACTION_LINK_TYPE_BOOKMARK_LINK.equals( handle.getLinkType( ) ) )								return IAction.ACTION_BOOKMARK;							if ( DesignChoiceConstants.ACTION_LINK_TYPE_DRILL_THROUGH.equals( handle.getLinkType( ) ) )								return IAction.ACTION_DRILLTHROUGH;							return 0;						}						public String getBookmark( )						{							return ChartUtil.stringValue( evaluator.evaluate( handle.getTargetBookmark( ) ) );						}						public String getActionString( )						{							if ( DesignChoiceConstants.ACTION_LINK_TYPE_HYPERLINK.equals( handle.getLinkType( ) ) )								return ChartUtil.stringValue( evaluator.evaluate( handle.getURI( ) ) );							if ( DesignChoiceConstants.ACTION_LINK_TYPE_BOOKMARK_LINK.equals( handle.getLinkType( ) ) )								return ChartUtil.stringValue( evaluator.evaluate( handle.getTargetBookmark( ) ) );							return null;						}						public String getReportName( )						{							String rptName = handle.getReportName( );							ModuleHandle mod = eih.getRoot( );							if ( mod != null )							{								URL reportURL = mod.findResource( rptName,										IResourceLocator.LIBRARY );								if ( reportURL != null )								{									String reportFile = reportURL.getFile( );									if ( reportFile != null )									{										rptName = reportFile;									}								}							}							return rptName;						}						public Map getParameterBindings( )						{							Map map = new HashMap( );							for ( Iterator itr = handle.getParamBindings( )									.iterator( ); itr.hasNext( ); )							{								ParamBindingHandle pbh = (ParamBindingHandle) itr.next( );								map.put( pbh.getParamName( ),										evaluator.evaluate( pbh.getExpression( ) ) );							}							return map;						}						public Map getSearchCriteria( )						{							Map map = new HashMap( );							for ( Iterator itr = handle.getSearch( ).iterator( ); itr.hasNext( ); )							{								SearchKeyHandle skh = (SearchKeyHandle) itr.next( );								map.put( skh.getExpression( ),										evaluator.evaluate( skh.getExpression( ) ) );							}							return map;						}						public String getTargetWindow( )						{							return handle.getTargetWindow( );						}						public String getFormat( )						{							return handle.getFormatType( );						}						public boolean isBookmark( )						{							return DesignChoiceConstants.ACTION_BOOKMARK_TYPE_BOOKMARK.equals( handle.getTargetBookmarkType( ) );						}						public String getSystemId( )						{							ModuleHandle mod = eih.getRoot( );							if ( mod != null )							{								return mod.getFileName( );							}							return null;						}					},							context );				}				catch ( Exception e )				{					sa = ""; //$NON-NLS-1$					logger.log( e );				}			}			uv.setBaseUrl( sa );			uv.setTarget( target );		}		else if ( ActionType.SHOW_TOOLTIP_LITERAL.equals( action.getType( ) ) )		{			TooltipValue tv = (TooltipValue) action.getValue( );			if ( StructureType.SERIES_DATA_POINT.equals( source.getType( ) ) )			{				final DataPointHints dph = (DataPointHints) source.getSource( );				tv.setText( ChartUtil.stringValue( dph.getUserValue( tv.getText( ) ) ) );			}		}	}