1 /*
2  * JasperReports - Free Java Reporting Library.
3  * Copyright (C) 2001 - 2019 TIBCO Software Inc. All rights reserved.
4  * http://www.jaspersoft.com
5  *
6  * Unless you have purchased a commercial license agreement from Jaspersoft,
7  * the following license terms apply:
8  *
9  * This program is part of JasperReports.
10  *
11  * JasperReports is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License as published by
13  * the Free Software Foundation, either version 3 of the License, or
14  * (at your option) any later version.
15  *
16  * JasperReports is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU Lesser General Public License for more details.
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * along with JasperReports. If not, see <http://www.gnu.org/licenses/>.
23  */

24 package net.sf.jasperreports.components.list;
25
26 import net.sf.jasperreports.engine.JRException;
27 import net.sf.jasperreports.engine.JRRuntimeException;
28 import net.sf.jasperreports.engine.component.Component;
29 import net.sf.jasperreports.engine.component.ComponentFillFactory;
30 import net.sf.jasperreports.engine.component.FillComponent;
31 import net.sf.jasperreports.engine.fill.JRFillCloneFactory;
32 import net.sf.jasperreports.engine.fill.JRFillObjectFactory;
33 import net.sf.jasperreports.engine.type.PrintOrderEnum;
34
35 /**
36  * Factory of {@link BaseFillList list fill component} instances.
37  * 
38  * @author Lucian Chirita (lucianc@users.sourceforge.net)
39  */

40 public class FillListFactory implements ComponentFillFactory
41 {
42
43     @Override
44     public FillComponent cloneFillComponent(FillComponent component,
45             JRFillCloneFactory factory)
46     {
47         return (FillComponent) ((BaseFillList) component).createClone(factory);
48     }
49
50     @Override
51     public FillComponent toFillComponent(Component component,
52             JRFillObjectFactory factory)
53     {
54         try
55         {
56             ListComponent list = (ListComponent) component;
57             FillComponent fillList;
58             PrintOrderEnum printOrder = list.getPrintOrderValue();
59             if (printOrder == null 
60                     || printOrder == PrintOrderEnum.VERTICAL)
61             {
62                 fillList = new VerticalFillList(list, factory);
63             }
64             else
65             {
66                 fillList = new HorizontalFillList(list, factory);
67             }
68             return fillList;
69         }
70         catch (JRException e)
71         {
72             throw new JRRuntimeException(e);
73         }
74     }
75
76 }
77