package gw.exportimport.web uses gw.api.util.LocaleUtil uses gw.entity.IEntityType uses gw.exportimport.EntityFlowMask uses gw.exportimport.EntityInfo uses java.util.List /** * Helper class responsible for handling the drop-down inputs * on the ExcelExportPopup. */ @ReadOnly class ExportMaskUtil { private construct() { } /** * Finds all the {@link ExportMaskData}s to display in the "Export" input */ static property get MaskData() : ExportMaskData[] { return EntityInfo.Registry.getRegisteredEntityTypes() .map(\ t -> new ExportMaskData() {:EntityType = t, :Name = t.Name}) .orderBy(\ n -> n.Name).toTypedArray() } /** * Finds all the {@link ExportMaskDataFormat}s to display in the "Format" input. The result * depends on the value of the Export input. Options are sorted by name with an additional "All" * option at the bottom. */ static function getFormats(selectedMaskData : ExportMaskData) : List { var type = selectedMaskData.EntityType var maskResults = EntityFlowMask.getEntityFlowMaskData(type as IEntityType) var formats = maskResults.map(\ data -> ExportMaskDataFormat.ofFlowMaskData(data)) formats.orderBy(\ f -> f.Mask.Name) formats.add(ExportMaskDataFormat.ofAll()) return formats } /** * Finds the default {@link EntityFlowMaskData} for given entity type and * wraps it in a {@link ExportMaskDataFormat}. If no default has been * specified, it returns the "All" option. */ static function findDefaultMaskDataFormat(selectedMaskData : ExportMaskData) : ExportMaskDataFormat { var type = selectedMaskData.EntityType var maskResults = EntityFlowMask.getEntityFlowMaskData(type as IEntityType) var defaultMaskData = maskResults.firstWhere(\ m -> m.Default.ID != null) return (defaultMaskData == null) ? ExportMaskDataFormat.ofAll() : ExportMaskDataFormat.ofFlowMaskData(defaultMaskData) } static property get SupportedLanguages() : List { return LocaleUtil.getAllLanguages() } static property get SupportedLocales() : List { return LocaleUtil.getAllLocales() } }