[jbosstools-commits] JBoss Tools SVN: r42795 - trunk/jst/plugins/org.jboss.tools.jst.web.ui/src/org/jboss/tools/jst/web/ui/action.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Mon Jul 30 20:17:59 EDT 2012


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);
 			}



More information about the jbosstools-commits mailing list