public Collection<BulkEditAction> getEditActions(final String fieldScreenTabName) { if (editActionsMap == null) { editActionsMap = new HashMap(); } else if (editActionsMap.containsKey(fieldScreenTabName)) { return (Collection) editActionsMap.get(fieldScreenTabName); } final Collection<FieldScreenRenderTab> fieldScreenRenderTabs = getBulkEditBean().getFieldScreenRenderer().getFieldScreenRenderTabs(); final Collection<BulkEditAction> editActions = Lists.newArrayListWithCapacity(fieldScreenRenderTabs.size()); for (final FieldScreenRenderTab screenRenderTab : fieldScreenRenderTabs) { if (screenRenderTab.getName().equals(fieldScreenTabName)) { final Collection<FieldScreenRenderLayoutItem> bulkFieldScreenRenderLayoutItems = screenRenderTab.getFieldScreenRenderLayoutItems(); for (final FieldScreenRenderLayoutItem bulkFieldScreenRenderLayoutItem : bulkFieldScreenRenderLayoutItems) { final String actionName = bulkFieldScreenRenderLayoutItem.getFieldScreenLayoutItem().getFieldId(); editActions.add(buildBulkEditAction(actionName)); } break; } } editActionsMap.put(fieldScreenTabName, editActions); return editActions; }
@VisibleForTesting List<FieldRenderItemWithTab> getRenderableItems(final Issue issue, final ScreenableIssueOperation operation) { final List<FieldRenderItemWithTab> fieldRendersWithTabs = Lists.newArrayList(); final FieldScreenRenderer fieldScreenRenderer = getFieldScreenRenderer(issue, operation); final List<FieldScreenRenderTab> fieldScreenRenderTabs = fieldScreenRenderer.getFieldScreenRenderTabs(); for (final FieldScreenRenderTab fieldScreenRenderTab : fieldScreenRenderTabs) { final FieldTab currentTab = new FieldTab(fieldScreenRenderTab.getName(), fieldScreenRenderTab.getPosition()); for (final FieldScreenRenderLayoutItem fieldScreenRenderLayoutItem : fieldScreenRenderTab.getFieldScreenRenderLayoutItems()) { final String fieldId = fieldScreenRenderLayoutItem.getOrderableField().getId(); //Add the field if it's not the project and it's not the issuetype (during create issue) and it it's shown. final boolean excludeIssueType = operation.equals(CREATE_ISSUE_OPERATION) && IssueFieldConstants.ISSUE_TYPE.equals(fieldId); if (!IssueFieldConstants.PROJECT.equals(fieldId) && !excludeIssueType && fieldScreenRenderLayoutItem.isShow(issue)) { fieldRendersWithTabs.add(new FieldRenderItemWithTab(fieldScreenRenderLayoutItem, currentTab)); } } } return fieldRendersWithTabs; }