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