use of com.intellij.struts2.dom.struts.action.Result in project intellij-plugins by JetBrains.
the class DefaultInterceptorRefResolveConverterImpl method fromString.
public InterceptorStack fromString(@Nullable @NonNls final String name, final ConvertContext context) {
if (name == null) {
return null;
}
final Condition<InterceptorStack> nameCondition = interceptorStack -> name.equals(interceptorStack.getName().getStringValue());
final Ref<InterceptorStack> resolveResult = new Ref<>();
final Processor<StrutsPackage> processor = strutsPackage -> {
final InterceptorStack result = ContainerUtil.find(strutsPackage.getInterceptorStacks(), nameCondition);
if (result != null) {
resolveResult.set(result);
return false;
}
return true;
};
final StrutsPackageHierarchyWalker walker = new StrutsPackageHierarchyWalker(getCurrentStrutsPackage(context), processor);
walker.walkUp();
return resolveResult.get();
}
use of com.intellij.struts2.dom.struts.action.Result in project intellij-plugins by JetBrains.
the class ActionAnnotatorBase method installActionMethods.
/**
* Annotate action-methods of this class with result(s).
*
* @param lineMarkerInfos Current line markers.
* @param clazz Class to annotate.
* @param actions Corresponding Actions.
*/
private static void installActionMethods(final Collection<? super RelatedItemLineMarkerInfo> lineMarkerInfos, final PsiClass clazz, final List<Action> actions) {
final Map<PsiMethod, Set<PathReference>> pathReferenceMap = new HashMap<>();
for (final Action action : actions) {
final PsiMethod method = action.searchActionMethod();
if (method == null || !clazz.equals(method.getContainingClass())) {
continue;
}
final Set<PathReference> pathReferences = new HashSet<>();
final List<Result> results = action.getResults();
for (final Result result : results) {
final PathReference pathReference = result.getValue();
ContainerUtil.addIfNotNull(pathReferences, pathReference);
}
final Set<PathReference> toStore = ContainerUtil.getOrCreate(pathReferenceMap, method, new HashSet<>());
toStore.addAll(pathReferences);
pathReferenceMap.put(method, toStore);
}
for (final Map.Entry<PsiMethod, Set<PathReference>> entries : pathReferenceMap.entrySet()) {
final NavigationGutterIconBuilder<PathReference> gutterIconBuilder = NavigationGutterIconBuilder.create(AllIcons.Hierarchy.Base, PATH_REFERENCE_CONVERTER, PATH_REFERENCE_GOTO_RELATED_ITEM_PROVIDER).setAlignment(GutterIconRenderer.Alignment.LEFT).setPopupTitle(StrutsBundle.message("annotators.action.goto.result")).setTargets(entries.getValue()).setTooltipTitle(StrutsBundle.message("annotators.action.goto.result.tooltip"));
lineMarkerInfos.add(gutterIconBuilder.createLineMarkerInfo(entries.getKey()));
}
}
use of com.intellij.struts2.dom.struts.action.Result in project intellij-plugins by JetBrains.
the class Struts2GlobalVariableProvider method getGlobalVariables.
@NotNull
public List<? extends FtlVariable> getGlobalVariables(final FtlFile file) {
final Module module = ModuleUtilCore.findModuleForPsiElement(file);
if (module == null) {
return Collections.emptyList();
}
if (StrutsFacet.getInstance(module) == null) {
return Collections.emptyList();
}
final List<FtlVariable> result = new ArrayList<>();
result.add(new MyFtlLightVariable("stack", file, (FtlType) null));
result.add(new MyFtlLightVariable("response", file, WebCommonClassNames.HTTP_SERVLET_RESPONSE));
result.add(new MyFtlLightVariable("res", file, WebCommonClassNames.HTTP_SERVLET_RESPONSE));
result.add(new MyFtlLightVariable("request", file, WebCommonClassNames.HTTP_SERVLET_REQUEST));
result.add(new MyFtlLightVariable("req", file, WebCommonClassNames.HTTP_SERVLET_REQUEST));
result.add(new MyFtlLightVariable("session", file, WebCommonClassNames.HTTP_SESSION));
result.add(new MyFtlLightVariable("application", file, WebCommonClassNames.SERVLET_CONTEXT));
result.add(new MyFtlLightVariable("base", file, CommonClassNames.JAVA_LANG_STRING));
installTaglibSupport(result, module, StrutsConstants.TAGLIB_STRUTS_UI_URI, StrutsConstants.TAGLIB_STRUTS_UI_PREFIX);
installTaglibSupport(result, module, StrutsConstants.TAGLIB_JQUERY_PLUGIN_URI, StrutsConstants.TAGLIB_JQUERY_PLUGIN_PREFIX);
installTaglibSupport(result, module, StrutsConstants.TAGLIB_JQUERY_RICHTEXT_PLUGIN_URI, StrutsConstants.TAGLIB_JQUERY_RICHTEXT_PLUGIN_PREFIX);
installTaglibSupport(result, module, StrutsConstants.TAGLIB_JQUERY_CHART_PLUGIN_URI, StrutsConstants.TAGLIB_JQUERY_CHART_PLUGIN_PREFIX);
installTaglibSupport(result, module, StrutsConstants.TAGLIB_JQUERY_TREE_PLUGIN_URI, StrutsConstants.TAGLIB_JQUERY_TREE_PLUGIN_PREFIX);
installTaglibSupport(result, module, StrutsConstants.TAGLIB_JQUERY_GRID_PLUGIN_URI, StrutsConstants.TAGLIB_JQUERY_GRID_PLUGIN_PREFIX);
installTaglibSupport(result, module, StrutsConstants.TAGLIB_JQUERY_MOBILE_PLUGIN_URI, StrutsConstants.TAGLIB_JQUERY_MOBILE_PLUGIN_PREFIX);
installTaglibSupport(result, module, StrutsConstants.TAGLIB_BOOTSTRAP_PLUGIN_URI, StrutsConstants.TAGLIB_BOOTSTRAP_PLUGIN_PREFIX);
final Processor<Action> processor = action -> {
final PsiClass actionClass = action.searchActionClass();
if (actionClass != null) {
for (final Result result1 : action.getResults()) {
final ResultType resultType = result1.getEffectiveResultType();
if (resultType != null && FreeMarkerStrutsResultContributor.FREEMARKER.equals(resultType.getName().getStringValue())) {
final PathReference reference = result1.getValue();
final PsiElement target = reference == null ? null : reference.resolve();
if (target != null && (file.getManager().areElementsEquivalent(file, target) || file.getManager().areElementsEquivalent(file.getOriginalFile(), target))) {
final PsiClassType actionType = PsiTypesUtil.getClassType(actionClass);
final FtlPsiType ftlPsiType = FtlPsiType.wrap(actionType);
result.add(new MyFtlLightVariable("", action.getXmlTag(), ftlPsiType));
result.add(new MyFtlLightVariable("action", action.getXmlTag(), ftlPsiType));
return false;
}
}
}
}
return true;
};
for (final StrutsModel model : StrutsManager.getInstance(file.getProject()).getAllModels(module)) {
model.processActions(processor);
}
return result;
}
use of com.intellij.struts2.dom.struts.action.Result in project intellij-plugins by JetBrains.
the class GoToActionSymbolProvider method addNames.
protected void addNames(@NotNull final Module module, final Set<String> result) {
final StrutsModel strutsModel = StrutsManager.getInstance(module.getProject()).getCombinedModel(module);
if (strutsModel == null) {
return;
}
strutsModel.processActions(action -> {
result.add(action.getName().getStringValue());
return true;
});
}
use of com.intellij.struts2.dom.struts.action.Result in project intellij-plugins by JetBrains.
the class GoToActionSymbolProvider method addItems.
protected void addItems(@NotNull final Module module, final String name, final List<NavigationItem> result) {
final StrutsModel strutsModel = StrutsManager.getInstance(module.getProject()).getCombinedModel(module);
if (strutsModel == null) {
return;
}
final List<Action> actions = strutsModel.findActionsByName(name, null);
for (final Action action : actions) {
final NavigationItem item = createNavigationItem(action.getXmlTag(), action.getName().getStringValue() + " [" + action.getNamespace() + "]", Struts2Icons.Action);
result.add(item);
}
}
Aggregations