Bug 116706 Bad Class Cast in IDEReportEditor.java
So I'm trying to open a report with BIRT/Eclipse API using the BIRT 2.0 nightly build code (as of 11/16/2005). the file IDEReportEditor.java method private IFile getFile( IEditorInput input ) { return ( (ReportFileEditorInput) input ).getFile( ); } However, input can be ReportEditorInput which is also an IEditorInput (to support reports found outside projects and workspaces) which doesn't even have a getFile() method on it. This causes a deeply nested exception that causes the report desinger to not be able to show a report that might be physically located outside a workspace.
UI/org.eclipse.birt.report.designer.ui.editors.schematic/src/org/eclipse/birt/report/designer/ui/editors/pages/ReportXMLSourceEditorFormPage.java
return editor;
	}
	public void doSave( IProgressMonitor progressMonitor )
	{
		super.doSave( progressMonitor );
		Object adapter = ( (IEditorPart) this ).getAdapter( IReportProvider.class );
		if ( adapter != null && isValidModelFile( ) )
		{
			IReportProvider provider = (IReportProvider) adapter;
			ModuleHandle model = provider.getReportModuleHandle( getEditorInput( ),
					true );
			SessionHandleAdapter.getInstance( ).setReportDesignHandle( model );
		}
	}
	private boolean isValidModelFile( )
	{
		IEditorInput input = getEditorInput( );
		if ( !( input instanceof IPathEditorInput ) )
		{
			return false;
		}
		boolean validModel = false;
		IPath path = ( (IPathEditorInput) input ).getPath( );
		try
		{
			if ( path.toOSString( )
					.endsWith( IReportEditorContants.LIBRARY_FILE_EXTENTION ) )
			{
				validModel = ModuleUtil.isValidLibrary( SessionHandleAdapter.getInstance( )
						.getSessionHandle( ),