View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.devacfr.maven.skins.reflow.model;
20  
21  import javax.annotation.Nonnull;
22  import javax.annotation.Nullable;
23  
24  import com.google.common.base.Strings;
25  
26  /**
27   * Describe a Bootstrap component.
28   *
29   * @author devacfr
30   * @since 2.0
31   */
32  public abstract class BsComponent extends Component {
33  
34      /** */
35      private final String component;
36  
37      /** */
38      private String theme = "light";
39  
40      /** */
41      private String background = "light";
42  
43      /**
44       * Default constructor.
45       *
46       * @param component
47       *            the bootstrap component name.
48       */
49      public BsComponent(final String component) {
50          this.component = component;
51      }
52  
53      @Override
54      @Nonnull
55      public String getCssClass() {
56          String css = "";
57          if (!Strings.isNullOrEmpty(getTheme())) {
58              css += component + "-" + getTheme() + " ";
59          }
60          if (!Strings.isNullOrEmpty(getBackground())) {
61              css += "bg-" + getBackground() + " ";
62          }
63          if (!Strings.isNullOrEmpty(super.getCssClass())) {
64              css += super.getCssClass();
65          }
66          return css.trim();
67      }
68  
69      /**
70       * @return Returns a {@link String} representing the bootstrap theme to apply.
71       */
72      public String getTheme() {
73          return theme;
74      }
75  
76      /**
77       * @param theme
78       *            a bootstrap theme to use.
79       */
80      protected void setTheme(@Nullable final String theme) {
81          this.theme = theme;
82      }
83  
84      /**
85       * @return Returns a {@link String} representing the bootstrap background color to apply.
86       */
87      public String getBackground() {
88          return background;
89      }
90  
91      /**
92       * @param background
93       *            a bootstrap background colour to use.
94       */
95      protected void setBackground(@Nullable final String background) {
96          this.background = background;
97      }
98  }