package org.jboss.tools.seam.xml.components.model; import java.util.HashSet; import java.util.List; import java.util.Properties; import java.util.Set; import org.eclipse.core.resources.IFile; import org.eclipse.core.runtime.CoreException; import org.jboss.tools.common.model.XModel; import org.jboss.tools.common.model.XModelException; import org.jboss.tools.jst.web.project.list.IWebPromptingProvider; import org.jboss.tools.seam.xml.components.model.helpers.OpenRuleHelper; public class SeamPromptingProvider implements IWebPromptingProvider { static Set<String> SUPPORTED_IDS = new HashSet<String>(); static { SUPPORTED_IDS.add(JSF_OPEN_ACTION); } public boolean isSupporting(String id) { return id != null && SUPPORTED_IDS.contains(id); } public List<Object> getList(XModel model, String id, String prefix, Properties properties) { try { return getListInternal(model, id, prefix, properties); } catch (CoreException e) { if(properties != null) { String message = e.getMessage(); if(message==null) { message = e.getClass().getName(); } properties.setProperty(ERROR, message); } return EMPTY_LIST; } } private List<Object> getListInternal(XModel model, String id, String prefix, Properties properties) throws CoreException { String error = null; if(JSF_OPEN_ACTION.equals(id)) { IFile file = (IFile)properties.get(FILE); String action = prefix; OpenRuleHelper helper = new OpenRuleHelper(); error = helper.run(model, file, action); } if(error != null) throw new XModelException(error); return EMPTY_LIST; } }