fieldScreenRenderTab.getFieldScreenRenderLayoutItemsForProcessing())
@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; }
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; }
public List<FieldScreenRenderLayoutItem> getAllScreenRenderItems() { final List<FieldScreenRenderTab> tabList = getFieldScreenRenderTabs(); if (tabList != null) { final List<FieldScreenRenderLayoutItem> returnList = new ArrayList<FieldScreenRenderLayoutItem>(tabList.size()); for (FieldScreenRenderTab fieldScreenRenderTab : tabList) { returnList.addAll(fieldScreenRenderTab.getFieldScreenRenderLayoutItems()); } return returnList; } return Lists.newArrayList(); } }
public int compareTo(FieldScreenRenderTab o) { if (o == null) return 1; if (o.getPosition() > position) return -1; else if (o.getPosition() < position) return 1; else return 0; } }
public Collection<FieldScreenRenderLayoutItem> getRequiredFieldScreenRenderItems() { final Collection<FieldScreenRenderLayoutItem> items = new LinkedList<FieldScreenRenderLayoutItem>(); final List<FieldScreenRenderTab> tabList = getFieldScreenRenderTabs(); if (tabList != null) { for (final FieldScreenRenderTab fieldScreenRenderTab : tabList) { for (FieldScreenRenderLayoutItem fieldScreenRenderLayoutItem : fieldScreenRenderTab.getFieldScreenRenderLayoutItems()) { if (fieldScreenRenderLayoutItem.isRequired()) { items.add(fieldScreenRenderLayoutItem); } } } } return items; }
return tabsWithErrors.first().getPosition() + 1;
/** * JRADEV-9051: Try to get the right {@link FieldScreenRenderLayoutItem} for the field. If it doesn't exist - relax. * Just return null. The only fields that seem to care about it are fields with Renderers. And they do null checks * anyway. */ private FieldScreenRenderLayoutItem getFieldScreenRenderLayoutItem(MutableIssue issue, OrderableField orderableField, FieldScreenRenderer fieldScreenRenderer, boolean useFallback) { for (final FieldScreenRenderTab fieldScreenRenderTab : fieldScreenRenderer.getFieldScreenRenderTabs()) { for (final FieldScreenRenderLayoutItem fieldScreenRenderLayoutItem : fieldScreenRenderTab.getFieldScreenRenderLayoutItemsForProcessing()) { if (fieldScreenRenderLayoutItem.isShow(issue)) { if (orderableField.equals(fieldScreenRenderLayoutItem.getOrderableField())) { return fieldScreenRenderLayoutItem; } } } } if (useFallback) { return getFieldScreenRenderLayoutItemFallback(orderableField); } return null; }
FieldScreenRenderer createFieldScreenRenderer(final Issue issue, Collection<FieldScreenTab> tabs, final IssueOperation operation, final Predicate<? super Field> condition) { final List<FieldScreenRenderTab> fieldScreenRenderTabs = new ArrayList<FieldScreenRenderTab>(tabs.size()); // Create FieldScreenRenderTabs // Iterate over the FieldScreen tabs and create FieldScreenRenderTab for each one int currentTabPosition = 0; for (final FieldScreenTab fieldScreenTab : tabs) { final IssueTabRendererDto issueTabRendererDto = new IssueTabRendererDto(issue, operation, condition, currentTabPosition, fieldScreenTab); final FieldScreenRenderTab fieldScreenRenderTab = fieldScreenTabRendererFactory.createTabRender(issueTabRendererDto); // Only render tabs with items on them if ( !fieldScreenRenderTab.getFieldScreenRenderLayoutItems().isEmpty()) { fieldScreenRenderTabs.add(fieldScreenRenderTab); currentTabPosition++; } } final FieldLayout fieldLayout = getFieldLayout(issue); return new FieldScreenRendererImpl(Collections.unmodifiableList(fieldScreenRenderTabs), fieldLayout); }
if (timeTrackingTab.getPosition() != worklogTab.getPosition())
for (Iterator iterator1 = fieldScreenRenderTab.getFieldScreenRenderLayoutItemsForProcessing().iterator(); iterator1.hasNext();)
public List<OrderableField> getFieldsForCreate(ApplicationUser user, Issue issueObject) { final List<OrderableField> fields = new ArrayList<OrderableField>(); FieldScreenRenderer fieldScreenRenderer = createFieldScreenRenderer(issueObject); for (FieldScreenRenderTab fieldScreenRenderTab : fieldScreenRenderer.getFieldScreenRenderTabs()) { for (FieldScreenRenderLayoutItem fieldScreenRenderLayoutItem : fieldScreenRenderTab.getFieldScreenRenderLayoutItems()) { if (fieldScreenRenderLayoutItem.isShow(issueObject)) { fields.add(fieldScreenRenderLayoutItem.getOrderableField()); } } } return fields; }
for (FieldScreenRenderLayoutItem fieldScreenRenderLayoutItem : fieldScreenRenderTab.getFieldScreenRenderLayoutItemsForProcessing())
public List getFieldsForEdit(ApplicationUser user, Issue issueObject) { final List fields = new ArrayList(); FieldScreenRenderer fieldScreenRenderer = getFieldScreenRenderer(user, issueObject); for (FieldScreenRenderTab fieldScreenRenderTab : fieldScreenRenderer.getFieldScreenRenderTabs()) { for (FieldScreenRenderLayoutItem fieldScreenRenderLayoutItem : fieldScreenRenderTab.getFieldScreenRenderLayoutItems()) { if (fieldScreenRenderLayoutItem.isShow(issueObject)) { fields.add(fieldScreenRenderLayoutItem.getOrderableField()); } } } return fields; }
for (FieldScreenRenderLayoutItem fieldScreenRenderLayoutItem : fieldScreenRenderTab.getFieldScreenRenderLayoutItemsForProcessing())
/** * Return null if cannot find tab for the given fieldId */ public FieldScreenRenderTab getFieldScreenRenderTabPosition(String fieldId) { final List<FieldScreenRenderTab> tabList = getFieldScreenRenderTabs(); if (tabList != null) { for (FieldScreenRenderTab fieldScreenRenderTab : tabList) { for (FieldScreenRenderLayoutItem fieldScreenRenderLayoutItem : fieldScreenRenderTab.getFieldScreenRenderLayoutItems()) { if (fieldScreenRenderLayoutItem.getOrderableField().getId().equals(fieldId)) { return fieldScreenRenderTab; } } } } return null; }
public Map<String, FieldMetaBean> build() { // Get all the fields for the given project and issue type final Map<String, FieldMetaBean> fields = new HashMap<String, FieldMetaBean>(); if (hasPermissionToPerformOperation()) { for (final FieldScreenRenderTab fieldScreenRenderTab : getFieldScreenRenderer(issue).getFieldScreenRenderTabs()) { for (final FieldScreenRenderLayoutItem fieldScreenRenderLayoutItem : fieldScreenRenderTab.getFieldScreenRenderLayoutItemsForProcessing()) { final FieldLayoutItem fieldLayoutItem = fieldScreenRenderLayoutItem.getFieldLayoutItem(); final OrderableField field = fieldLayoutItem.getOrderableField(); if (field.isShown(issue)) { final String id = field.getId(); if (includeFields == null || includeFields.included(field)) { final FieldMetaBean fieldMetaBean = getFieldMetaBean(fieldLayoutItem.isRequired(), field); fields.put(id, fieldMetaBean); } } } } addAdditionalFields(fields); } return fields; }
protected void populateFieldHolderWithDefaults(Issue issue, Collection excludedFieldIds) { for (FieldScreenRenderTab fieldScreenRenderTab : getFieldScreenRenderer().getFieldScreenRenderTabs()) { for (FieldScreenRenderLayoutItem fieldScreenRenderTabLayoutItem : fieldScreenRenderTab.getFieldScreenRenderLayoutItems()) { String fieldId = fieldScreenRenderTabLayoutItem.getOrderableField().getId(); // If the field is not in the excluded list or not Project or Issue Type if (!excludedFieldIds.contains(fieldId) && !IssueFieldConstants.PROJECT.equals(fieldId) && !IssueFieldConstants.ISSUE_TYPE.equals(fieldId)) { fieldScreenRenderTabLayoutItem.populateDefaults(getFieldValuesHolder(), issue); } } } }
private void validateFieldsParams() { for (final FieldScreenRenderTab fieldScreenRenderTab : getFieldScreenRenderer().getFieldScreenRenderTabs()) { for (final FieldScreenRenderLayoutItem fieldScreenRenderLayoutItem : fieldScreenRenderTab.getFieldScreenRenderLayoutItemsForProcessing()) { if (fieldScreenRenderLayoutItem.isShow(getIssue())) { final OrderableField orderableField = fieldScreenRenderLayoutItem.getOrderableField(); // JRA-16112 - This is a hack that is here because the resolution field is "special". You can not // make the resolution field required and therefore by default the FieldLayoutItem for resolution // returns false for the isRequired method. This is so that you can not make the resolution field // required for issue creation. HOWEVER, whenever the resolution system field is shown it is // required because the edit template does not provide a none option and indicates that it is // required. THEREFORE, when the field is included on a transition screen we will do a special // check to make the FieldLayoutItem claim it is required IF we run into the resolution field. final boolean isResolutionField = IssueFieldConstants.RESOLUTION.equals(orderableField.getId()); final FieldScreenRenderLayoutItem itemWithHack = isResolutionField ? makeRequired(fieldScreenRenderLayoutItem) : fieldScreenRenderLayoutItem; orderableField.validateParams(getOperationContext(), errorCollection, getI18n(), getIssue(), itemWithHack); } } } }
public Map getAllEditActions() { final Collection<FieldScreenRenderTab> fieldScreenRenderTabs = getBulkEditBean().getFieldScreenRenderer().getFieldScreenRenderTabs(); final Map editActions = new HashMap(); for (final FieldScreenRenderTab screenRenderTab : fieldScreenRenderTabs) { final Collection<FieldScreenRenderLayoutItem> bulkFieldScreenRenderLayoutItems = screenRenderTab.getFieldScreenRenderLayoutItems(); for (final FieldScreenRenderLayoutItem bulkFieldScreenRenderLayoutItem : bulkFieldScreenRenderLayoutItems) { final String actionName = bulkFieldScreenRenderLayoutItem.getFieldScreenLayoutItem().getFieldId(); editActions.put(actionName, buildBulkEditAction(actionName)); } } return editActions; }