package org.eclipse.jst.jsf.facelet.core.internal.view; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IResource; import org.eclipse.jst.jsf.core.internal.JSFCorePlugin; import org.eclipse.jst.jsf.designtime.context.DTFacesContext; import org.eclipse.jst.jsf.designtime.internal.view.AbstractViewDefnAdapterFactory; import org.eclipse.jst.jsf.designtime.internal.view.IViewDefnAdapter; import org.eclipse.jst.jsf.designtime.internal.view.IViewDefnAdapterFactory; import org.eclipse.jst.jsf.designtime.internal.view.IDTViewHandler.ViewHandlerException; import org.eclipse.jst.jsf.designtime.internal.view.model.ITagRegistry; class ViewDefnAdapterFactory extends AbstractViewDefnAdapterFactory { private final DTFaceletViewHandler _myViewHandler; private final IViewDefnAdapterFactory _defaultViewDefnAdapterFactory; ViewDefnAdapterFactory(final DTFaceletViewHandler viewHandler, final IViewDefnAdapterFactory defaultViewDefnAdapterFactory) { _myViewHandler = viewHandler; _defaultViewDefnAdapterFactory = defaultViewDefnAdapterFactory; } @Override public IViewDefnAdapter<?, ?> createAdapter(DTFacesContext context, String viewId) { try { final IResource res = _myViewHandler.getActionDefinition(context, viewId); if (res instanceof IFile) { final IFile srcFile = (IFile) res; final ITagRegistry registry = findTagRegistry(srcFile); if (registry != null) { if (_myViewHandler.isHTMLContent(srcFile)) { return new FaceletViewDefnAdapter(registry); } // if we have a jsp file, then return the default // adapter return _defaultViewDefnAdapterFactory.createAdapter(context, viewId); } } } catch (final ViewHandlerException vhe) { JSFCorePlugin.log(vhe, "While acquiring view adapter"); //$NON-NLS-1$ } // not found or failed return null; } }