use of de.metas.ui.web.view.IViewRow in project metasfresh-webui-api by metasfresh.
the class JSONViewRow method ofRow.
public static JSONViewRow ofRow(final IViewRow row, final IViewRowOverrides rowOverrides, final String adLanguage) {
//
// Document view record
final JSONViewRow jsonRow = new JSONViewRow(row.getId());
if (row.isProcessed()) {
jsonRow.processed = true;
}
if (row.getType() != null) {
// NOTE: mainly used by frontend to decide which Icon to show for this line
jsonRow.type = row.getType().getIconName();
}
//
// Fields
{
final Map<String, JSONDocumentField> jsonFields = new LinkedHashMap<>();
// Add pseudo "ID" field first
{
final Object id = row.getId().toJson();
final JSONDocumentField jsonIDField = JSONDocumentField.idField(id);
jsonFields.put(jsonIDField.getField(), jsonIDField);
}
// Append the other fields
row.getFieldNames().stream().map(createJSONDocumentField(row)).forEach(jsonField -> jsonFields.put(jsonField.getField(), jsonField));
jsonRow.setFields(jsonFields);
}
//
// Included documents if any
{
final List<? extends IViewRow> includedDocuments = row.getIncludedRows();
if (!includedDocuments.isEmpty()) {
jsonRow.includedDocuments = includedDocuments.stream().map(includedRow -> ofRow(includedRow, rowOverrides, adLanguage)).collect(GuavaCollectors.toImmutableList());
}
}
//
// Attributes
jsonRow.supportAttributes = row.hasAttributes();
// Included views
if (ViewRowOverridesHelper.extractSupportIncludedViews(row, rowOverrides)) {
jsonRow.supportIncludedViews = true;
final ViewId includedViewId = ViewRowOverridesHelper.extractIncludedViewId(row, rowOverrides);
if (includedViewId != null) {
jsonRow.includedView = new JSONIncludedViewId(includedViewId.getWindowId(), includedViewId.getViewId());
}
}
// Single column row
if (row.isSingleColumn()) {
jsonRow.colspan = true;
jsonRow.caption = row.getSingleColumnCaption().translate(adLanguage);
}
return jsonRow;
}
use of de.metas.ui.web.view.IViewRow in project metasfresh-webui-api by metasfresh.
the class WEBUI_Picking_Launcher method doIt.
@Override
protected String doIt() throws Exception {
// repeat the verification from checkPreconditionsApplicable() just to be sure.
// We had cases where the selected rows of checkPreconditionsApplicable() were not the selected rows of doIt()
final ProcessPreconditionsResolution verifySelectedDocuments = verifySelectedDocuments();
if (verifySelectedDocuments.isRejected()) {
throw new AdempiereException(verifySelectedDocuments().getRejectReason().translate(Env.getAD_Language(getCtx())));
}
final DocumentIdsSelection selectedRowIds = getSelectedRootDocumentIds();
final List<TableRecordReference> records = getView().streamByIds(selectedRowIds).flatMap(selectedRow -> selectedRow.getIncludedRows().stream()).map(IViewRow::getId).map(DocumentId::removeDocumentPrefixAndConvertToInt).map(recordId -> TableRecordReference.of(I_M_Packageable_V.Table_Name, recordId)).collect(ImmutableList.toImmutableList());
if (records.isEmpty()) {
throw new AdempiereException("@NoSelection@");
}
getResult().setRecordsToOpen(records, PickingConstants.WINDOWID_PickingView.toInt());
return MSG_OK;
}
Aggregations