/******************************************************************************* * Copyright (c) 2007-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.jsf.web.validation.jsf2.action; import java.util.ArrayList; import java.util.List; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.jface.text.contentassist.ICompletionProposal; import org.eclipse.jface.text.quickassist.IQuickAssistInvocationContext; import org.eclipse.jface.text.quickassist.IQuickAssistProcessor; import org.eclipse.jface.text.source.Annotation; import org.eclipse.wst.sse.ui.StructuredTextInvocationContext; import org.jboss.tools.jsf.jsf2.util.JSF2ResourceUtil; import org.jboss.tools.jsf.web.validation.jsf2.util.JSF2ValidatorConstants; /** * * @author yzhishko * */ public class JSF2QuickFixProcessor implements IQuickAssistProcessor { public boolean canAssist(IQuickAssistInvocationContext invocationContext) { return false; } public boolean canFix(Annotation annotation) { return false; } public ICompletionProposal[] computeQuickAssistProposals( IQuickAssistInvocationContext invocationContext) { // if (invocationContext instanceof StructuredTextInvocationContext) { // StructuredTextInvocationContext context = (StructuredTextInvocationContext) invocationContext; // String type = (String) context // .getAttribute(JSF2ValidatorConstants.JSF2_TYPE_KEY); // IResource resource = ResourcesPlugin.getWorkspace().getRoot() // .findMember( // (String) context // .getAttribute("validateResourcePath")); //$NON-NLS-1$ // String compPath = (String) context // .getAttribute(JSF2ResourceUtil.COMPONENT_RESOURCE_PATH_KEY); // // if (type.equals(JSF2ValidatorConstants.JSF2_FIXABLE_ATTR_TYPE)) { // String[] attrs = new String[] { (String) context // .getAttribute(JSF2ValidatorConstants.JSF2_ATTR_NAME_KEY) }; // ICompletionProposal proposal = new JSF2CompositeAttrsProposal( // resource, compPath, attrs,(String)context.getAttribute(JSF2ValidatorConstants.JSF2_ATTR_NAME_KEY), // (String)context.getAttribute(JSF2ResourceUtil.JSF2_COMPONENT_NAME)); // return new ICompletionProposal[] { proposal }; // } else if (type // .equals(JSF2ValidatorConstants.JSF2_COMPOSITE_COMPONENT_TYPE)) { // ICompletionProposal proposal = new JSF2CompositeComponentProposal( // resource, compPath, retriveAttrsFromContext(context),(String)context.getAttribute(JSF2ResourceUtil.JSF2_COMPONENT_NAME)); // return new ICompletionProposal[] { proposal }; // } else if (type.equals(JSF2ValidatorConstants.JSF2_URI_TYPE)) { // String uriPath = (String) context // .getAttribute(JSF2ValidatorConstants.JSF2_URI_NAME_KEY); // ICompletionProposal proposal = new JSF2ResourcesFolderProposal( // resource, uriPath,(String)context.getAttribute(JSF2ValidatorConstants.JSF2_URI_NAME_KEY)); // return new ICompletionProposal[] { proposal }; // } // } return null; } private String[] retriveAttrsFromContext( StructuredTextInvocationContext context) { List<String> attrsList = new ArrayList<String>(); int i = 0; while (!(context .getAttribute(JSF2ValidatorConstants.JSF2_ATTR_NAME_KEY + String.valueOf(i)) == null)) { attrsList.add((String) context .getAttribute(JSF2ValidatorConstants.JSF2_ATTR_NAME_KEY + String.valueOf(i))); i++; } return attrsList.toArray(new String[0]); } public String getErrorMessage() { return null; } }