001package org.nasdanika.html.model.bootstrap.gen; 002 003import org.nasdanika.common.ConsumerFactory; 004import org.nasdanika.common.Context; 005import org.nasdanika.common.FunctionFactory; 006import org.nasdanika.common.ProgressMonitor; 007import org.nasdanika.common.Supplier; 008import org.nasdanika.common.SupplierFactory; 009import org.nasdanika.html.bootstrap.BootstrapFactory; 010 011public class TableSupplierFactoryAdapter extends BootstrapElementSupplierFactoryAdapter<org.nasdanika.html.model.bootstrap.Table, org.nasdanika.html.bootstrap.Table> { 012 013 public TableSupplierFactoryAdapter(org.nasdanika.html.model.bootstrap.Table table) { 014 super(table); 015 } 016 017 /** 018 * Creates a table, configuration shall be performed in {@link TableCellConsumerFactoryAdapter}. 019 * @param context 020 * @return 021 */ 022 protected Supplier<org.nasdanika.html.HTMLElement<?>> createTableSupplier(Context context) { 023 return new Supplier<org.nasdanika.html.HTMLElement<?>>() { 024 025 @Override 026 public double size() { 027 return 1; 028 } 029 030 @Override 031 public String name() { 032 return "Bootstrap table"; 033 } 034 035 @Override 036 public org.nasdanika.html.HTMLElement<?> execute(ProgressMonitor progressMonitor) throws Exception { 037 return context.get(BootstrapFactory.class, BootstrapFactory.INSTANCE).table().toHTMLElement(); 038 } 039 040 }; 041 } 042 043 @Override 044 protected Supplier<org.nasdanika.html.bootstrap.Table> createBootstrapElementSupplier(Context context) throws Exception { 045 046 SupplierFactory<org.nasdanika.html.HTMLElement<?>> tableSupplierFactory = this::createTableSupplier; 047 ConsumerFactory<org.nasdanika.html.HTMLElement<?>> tableConsumerFactory = new TableConsumerFactoryAdapter(getTarget()); 048 FunctionFactory<org.nasdanika.html.HTMLElement<?>,org.nasdanika.html.bootstrap.Table> unWrapperFactory = this::getWrapper; 049 050 return tableSupplierFactory.then(tableConsumerFactory.asFunctionFactory()).then(unWrapperFactory).create(context); 051 } 052 053}