Author: dazarov
Date: 2012-07-30 20:17:58 -0400 (Mon, 30 Jul 2012)
New Revision: 42795
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.ui/src/org/jboss/tools/jst/web/ui/action/AddTLDMarkerResolution.java
trunk/jst/plugins/org.jboss.tools.jst.web.ui/src/org/jboss/tools/jst/web/ui/action/JSPProblemMarkerResolutionGenerator.java
Log:
Make Quick Fix "Add tag library definition" work with KB Model instead of using
plain tag library list
https://issues.jboss.org/browse/JBIDE-12304
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.ui/src/org/jboss/tools/jst/web/ui/action/AddTLDMarkerResolution.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web.ui/src/org/jboss/tools/jst/web/ui/action/AddTLDMarkerResolution.java 2012-07-31
00:14:41 UTC (rev 42794)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.ui/src/org/jboss/tools/jst/web/ui/action/AddTLDMarkerResolution.java 2012-07-31
00:17:58 UTC (rev 42795)
@@ -99,6 +99,9 @@
if(!JSPProblemMarkerResolutionGenerator.validatePrefix(file, start, prefix)){
return;
}
+ if(!JSPProblemMarkerResolutionGenerator.validateURI(file, start, uri)){
+ return;
+ }
FileEditorInput input = new FileEditorInput(file);
IDocumentProvider provider =
DocumentProviderRegistry.getDefault().getDocumentProvider(input);
@@ -139,6 +142,9 @@
if(!JSPProblemMarkerResolutionGenerator.validatePrefix(file, start, prefix)){
return;
}
+ if(!JSPProblemMarkerResolutionGenerator.validateURI(file, start, uri)){
+ return;
+ }
Properties properties = getProperties();
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.ui/src/org/jboss/tools/jst/web/ui/action/JSPProblemMarkerResolutionGenerator.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web.ui/src/org/jboss/tools/jst/web/ui/action/JSPProblemMarkerResolutionGenerator.java 2012-07-31
00:14:41 UTC (rev 42794)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.ui/src/org/jboss/tools/jst/web/ui/action/JSPProblemMarkerResolutionGenerator.java 2012-07-31
00:17:58 UTC (rev 42795)
@@ -81,6 +81,23 @@
return true;
}
+ public static boolean validateURI(IFile file, int start, String uri){
+ ELContext context = PageContextFactory.createPageContext(file);
+ if(context instanceof XmlContextImpl){
+ Map<String, List<INameSpace>> nameSpaces = ((XmlContextImpl)
context).getNameSpaces(start);
+ Iterator<List<INameSpace>> iterator = nameSpaces.values().iterator();
+ while(iterator.hasNext()){
+ List<INameSpace> list = iterator.next();
+ for(INameSpace ns : list){
+ if(uri.equals(ns.getURI())){
+ return false;
+ }
+ }
+ }
+ }
+ return true;
+ }
+
private IJavaCompletionProposal[] isOurCase(Annotation annotation){
ArrayList<IJavaCompletionProposal> proposals = new
ArrayList<IJavaCompletionProposal>();
if(!(annotation instanceof TemporaryAnnotation)){
@@ -132,7 +149,7 @@
if(ns != null && ns.getPrefix() != null &&
ns.getPrefix().equals(prefix)){
String uri = ns.getURI();
String resolutionName = getResolutionName(xmlDocument != null &&
xmlDocument.isXMLType(), true, prefix, uri);
- if(resolutionName != null && !names.contains(resolutionName) &&
l.getComponent(tagName) != null){
+ if(resolutionName != null && !names.contains(resolutionName) &&
l.getComponent(tagName) != null && validateURI(file, start, uri)){
proposals.add(new AddTLDMarkerResolution(file, resolutionName, start, end, uri,
prefix));
names.add(resolutionName);
}
@@ -146,7 +163,7 @@
String uri = l.getURI();
String resolutionName = getResolutionName(xmlDocument != null &&
xmlDocument.isXMLType(), true, prefix, uri);
- if(resolutionName != null && !names.contains(resolutionName) &&
l.getComponent(tagName) != null){
+ if(resolutionName != null && !names.contains(resolutionName) &&
l.getComponent(tagName) != null && validateURI(file, start, uri)){
proposals.add(new AddTLDMarkerResolution(file, resolutionName, start, end, uri,
prefix));
names.add(resolutionName);
}
@@ -209,7 +226,7 @@
if(ns != null && ns.getPrefix() != null &&
ns.getPrefix().equals(prefix)){
String uri = ns.getURI();
String resolutionName =
getResolutionName(marker.getType().equals(HTML_VALIDATOR_MARKER) ||
marker.isSubtypeOf(HTML_VALIDATOR_MARKER), marker.getType().equals(JSP_VALIDATOR_MARKER)
|| marker.isSubtypeOf(JSP_VALIDATOR_MARKER), prefix, uri);
- if(resolutionName != null && !names.contains(resolutionName) &&
l.getComponent(tagName) != null){
+ if(resolutionName != null && !names.contains(resolutionName) &&
l.getComponent(tagName) != null && validateURI(file, start, uri)){
resolutions.add(new AddTLDMarkerResolution(file, resolutionName, start, end, uri,
prefix));
names.add(resolutionName);
}
@@ -222,7 +239,7 @@
String uri = l.getURI();
String resolutionName =
getResolutionName(marker.getType().equals(HTML_VALIDATOR_MARKER) ||
marker.isSubtypeOf(HTML_VALIDATOR_MARKER), marker.getType().equals(JSP_VALIDATOR_MARKER)
|| marker.isSubtypeOf(JSP_VALIDATOR_MARKER), prefix, uri);
- if(resolutionName != null && !names.contains(resolutionName) &&
l.getComponent(tagName) != null){
+ if(resolutionName != null && !names.contains(resolutionName) &&
l.getComponent(tagName) != null && validateURI(file, start, uri)){
resolutions.add(new AddTLDMarkerResolution(file, resolutionName, start, end, uri,
prefix));
names.add(resolutionName);
}