001package org.nasdanika.html.model.bootstrap.gen;
002
003import org.eclipse.emf.common.notify.AdapterFactory;
004import org.nasdanika.common.Consumer;
005import org.nasdanika.common.Context;
006import org.nasdanika.common.Function;
007import org.nasdanika.common.ProgressMonitor;
008import org.nasdanika.html.Tag;
009import org.nasdanika.html.model.bootstrap.Slide;
010
011public class SlideSupplierFactoryAdapter extends DivSupplierFactoryAdapter<Slide> {
012        
013        public SlideSupplierFactoryAdapter(Slide slide, AdapterFactory adapterFactory) {
014                super(slide, adapterFactory);
015        }
016        
017        @Override
018        protected Function<org.nasdanika.html.Tag, org.nasdanika.html.Tag> createConfigureFunction(Context context) {
019                
020                @SuppressWarnings("resource")
021                Consumer<org.nasdanika.html.Tag> slideConsumer = new Consumer<Tag>() {
022                        
023                        @Override
024                        public double size() {
025                                return 1;
026                        }
027                        
028                        @Override
029                        public String name() {
030                                return "Slide";
031                        }
032                        
033                        @Override
034                        public void execute(Tag tag, ProgressMonitor progressMonitor) {
035                                tag.addClass("carousel-item");
036                                Integer interval = getTarget().getInterval();
037                                if (interval != null) {
038                                        tag.attribute("data-interval", interval);
039                                }
040                                
041                                // TODO - Captions.
042                        }
043                };
044                
045                // TODO - Captions list factory, slide function.
046                                
047                return super.createConfigureFunction(context).then(slideConsumer.asFunction());
048        }
049
050}