Search in sources :

Example 1 with IViewRow

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;
}
Also used : JsonProperty(com.fasterxml.jackson.annotation.JsonProperty) JSONLayoutWidgetType(de.metas.ui.web.window.datatypes.json.JSONLayoutWidgetType) GuavaCollectors(org.adempiere.util.GuavaCollectors) DocumentId(de.metas.ui.web.window.datatypes.DocumentId) ViewEditorRenderMode(de.metas.ui.web.window.descriptor.ViewEditorRenderMode) Visibility(com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility) WindowId(de.metas.ui.web.window.datatypes.WindowId) JsonAutoDetect(com.fasterxml.jackson.annotation.JsonAutoDetect) Function(java.util.function.Function) Collectors(java.util.stream.Collectors) Value(lombok.Value) LinkedHashMap(java.util.LinkedHashMap) JSONDocumentBase(de.metas.ui.web.window.datatypes.json.JSONDocumentBase) List(java.util.List) IViewRow(de.metas.ui.web.view.IViewRow) Map(java.util.Map) ViewRowOverridesHelper(de.metas.ui.web.view.ViewRowOverridesHelper) DocumentFieldWidgetType(de.metas.ui.web.window.descriptor.DocumentFieldWidgetType) IViewRowOverrides(de.metas.ui.web.view.IViewRowOverrides) JsonInclude(com.fasterxml.jackson.annotation.JsonInclude) JSONDocumentField(de.metas.ui.web.window.datatypes.json.JSONDocumentField) ViewId(de.metas.ui.web.view.ViewId) ViewId(de.metas.ui.web.view.ViewId) List(java.util.List) LinkedHashMap(java.util.LinkedHashMap) Map(java.util.Map) IViewRow(de.metas.ui.web.view.IViewRow) JSONDocumentField(de.metas.ui.web.window.datatypes.json.JSONDocumentField)

Example 2 with IViewRow

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;
}
Also used : ViewBasedProcessTemplate(de.metas.ui.web.process.adprocess.ViewBasedProcessTemplate) NonNull(lombok.NonNull) DocumentId(de.metas.ui.web.window.datatypes.DocumentId) PickingConstants(de.metas.ui.web.picking.PickingConstants) Set(java.util.Set) Env(org.compiere.util.Env) Collectors(java.util.stream.Collectors) ProcessPreconditionsResolution(de.metas.process.ProcessPreconditionsResolution) MSG_WEBUI_PICKING_DIVERGING_LOCATIONS(de.metas.ui.web.picking.PickingConstants.MSG_WEBUI_PICKING_DIVERGING_LOCATIONS) I_M_Packageable_V(de.metas.inoutcandidate.model.I_M_Packageable_V) List(java.util.List) IViewRow(de.metas.ui.web.view.IViewRow) ImmutableList(com.google.common.collect.ImmutableList) AdempiereException(org.adempiere.exceptions.AdempiereException) MSG_WEBUI_PICKING_TOO_MANY_PACKAGEABLES_1P(de.metas.ui.web.picking.PickingConstants.MSG_WEBUI_PICKING_TOO_MANY_PACKAGEABLES_1P) TableRecordReference(org.adempiere.util.lang.impl.TableRecordReference) IProcessPrecondition(de.metas.process.IProcessPrecondition) DocumentIdsSelection(de.metas.ui.web.window.datatypes.DocumentIdsSelection) JSONLookupValue(de.metas.ui.web.window.datatypes.json.JSONLookupValue) ProcessPreconditionsResolution(de.metas.process.ProcessPreconditionsResolution) TableRecordReference(org.adempiere.util.lang.impl.TableRecordReference) AdempiereException(org.adempiere.exceptions.AdempiereException) DocumentIdsSelection(de.metas.ui.web.window.datatypes.DocumentIdsSelection) DocumentId(de.metas.ui.web.window.datatypes.DocumentId)

Aggregations

IViewRow (de.metas.ui.web.view.IViewRow)2 DocumentId (de.metas.ui.web.window.datatypes.DocumentId)2 List (java.util.List)2 Collectors (java.util.stream.Collectors)2 JsonAutoDetect (com.fasterxml.jackson.annotation.JsonAutoDetect)1 Visibility (com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility)1 JsonInclude (com.fasterxml.jackson.annotation.JsonInclude)1 JsonProperty (com.fasterxml.jackson.annotation.JsonProperty)1 ImmutableList (com.google.common.collect.ImmutableList)1 I_M_Packageable_V (de.metas.inoutcandidate.model.I_M_Packageable_V)1 IProcessPrecondition (de.metas.process.IProcessPrecondition)1 ProcessPreconditionsResolution (de.metas.process.ProcessPreconditionsResolution)1 PickingConstants (de.metas.ui.web.picking.PickingConstants)1 MSG_WEBUI_PICKING_DIVERGING_LOCATIONS (de.metas.ui.web.picking.PickingConstants.MSG_WEBUI_PICKING_DIVERGING_LOCATIONS)1 MSG_WEBUI_PICKING_TOO_MANY_PACKAGEABLES_1P (de.metas.ui.web.picking.PickingConstants.MSG_WEBUI_PICKING_TOO_MANY_PACKAGEABLES_1P)1 ViewBasedProcessTemplate (de.metas.ui.web.process.adprocess.ViewBasedProcessTemplate)1 IViewRowOverrides (de.metas.ui.web.view.IViewRowOverrides)1 ViewId (de.metas.ui.web.view.ViewId)1 ViewRowOverridesHelper (de.metas.ui.web.view.ViewRowOverridesHelper)1 DocumentIdsSelection (de.metas.ui.web.window.datatypes.DocumentIdsSelection)1