Author: scabanovich
Date: 2009-05-28 02:44:30 -0400 (Thu, 28 May 2009)
New Revision: 15575
Added:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/FacesConfigAttribute.java
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/XMLScanner.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/AbstractComponent.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-2808
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/XMLScanner.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/XMLScanner.java 2009-05-28
04:47:10 UTC (rev 15574)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/scanner/XMLScanner.java 2009-05-28
06:44:30 UTC (rev 15575)
@@ -29,6 +29,9 @@
import org.jboss.tools.jst.web.kb.internal.taglib.AbstractTagLib;
import org.jboss.tools.jst.web.kb.internal.taglib.FaceletTag;
import org.jboss.tools.jst.web.kb.internal.taglib.FaceletTagLibrary;
+import org.jboss.tools.jst.web.kb.internal.taglib.FacesConfigAttribute;
+import org.jboss.tools.jst.web.kb.internal.taglib.FacesConfigComponent;
+import org.jboss.tools.jst.web.kb.internal.taglib.FacesConfigTagLibrary;
import org.jboss.tools.jst.web.kb.internal.taglib.TLDAttribute;
import org.jboss.tools.jst.web.kb.internal.taglib.TLDLibrary;
import org.jboss.tools.jst.web.kb.internal.taglib.TLDTag;
@@ -199,7 +202,39 @@
}
private void parseFacesConfig(XModelObject o, IPath source, IKbProject sp,
LoadedDeclarations ds) {
+ FacesConfigTagLibrary library = new FacesConfigTagLibrary();
+ library.setId(o);
+ library.setURI("TODO"); //TODO what is the URI?
+ ds.getLibraries().add(library);
+
+ XModelObject componentFolder = o.getChildByPath("Components");
+ if(componentFolder == null) return;
+ XModelObject[] os = componentFolder.getChildren();
+ for (XModelObject c: os) {
+ FacesConfigComponent component = new FacesConfigComponent();
+ component.setId(c);
+ component.setName(new XMLValueInfo(c, "component-type"));
+ //TODO what else can we take for the name? only attribute 'component-type' is
available
+
+ component.setComponentClass(new XMLValueInfo(c, "component-class"));
+ component.setComponentType(c.getAttributeValue("component-type"));
+ component.setDescription(new XMLValueInfo(c, "description"));
+
+ XModelObject[] as = c.getChildren();
+ for (XModelObject child: as) {
+ String entity = child.getModelEntity().getName();
+ if(entity.startsWith("JSFAttribute")) {
+ FacesConfigAttribute attr = new FacesConfigAttribute();
+
+ component.addAttribute(attr);
+ } else if(entity.startsWith("JSFFacet")) {
+ //TODO
+ }
+ }
+ library.addComponent(component);
+ }
+
}
}
\ No newline at end of file
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 2009-05-28
04:47:10 UTC (rev 15574)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/AbstractComponent.java 2009-05-28
06:44:30 UTC (rev 15575)
@@ -351,6 +351,8 @@
AbstractAttribute c = null;
if(KbXMLStoreConstants.CLS_TLD_LIBRARY.equals(cls)) {
c = new TLDAttribute();
+ } else if(KbXMLStoreConstants.CLS_FACESCONFIG_LIBRARY.equals(cls)) {
+ c = new FacesConfigAttribute();
} else {
//consider other cases;
}
Added:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/FacesConfigAttribute.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/FacesConfigAttribute.java
(rev 0)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/FacesConfigAttribute.java 2009-05-28
06:44:30 UTC (rev 15575)
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2009 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;
+
+import java.util.Properties;
+
+import org.jboss.tools.common.model.XModelObject;
+import org.jboss.tools.common.model.project.ext.store.XMLStoreConstants;
+import org.jboss.tools.jst.web.kb.internal.KbXMLStoreConstants;
+import org.jboss.tools.jst.web.model.project.ext.store.XMLValueInfo;
+import org.w3c.dom.Element;
+
+/**
+ * @author Viacheslav Kabanovich
+ */
+public class FacesConfigAttribute extends AbstractAttribute {
+
+ public String getXMLClass() {
+ return KbXMLStoreConstants.CLS_FACESCONFIG_LIBRARY;
+ }
+
+ @Override
+ protected void loadAttributesInfo(Element element, Properties context) {
+ if(context.get(XMLStoreConstants.KEY_MODEL_OBJECT) == getId()) {
+ XModelObject a = (XModelObject)getId();
+ attributesInfo.put(XMLStoreConstants.ATTR_NAME, new XMLValueInfo(a,
"attribute-name"));
+ //TODO how to define required?
+ attributesInfo.put(AbstractComponent.DESCRIPTION, new XMLValueInfo(a,
AbstractComponent.DESCRIPTION));
+// attributesInfo.put(REQUIRED, new XMLValueInfo(a, REQUIRED));
+ } else {
+ super.loadAttributesInfo(element, context);
+ }
+ }
+
+}
Property changes on:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/taglib/FacesConfigAttribute.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain