Author: scabanovich
Date: 2010-09-17 10:20:39 -0400 (Fri, 17 Sep 2010)
New Revision: 24989
Added:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/MyFacesScanner.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/myfaces/
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/myfaces/MyFacesAttribute.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/myfaces/MyFacesComponent.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/myfaces/MyFacesTagLibrary.java
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/META-INF/MANIFEST.MF
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/KbProject.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/KbXMLStoreConstants.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/LibraryScanner.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/AbstractComponent.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/AbstractTagLib.java
Log:
JBIDE-7086
https://jira.jboss.org/browse/JBIDE-7086
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/META-INF/MANIFEST.MF
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/META-INF/MANIFEST.MF 2010-09-17 14:18:00
UTC (rev 24988)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/META-INF/MANIFEST.MF 2010-09-17 14:20:39
UTC (rev 24989)
@@ -37,6 +37,7 @@
org.jboss.tools.jst.web.kb.internal.scanner,
org.jboss.tools.jst.web.kb.internal.taglib,
org.jboss.tools.jst.web.kb.internal.taglib.composite,
+ org.jboss.tools.jst.web.kb.internal.taglib.myfaces,
org.jboss.tools.jst.web.kb.internal.validation,
org.jboss.tools.jst.web.kb.refactoring,
org.jboss.tools.jst.web.kb.taglib,
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/KbProject.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/KbProject.java 2010-09-17
14:18:00 UTC (rev 24988)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/KbProject.java 2010-09-17
14:20:39 UTC (rev 24989)
@@ -49,6 +49,7 @@
import org.jboss.tools.jst.web.kb.internal.taglib.FacesConfigTagLibrary;
import org.jboss.tools.jst.web.kb.internal.taglib.TLDLibrary;
import org.jboss.tools.jst.web.kb.internal.taglib.composite.CompositeTagLibrary;
+import org.jboss.tools.jst.web.kb.internal.taglib.myfaces.MyFacesTagLibrary;
import org.jboss.tools.jst.web.kb.internal.validation.ProjectValidationContext;
import org.jboss.tools.jst.web.kb.taglib.ICustomTagLibrary;
import org.jboss.tools.jst.web.kb.taglib.ITagLibrary;
@@ -504,6 +505,8 @@
tagLib = new FacesConfigTagLibrary();
} else if(KbXMLStoreConstants.CLS_COMPOSITE_LIBRARY.equals(cls)) {
tagLib = new CompositeTagLibrary();
+ } else if(KbXMLStoreConstants.CLS_MYFACES_LIBRARY.equals(cls)) {
+ tagLib = new MyFacesTagLibrary();
} else {
//consider other cases;
}
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/KbXMLStoreConstants.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/KbXMLStoreConstants.java 2010-09-17
14:18:00 UTC (rev 24988)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/KbXMLStoreConstants.java 2010-09-17
14:20:39 UTC (rev 24989)
@@ -27,6 +27,7 @@
public String CLS_FACELET_LIBRARY = "facelet"; //$NON-NLS-1$
public String CLS_FACESCONFIG_LIBRARY = "faces-config"; //$NON-NLS-1$
public String CLS_COMPOSITE_LIBRARY = "composite"; //$NON-NLS-1$
+ public String CLS_MYFACES_LIBRARY = "myfaces"; //$NON-NLS-1$
public String ATTR_URI = "uri"; //$NON-NLS-1$
public String ATTR_SHORT_NAME = "short-name"; //$NON-NLS-1$
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/LibraryScanner.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/LibraryScanner.java 2010-09-17
14:18:00 UTC (rev 24988)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/LibraryScanner.java 2010-09-17
14:20:39 UTC (rev 24989)
@@ -15,6 +15,7 @@
import org.jboss.tools.common.model.XModel;
import org.jboss.tools.common.model.XModelObject;
import org.jboss.tools.common.model.XModelObjectConstants;
+import org.jboss.tools.common.model.filesystems.impl.FileAnyImpl;
import org.jboss.tools.common.model.filesystems.impl.FileSystemsImpl;
import org.jboss.tools.common.model.util.EclipseResourceUtil;
import org.jboss.tools.jst.web.kb.IKbProject;
@@ -97,6 +98,10 @@
JSF2ResourcesScanner s = new JSF2ResourcesScanner();
LoadedDeclarations ds1 = s.parse(tld, path, sp);
if(ds1 != null) ds.add(ds1);
+ } else if(isMyFacesMetadata(tld)) {
+ MyFacesScanner s = new MyFacesScanner();
+ LoadedDeclarations ds1 = s.parse(tld, path, sp);
+ if(ds1 != null) ds.add(ds1);
}
}
}
@@ -121,6 +126,10 @@
} else if(tld.getFileType() == XModelObject.FOLDER) {
LoadedDeclarations ds1 = parseInPackages(tld, path, sp);
ds = add(ds, ds1);
+ } else if(isMyFacesMetadata(tld)) {
+ MyFacesScanner s = new MyFacesScanner();
+ LoadedDeclarations ds1 = s.parse(tld, path, sp);
+ ds = add(ds, ds1);
}
}
return ds;
@@ -159,6 +168,13 @@
if(entity.startsWith(JSF2ResourcesScanner.ENT_COMPOSITE_COMPONENT)) return true;
return false;
}
+
+ public static boolean isMyFacesMetadata(XModelObject o) {
+ if("myfaces-metadata.xml".equals(o.getPathPart())) { //$NON-NLS-1$
+ return true;
+ }
+ return false;
+ }
}
Added:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/MyFacesScanner.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/MyFacesScanner.java
(rev 0)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/MyFacesScanner.java 2010-09-17
14:20:39 UTC (rev 24989)
@@ -0,0 +1,250 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.jst.web.kb.internal.scanner;
+
+import java.io.ByteArrayInputStream;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.IPath;
+import org.jboss.tools.common.model.XModelObject;
+import org.jboss.tools.common.model.filesystems.impl.FileAnyImpl;
+import org.jboss.tools.common.model.project.ext.IValueInfo;
+import org.jboss.tools.common.model.project.ext.impl.ValueInfo;
+import org.jboss.tools.common.model.util.XModelObjectLoaderUtil;
+import org.jboss.tools.common.xml.XMLEntityResolver;
+import org.jboss.tools.common.xml.XMLUtilities;
+import org.jboss.tools.jst.web.kb.IKbProject;
+import org.jboss.tools.jst.web.kb.internal.taglib.myfaces.MyFacesAttribute;
+import org.jboss.tools.jst.web.kb.internal.taglib.myfaces.MyFacesComponent;
+import org.jboss.tools.jst.web.kb.internal.taglib.myfaces.MyFacesTagLibrary;
+import org.jboss.tools.jst.web.kb.taglib.IAttribute;
+import org.w3c.dom.Element;
+
+/**
+ *
+ * @author Viacheslav Kabanovich
+ *
+ */
+public class MyFacesScanner implements IFileScanner {
+ static String F_PREFIX = "f"; //$NON-NLS-1$
+ static String F_URI = "http://java.sun.com/jsf/core"; //$NON-NLS-1$
+
+ static String H_PREFIX = "h"; //$NON-NLS-1$
+ static String H_URI = "http://java.sun.com/jsf/html"; //$NON-NLS-1$
+
+ static String UI_PREFIX = "ui"; //$NON-NLS-1$
+ static String UI_URI = "http://java.sun.com/jsf/facelets"; //$NON-NLS-1$
+
+ static String C_PREFIX = "c"; //$NON-NLS-1$
+ static String C_URI = "http://java.sun.com/jsp/jstl/core"; //$NON-NLS-1$
+
+ static String COMPOSITE_PREFIX = "composite"; //$NON-NLS-1$
+ static String COMPOSITE_URI = "http://java.sun.com/jsf/composite";
//$NON-NLS-1$
+
+ static Map<String, String> prefixToURI = new HashMap<String, String>();
+
+ static {
+ prefixToURI.put(F_PREFIX, F_URI);
+ prefixToURI.put(H_PREFIX, H_URI);
+ prefixToURI.put(UI_PREFIX, UI_URI);
+ prefixToURI.put(C_PREFIX, C_URI);
+ prefixToURI.put(COMPOSITE_PREFIX, COMPOSITE_URI);
+ }
+
+ static String TAG_PROPERTY = "property"; //$NON-NLS-1$
+ static String TAG_ATTRIBUTE = "attribute"; //$NON-NLS-1$
+ static String ATTR_NAME = "name.#text"; //$NON-NLS-1$
+ static String ATTR_DESCRIPTION = "desc.#text"; //$NON-NLS-1$
+ static String ATTR_REQUIRED = "required.#text"; //$NON-NLS-1$
+ static String ATTR_PARENT_CLASS = "parentClassName.#text"; //$NON-NLS-1$
+
+
+ public boolean isRelevant(IFile resource) {
+ return false;
+ }
+
+ public boolean isLikelyComponentSource(IFile f) {
+ return false;
+ }
+
+ public LoadedDeclarations parse(IFile f, IKbProject sp)
+ throws ScannerException {
+ return null;
+ }
+
+ public LoadedDeclarations parse(XModelObject o, IPath source, IKbProject sp) {
+ if(o == null) return null;
+
+ String text = ((FileAnyImpl)o).getAsText();
+
+ Element model = XMLUtilities.getElement(new ByteArrayInputStream(text.getBytes()),
XMLEntityResolver.getInstance());
+ if(model == null) return null;
+
+ Map<String, MyFacesTagLibrary> libraries = new HashMap<String,
MyFacesTagLibrary>();
+ for (String p: prefixToURI.keySet()) {
+ String uri = prefixToURI.get(p);
+ MyFacesTagLibrary library = new MyFacesTagLibrary();
+ library.setId(o.getPath() + "/" + p); //$NON-NLS-1$
+ library.setURI(createValueInfo(uri));
+ libraries.put(p, library);
+ }
+
+ String[] tagnames = {"component", "tag", "faceletTag"};
//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ Map<String, MyFacesComponent> componentsByClass = new HashMap<String,
MyFacesComponent>();
+ for (String tag: tagnames) {
+ Element[] cs = XMLUtilities.getChildren(model, tag);
+ for (Element c : cs) {
+ processComponent(c, libraries, componentsByClass);
+ }
+ }
+
+ Set<MyFacesComponent> processed = new HashSet<MyFacesComponent>();
+ for (String cls: componentsByClass.keySet()) {
+ MyFacesComponent component = componentsByClass.get(cls);
+ loadParents(component, componentsByClass, processed);
+ }
+
+ LoadedDeclarations ds = new LoadedDeclarations();
+
+ for (MyFacesTagLibrary library: libraries.values()) {
+ if(library.getComponents().length > 0) {
+ ds.getLibraries().add(library);
+ }
+ }
+
+
+ return ds;
+ }
+
+ void processComponent(Element c, Map<String, MyFacesTagLibrary> libraries,
Map<String, MyFacesComponent> componentsByClass) {
+ String name = util.getAttribute(c, ATTR_NAME);
+ String className = util.getAttribute(c, "className.#text");
+ MyFacesComponent component = null;
+ MyFacesTagLibrary library = null;
+ boolean isNew = false;
+
+ if(!isEmpty(name)) {
+ String componentName = name.trim();
+ int pi = componentName.indexOf(":"); //$NON-NLS-1$
+ if(pi < 0) return;
+ String prefix = componentName.substring(0, pi);
+ library = libraries.get(prefix);
+ if(library == null) {
+// System.out.println("Cannot find library for " + prefix);
+ return;
+ }
+ componentName = componentName.substring(pi + 1);
+ component = (MyFacesComponent)library.getComponent(componentName);
+ if(component == null) {
+ component = new MyFacesComponent();
+ component.setId(componentName);
+ component.setName(createValueInfo(componentName));
+ isNew = true;
+ }
+ } else if(!isEmpty(className)) {
+ component = componentsByClass.get(className);
+ if(component == null) {
+ component = new MyFacesComponent();
+ }
+ }
+
+ if(!isEmpty(className)) {
+ component.setComponentClass(createValueInfo(className.trim()));
+ componentsByClass.put(className, component);
+ }
+ String type = util.getAttribute(c, "type.#text");
+ if(!isEmpty(type)) {
+ component.setComponentType(createValueInfo(type.trim()));
+ }
+ String bodyContent = util.getAttribute(c, "bodyContent.#text");
+ if(!isEmpty(bodyContent)) {
+ component.setCanHaveBody(createValueInfo(bodyContent.trim()));
+ }
+ String description = util.getAttribute(c, ATTR_DESCRIPTION);
+ if(!isEmpty(description) && !description.trim().equals("no
description")) { //$NON-NLS-1$
+ component.setDescription(createValueInfo(description.trim()));
+ }
+ String parentClass = util.getAttribute(c, ATTR_PARENT_CLASS);
+ if(!isEmpty(parentClass)) {
+ component.setParentClass(createValueInfo(parentClass.trim()));
+ }
+
+ Element[] attributes = XMLUtilities.getChildren(c, TAG_PROPERTY);
+ if(attributes == null || attributes.length == 0) {
+ attributes = XMLUtilities.getChildren(c, TAG_ATTRIBUTE);
+ }
+ if(attributes != null) for (Element a: attributes) {
+ processAttribute(a, component);
+ }
+
+ if(isNew && library != null) {
+ library.addComponent(component);
+ }
+ }
+
+ void processAttribute(Element a, MyFacesComponent component) {
+ String name = util.getAttribute(a, "jspName.#text");
+ if(isEmpty(name)) name = util.getAttribute(a, ATTR_NAME);
+ if(isEmpty(name)) return;
+ name = name.trim();
+ MyFacesAttribute attribute = (MyFacesAttribute)component.getAttribute(name);
+ boolean isNew = false;
+ if(attribute == null) {
+ attribute = new MyFacesAttribute();
+ attribute.setId(name);
+ attribute.setName(createValueInfo(name));
+ isNew = true;
+ }
+ String description = util.getAttribute(a, ATTR_DESCRIPTION);
+ if(!isEmpty(description) && !description.trim().equals("no
description")) {
+ attribute.setDescription(createValueInfo(description.trim()));
+ }
+ String required = util.getAttribute(a, ATTR_REQUIRED);
+ if(!isEmpty(required)) {
+ attribute.setRequired(createValueInfo(required.trim()));
+ }
+ if(isNew) {
+ component.addAttribute(attribute);
+ }
+ }
+
+ void loadParents(MyFacesComponent current, Map<String, MyFacesComponent>
componentsByClass, Set<MyFacesComponent> processed) {
+ if(processed.contains(current)) return;
+ processed.add(current);
+ String parentClass = current.getParentClass();
+ MyFacesComponent parent = componentsByClass.get(parentClass);
+ if(parent == null) return;
+ loadParents(parent, componentsByClass, processed);
+ IAttribute[] as = parent.getAttributes();
+ for (IAttribute a: as) {
+ if(current.getAttribute(a.getName()) == null) {
+ current.addAttribute(a);
+ }
+ }
+ }
+
+ private boolean isEmpty(String s) {
+ return s == null || s.trim().length() == 0;
+ }
+ private IValueInfo createValueInfo(String value) {
+ ValueInfo v = new ValueInfo();
+ v.setValue(value);
+ return v;
+ }
+
+ static XModelObjectLoaderUtil util = new XModelObjectLoaderUtil();
+
+}
Property changes on:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/MyFacesScanner.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/AbstractComponent.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/AbstractComponent.java 2010-09-17
14:18:00 UTC (rev 24988)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/AbstractComponent.java 2010-09-17
14:20:39 UTC (rev 24989)
@@ -29,6 +29,7 @@
import org.jboss.tools.jst.web.kb.internal.KbObject;
import org.jboss.tools.jst.web.kb.internal.KbXMLStoreConstants;
import org.jboss.tools.jst.web.kb.internal.taglib.composite.CompositeAttribute;
+import org.jboss.tools.jst.web.kb.internal.taglib.myfaces.MyFacesAttribute;
import org.jboss.tools.jst.web.kb.taglib.Facet;
import org.jboss.tools.jst.web.kb.taglib.IAttribute;
import org.jboss.tools.jst.web.kb.taglib.IComponent;
@@ -560,6 +561,8 @@
c = new CompositeAttribute();
} else if(KbXMLStoreConstants.CLS_FACELET_LIBRARY.equals(cls)) {
c = new FaceletAttribute();
+ } else if(KbXMLStoreConstants.CLS_MYFACES_LIBRARY.equals(cls)) {
+ c = new MyFacesAttribute();
} else {
//consider other cases;
}
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/AbstractTagLib.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/AbstractTagLib.java 2010-09-17
14:18:00 UTC (rev 24988)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/AbstractTagLib.java 2010-09-17
14:20:39 UTC (rev 24989)
@@ -33,6 +33,7 @@
import org.jboss.tools.jst.web.kb.internal.KbObject;
import org.jboss.tools.jst.web.kb.internal.KbXMLStoreConstants;
import org.jboss.tools.jst.web.kb.internal.taglib.composite.CompositeComponent;
+import org.jboss.tools.jst.web.kb.internal.taglib.myfaces.MyFacesComponent;
import org.jboss.tools.jst.web.kb.taglib.IAttribute;
import org.jboss.tools.jst.web.kb.taglib.IComponent;
import org.jboss.tools.jst.web.kb.taglib.INameSpace;
@@ -602,6 +603,8 @@
c = new FacesConfigComponent();
} else if(KbXMLStoreConstants.CLS_COMPOSITE_LIBRARY.equals(cls)) {
c = new CompositeComponent();
+ } else if(KbXMLStoreConstants.CLS_MYFACES_LIBRARY.equals(cls)) {
+ c = new MyFacesComponent();
} else {
//consider other cases;
}
Added:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/myfaces/MyFacesAttribute.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/myfaces/MyFacesAttribute.java
(rev 0)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/myfaces/MyFacesAttribute.java 2010-09-17
14:20:39 UTC (rev 24989)
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.jst.web.kb.internal.taglib.myfaces;
+
+import org.jboss.tools.jst.web.kb.internal.KbXMLStoreConstants;
+import org.jboss.tools.jst.web.kb.internal.taglib.AbstractAttribute;
+
+/**
+ *
+ * @author Viacheslav Kabanovich
+ *
+ */
+public class MyFacesAttribute extends AbstractAttribute {
+
+ public MyFacesAttribute clone() throws CloneNotSupportedException {
+ return (MyFacesAttribute)super.clone();
+ }
+
+ public String getXMLClass() {
+ return KbXMLStoreConstants.CLS_MYFACES_LIBRARY;
+ }
+
+}
Property changes on:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/myfaces/MyFacesAttribute.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/myfaces/MyFacesComponent.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/myfaces/MyFacesComponent.java
(rev 0)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/myfaces/MyFacesComponent.java 2010-09-17
14:20:39 UTC (rev 24989)
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.jst.web.kb.internal.taglib.myfaces;
+
+import java.util.Properties;
+
+import org.jboss.tools.common.model.project.ext.IValueInfo;
+import org.jboss.tools.jst.web.kb.internal.KbXMLStoreConstants;
+import org.jboss.tools.jst.web.kb.internal.taglib.AbstractComponent;
+import org.w3c.dom.Element;
+
+/**
+ *
+ * @author Viacheslav Kabanovich
+ *
+ */
+public class MyFacesComponent extends AbstractComponent {
+ static String PARENT_CLASS = "parent-class"; //$NON-NLS-1$
+ protected String parentClass;
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.tools.jst.web.kb.internal.KbObject#getXMLClass()
+ */
+ @Override
+ public String getXMLClass() {
+ return KbXMLStoreConstants.CLS_MYFACES_LIBRARY;
+ }
+
+ public String getParentClass() {
+ return parentClass;
+ }
+
+ public void setParentClass(String parentClass) {
+ this.parentClass = parentClass;
+ }
+
+ public void setParentClass(IValueInfo s) {
+ parentClass = s == null ? null : s.getValue();
+ attributesInfo.put(PARENT_CLASS, s);
+ }
+
+ @Override
+ public void loadXML(Element element, Properties context) {
+ super.loadXML(element, context);
+ setParentClass(attributesInfo.get(PARENT_CLASS));
+ }
+
+}
Property changes on:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/myfaces/MyFacesComponent.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/myfaces/MyFacesTagLibrary.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/myfaces/MyFacesTagLibrary.java
(rev 0)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/myfaces/MyFacesTagLibrary.java 2010-09-17
14:20:39 UTC (rev 24989)
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.jst.web.kb.internal.taglib.myfaces;
+
+import org.jboss.tools.jst.web.kb.internal.KbXMLStoreConstants;
+import org.jboss.tools.jst.web.kb.internal.taglib.AbstractTagLib;
+
+/**
+ *
+ * @author Viacheslav Kabanovich
+ *
+ */
+public class MyFacesTagLibrary extends AbstractTagLib {
+
+ public MyFacesTagLibrary clone() throws CloneNotSupportedException {
+ return (MyFacesTagLibrary)super.clone();
+ }
+
+ public String getXMLClass() {
+ return KbXMLStoreConstants.CLS_MYFACES_LIBRARY;
+ }
+
+}
Property changes on:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/myfaces/MyFacesTagLibrary.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain