if (element instanceof ISourceReference)
if (element instanceof ISourceReference && !(element instanceof IOpenable))
	public void run() {		Iterator iter= getStructuredSelection().iterator();		Shell shell= JavaPlugin.getActiveWorkbenchShell();				while (iter.hasNext()) {			Object element= iter.next();						try {	  				IEditorPart part= EditorUtility.openInEditor(element);				if (element instanceof ISourceReference) 						EditorUtility.revealInEditor(part, (ISourceReference)element);			} catch (JavaModelException e) {				JavaPlugin.log(new Status(IStatus.ERROR, JavaPlugin.getPluginId(),					JavaStatusConstants.INTERNAL_ERROR, PackagesMessages.getString("OpenResource.error.message"), e)); //$NON-NLS-1$								ErrorDialog.openError(shell, 					PackagesMessages.getString("OpenResource.error.title"), //$NON-NLS-1$					PackagesMessages.getString("OpenResource.error.messageProblems"),  //$NON-NLS-1$					e.getStatus());						} catch (PartInitException x) {												String name= null;								if (element instanceof IClassFile) {					name= ((IClassFile) element).getElementName();				} else if (element instanceof ICompilationUnit) {					name= ((ICompilationUnit) element).getElementName();				} else if (element instanceof IResource) {					name= ((IResource) element).getName();				}								if (name != null) {					MessageDialog.openError(JavaPlugin.getActiveWorkbenchShell(),						PackagesMessages.getString("OpenResource.error.messageProblems"),  //$NON-NLS-1$						PackagesMessages.getFormattedString("OpenResource.error.messageArgs",  //$NON-NLS-1$							new String[] { name, x.getMessage() } ));							}			}		}	}