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