View Javadoc
1   /*
2   * Copyright 2012-2025 Christophe Friederich
3   *
4   * Licensed under the Apache License, Version 2.0 (the "License");
5   * you may not use this file except in compliance with the License.
6   * You may obtain a copy of the License at
7   *
8   * http://www.apache.org/licenses/LICENSE-2.0
9   *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16  package org.devacfr.maven.skins.reflow.model;
17  
18  import javax.annotation.Nonnull;
19  import org.devacfr.maven.skins.reflow.ISkinConfig;
20  
21  /**
22   * Represents the scoll top component.
23   *
24   * @author devacfr
25   * @since 2.0
26   */
27  public class ScrollTop extends Component {
28  
29    /** */
30    private final boolean smooth;
31  
32    /**
33     * Default constructor.
34     *
35     * @param config
36     *          a config (can <b>not</b> be {@code null}).
37     */
38    public ScrollTop(final @Nonnull ISkinConfig config) {
39      super(config);
40      this.smooth = config.getPropertyValue("smoothScroll", Boolean.class, true);
41      if (isSmooth()) {
42        this.addCssOptions("scrolltop-smooth-enabled");
43      }
44    }
45  
46    /**
47     * Gets the indicating whether the scrolling is smooth.
48     *
49     * @return Returns {@code true} whether the scrolling is smooth, otherwise returns {@code false}.
50     */
51    public boolean isSmooth() {
52      return smooth;
53    }
54  }