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