Author: scabanovich
Date: 2009-09-30 08:46:07 -0400 (Wed, 30 Sep 2009)
New Revision: 17815
Removed:
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/tld/TLDUtil.java
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/tld/model/TLDUtil.java
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/tld/model/handlers/ImportTLDToPaletteSupport.java
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/tld/model/handlers/PaletteAdopt.java
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/tld/model/helpers/TLDToPaletteHelper.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-4934
Deleted:
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/tld/TLDUtil.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/tld/TLDUtil.java 2009-09-30
12:36:20 UTC (rev 17814)
+++
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/tld/TLDUtil.java 2009-09-30
12:46:07 UTC (rev 17815)
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Exadel, Inc. and 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:
- * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.jboss.tools.jst.web.tld;
-
-import org.jboss.tools.common.model.*;
-
-public class TLDUtil {
- static String FILE_ENTITIES =
".FileTLD_PRO.FileTLD_1_2.FileTLD_2_0.FileTLD_2_1."; //$NON-NLS-1$
- static String TAG_ENTITIES = ".TLDTag.TLDTag12.TLDTag21."; //$NON-NLS-1$
- static String ATTR_ENTITIES = ".TLDAttribute.TLDAttribute12.";
//$NON-NLS-1$
-
- public static boolean isTaglib(XModelObject o) {
- return isOfEntity(o, FILE_ENTITIES);
- }
-
- public static boolean isTag(XModelObject o) {
- return isOfEntity(o, TAG_ENTITIES);
- }
-
- public static boolean isAttribute(XModelObject o) {
- return isOfEntity(o, ATTR_ENTITIES);
- }
-
- private static boolean isOfEntity(XModelObject o, String entities) {
- return entities.indexOf("." + o.getModelEntity().getName() +
".") >= 0; //$NON-NLS-1$//$NON-NLS-2$
- }
-
- public static String getTagDescription(XModelObject o) {
- String attr = (o.getModelEntity().getAttribute("info") != null) ?
"info" : "description"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- String s = o.getAttributeValue(attr);
- s = (s == null) ? "" : s.trim(); //$NON-NLS-1$
- StringBuffer sb = new StringBuffer();
- for (int i = 0; i < s.length(); i++) {
- char c = s.charAt(i);
- if(c == '<') sb.append("<"); //$NON-NLS-1$
- else if(c == '>') sb.append(">"); //$NON-NLS-1$
- else sb.append(c);
- }
- return sb.toString();
- }
-
-}
-
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/tld/model/TLDUtil.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/tld/model/TLDUtil.java 2009-09-30
12:36:20 UTC (rev 17814)
+++
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/tld/model/TLDUtil.java 2009-09-30
12:46:07 UTC (rev 17815)
@@ -15,8 +15,11 @@
public class TLDUtil {
static String FILE_ENTITIES =
".FileTLD_PRO.FileTLD_1_2.FileTLD_2_0.FileTLD_2_1."; //$NON-NLS-1$
static String TAG_ENTITIES = ".TLDTag.TLDTag12.TLDTag20.TLDTag21.";
//$NON-NLS-1$
- static String ATTR_ENTITIES = ".TLDAttribute.TLDAttribute12.";
//$NON-NLS-1$
+ static String ATTR_ENTITIES =
".TLDAttribute.TLDAttribute12.TLDAttribute20.TLDAttribute2F."; //$NON-NLS-1$
+ static String FACELET_TAGLIB_ENTITIES = ".FileFaceletTaglib.";
//$NON-NLS-1$
+ static String FACELET_TAG_ENTITIES = ".FaceletTaglibTag."; //$NON-NLS-1$
+
public static boolean isTaglib(XModelObject o) {
return isOfEntity(o, FILE_ENTITIES);
}
@@ -46,6 +49,13 @@
}
return sb.toString();
}
-
+
+ public static boolean isFaceletTaglib(XModelObject o) {
+ return isOfEntity(o, FACELET_TAGLIB_ENTITIES);
+ }
+ public static boolean isFaceletTag(XModelObject o) {
+ return isOfEntity(o, FACELET_TAG_ENTITIES);
+ }
+
}
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/tld/model/handlers/ImportTLDToPaletteSupport.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/tld/model/handlers/ImportTLDToPaletteSupport.java 2009-09-30
12:36:20 UTC (rev 17814)
+++
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/tld/model/handlers/ImportTLDToPaletteSupport.java 2009-09-30
12:46:07 UTC (rev 17815)
@@ -30,6 +30,7 @@
import org.jboss.tools.jst.web.messages.xpl.WebUIMessages;
import org.jboss.tools.jst.web.model.tree.AllTldsTree;
import org.jboss.tools.jst.web.tld.URIConstants;
+import org.jboss.tools.jst.web.tld.model.TLDUtil;
import org.jboss.tools.jst.web.tld.model.helpers.TLDToPaletteHelper;
public class ImportTLDToPaletteSupport extends SpecialWizardSupport {
@@ -133,7 +134,9 @@
String name = selectedFile.getAttributeValue("display-name");
//$NON-NLS-1$
if(name == null || name.length() == 0) name =
selectedFile.getAttributeValue("shortname"); //$NON-NLS-1$
setAttributeValue(0, NAME, name);
- String pref = TLDToPaletteHelper.getTldName(selectedFile);
+ String pref = TLDUtil.isTaglib(selectedFile) ?
TLDToPaletteHelper.getTldName(selectedFile)
+ : TLDUtil.isFaceletTaglib(selectedFile) ?
TLDToPaletteHelper.getFaceletTldName(selectedFile)
+ : ""; //$NON-NLS-1$
setAttributeValue(0, URIConstants.DEFAULT_PREFIX, pref);
String uri = selectedFile.getAttributeValue("uri"); //$NON-NLS-1$
setAttributeValue(0, URIConstants.LIBRARY_URI, uri);
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/tld/model/handlers/PaletteAdopt.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/tld/model/handlers/PaletteAdopt.java 2009-09-30
12:36:20 UTC (rev 17814)
+++
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/tld/model/handlers/PaletteAdopt.java 2009-09-30
12:46:07 UTC (rev 17815)
@@ -26,33 +26,43 @@
public PaletteAdopt() {}
public boolean isAdoptable(XModelObject target, XModelObject object) {
- return isAdoptableTag(target, object) || isAdoptableTaglib(target, object);
+ return isAdoptableTag(target, object)
+ || isAdoptableTaglib(target, object)
+ || isAdoptableFaceletTaglib(target, object);
}
public void adopt(XModelObject target, XModelObject object, java.util.Properties p)
throws XModelException {
if(isAdoptableTag(target, object)) adoptTag(target, object);
else if(isAdoptableTaglib(target, object)) adoptTaglib(target, object);
+ else if(isAdoptableFaceletTaglib(target, object)) adoptFaceletTaglib(target,
object);
}
protected boolean isAdoptableTag(XModelObject target, XModelObject object) {
if(!TLDUtil.isTag(object)) return false;
- String te = target.getModelEntity().getName();
- if(!te.startsWith("SharablePageTab") && //$NON-NLS-1$
- !te.startsWith("SharableGroup") && //$NON-NLS-1$
- !te.startsWith("SharableMacro")) return false; //$NON-NLS-1$
+ if(!isPaletteObject(target, true)) return false;
return true;
}
+ private boolean isPaletteObject(XModelObject target, boolean excludeRoot) {
+ String te = target.getModelEntity().getName();
+ if(te.startsWith("SharablePageTab")) return true; //$NON-NLS-1$
+ if(te.startsWith("SharableGroup")) return true; //$NON-NLS-1$
+ if(te.startsWith("SharableMacro")) return true; //$NON-NLS-1$
+ if(!excludeRoot && te.startsWith("SharablePalette")) return true;
//$NON-NLS-1$
+ return false;
+ }
protected boolean isAdoptableTaglib(XModelObject target, XModelObject object) {
if(!TLDUtil.isTaglib(object)) return false;
- String te = target.getModelEntity().getName();
- if(!te.startsWith("SharablePageTab") && //$NON-NLS-1$
- !te.startsWith("SharableGroup") && //$NON-NLS-1$
- !te.equals("SharablePalette") && //$NON-NLS-1$
- !te.startsWith("SharableMacro")) return false; //$NON-NLS-1$
+ if(!isPaletteObject(target, false)) return false;
return true;
}
-
+
+ protected boolean isAdoptableFaceletTaglib(XModelObject target, XModelObject object)
{
+ if(!TLDUtil.isFaceletTaglib(object)) return false;
+ if(!isPaletteObject(target, false)) return false;
+ return true;
+ }
+
public void adoptTag(XModelObject target, XModelObject object) throws XModelException
{
if(target.getModelEntity().getName().startsWith("SharableMacro")) target =
target.getParent(); //$NON-NLS-1$
add(target, object, helper.createMacroByTag(object, target.getModel()));
@@ -83,6 +93,10 @@
XActionInvoker.invoke("ImportTLDToPaletteWizard",
"CreateActions.ImportTLD", paletteRoot, p); //$NON-NLS-1$ //$NON-NLS-2$
}
+ public void adoptFaceletTaglib(XModelObject target, XModelObject object) {
+ adoptTaglib(target, object);
+ }
+
static void add(XModelObject target, XModelObject object, XModelObject created)
throws XModelException {
if(created == null) return;
XModelObject old = target.getChildByPath(created.getPathPart());
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/tld/model/helpers/TLDToPaletteHelper.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/tld/model/helpers/TLDToPaletteHelper.java 2009-09-30
12:36:20 UTC (rev 17814)
+++
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/tld/model/helpers/TLDToPaletteHelper.java 2009-09-30
12:46:07 UTC (rev 17815)
@@ -105,6 +105,43 @@
return sb.toString();
}
+ public XModelObject createMacroByFaceletTag(XModelObject tag, XModel model) {
+ Properties p = new Properties();
+ String parentname = getFaceletTldName(tag.getParent());
+ String prefix = (parentname.length() == 0) ? "" : parentname +
":"; //$NON-NLS-1$ //$NON-NLS-2$
+ String shortname = tag.getAttributeValue("tag-name"); //$NON-NLS-1$
+ String name = prefix + shortname;
+ String tagname = shortname; ///name;
+ p.setProperty("name", shortname); //$NON-NLS-1$
+ boolean empty = false; //we know nothing
+ if(!empty) p.setProperty(END_TEXT, "</" + tagname +
">"); //$NON-NLS-1$ //$NON-NLS-2$
+ p.setProperty(START_TEXT, getStartText(tag, empty, tagname));
+ p.setProperty(DESCRIPTION, getTagDescription(tag, empty, name));
+ if(!empty) p.setProperty(REFORMAT, "yes"); //$NON-NLS-1$
+ return model.createModelObject("SharableMacroHTML", p); //$NON-NLS-1$
+ }
+
+ public static String getFaceletTldName(XModelObject tld) {
+ if(tld == null) return ""; //$NON-NLS-1$
+ String n = tld.getAttributeValue(XModelObjectConstants.ATTR_NAME);
+ String suff = ".taglib"; //$NON-NLS-1$
+ if(n.endsWith(suff)) {
+ String p = n.substring(0, n.length() - suff.length()).toLowerCase();
+ if(!"jsp".equals(p)) { //$NON-NLS-1$
+ return p;
+ }
+ }
+ String u = tld.getAttributeValue("uri"); //$NON-NLS-1$
+ if(u != null) {
+ int q = u.lastIndexOf('/');
+ if(q >= 0) u = u.substring(q + 1);
+ n = u;
+ }
+ int s = n.lastIndexOf(' ');
+ if(s >= 0) n = n.substring(s + 1);
+ return n.toLowerCase();
+ }
+
private boolean isRequired(XModelObject attr) {
String required = attr.getAttributeValue("required"); //$NON-NLS-1$
return (XModelObjectConstants.TRUE.equals(required) ||
XModelObjectConstants.TRUE.equals(required));
@@ -126,12 +163,13 @@
p.setProperty(URIConstants.LIBRARY_URI, "" +
tld.getAttributeValue("uri")); //$NON-NLS-1$ //$NON-NLS-2$
XModelObject tab = model.createModelObject(entity, p);
XModelObject[] tags = tld.getChildren();
- for (int i = 0; i < tags.length; i++)
- if(TLDUtil.isTag(tags[i])) tab.addChild(createMacroByTag(tags[i], model));
+ for (int i = 0; i < tags.length; i++) {
+ if(TLDUtil.isTag(tags[i])) tab.addChild(createMacroByTag(tags[i], model));
+ if(TLDUtil.isFaceletTag(tags[i])) tab.addChild(createMacroByFaceletTag(tags[i],
model));
+ }
return tab;
}
-
private String capitalize(String s) {
return (s.length() == 0) ? s : Character.toUpperCase(s.charAt(0)) +
s.substring(1);
}