Skip to main content
summaryrefslogtreecommitdiffstats
blob: c1de79a0f4455360c855213337468fd172bdafc6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
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;
    }

}

Back to the top