All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.webfirmframework.wffweb.css.css3.ColumnCount Maven / Gradle / Ivy

There is a newer version: 12.0.0
Show newest version
/*
 * Copyright 2014-2016 Web Firm Framework
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * @author WFF
 */
package com.webfirmframework.wffweb.css.css3;

import java.util.Arrays;
import java.util.List;

import com.webfirmframework.wffweb.InvalidValueException;
import com.webfirmframework.wffweb.NullValueException;
import com.webfirmframework.wffweb.css.CssNameConstants;
import com.webfirmframework.wffweb.css.core.AbstractCssProperty;
import com.webfirmframework.wffweb.util.TagStringUtil;

/**
 * 
 *  column-count: number|auto|initial|inherit;
 *
 * The column-count property specifies the number of columns an element should be divided into.
 * Default value:  auto
 * Inherited:      no
 * Animatable:     yes
 * Version:        CSS3
 * JavaScript syntax:      object.style.columnCount=3
 * 
* * @author WFF * @since 1.0.0 */ public class ColumnCount extends AbstractCssProperty { private static final long serialVersionUID = 1_0_0L; public static final String INITIAL = "initial"; public static final String INHERIT = "inherit"; public static final String AUTO = "auto"; private static final List PREDEFINED_CONSTANTS = Arrays .asList(INITIAL, INHERIT, AUTO); private String cssValue; private Integer value; /** * The default value 1 will be set as the cssValue. * * @author WFF * @since 1.0.0 */ public ColumnCount() { cssValue = AUTO; } /** * @param cssValue * the css value to set. */ public ColumnCount(final String cssValue) { setCssValue(cssValue); } /** * @param columnCounttCss * the {@code Opacity} object from which the cssValue to set.And, * {@code null} will throw {@code NullValueException} */ public ColumnCount(final ColumnCount columnCount) { if (columnCount == null) { throw new NullValueException("columnCount can not be null"); } setCssValue(columnCount.getCssValue()); } /** * @param value * @param cssLengthUnit */ public ColumnCount(final int value) { this.value = value; cssValue = String.valueOf(value); } /* * (non-Javadoc) * * @see com.webfirmframework.wffweb.css.CssProperty#getCssName() * * @since 1.0.0 * * @author WFF */ @Override public String getCssName() { return CssNameConstants.COLUMN_COUNT; } /* * (non-Javadoc) * * @see com.webfirmframework.wffweb.css.CssProperty#getCssValue() * * @since 1.0.0 * * @author WFF */ @Override public String getCssValue() { return cssValue; } @Override public String toString() { return getCssName() + ": " + getCssValue(); } /** * gets the columnCount in {@code Integer} value. * * @return the value in int or null if the cssValue is initial * or inherit. * @since 1.0.0 * @author WFF */ public Integer getValue() { return value; } /** * @param value * the value to set * @author WFF * @since 1.0.0 */ public void setValue(final int value) { this.value = value; cssValue = String.valueOf(value); if (getStateChangeInformer() != null) { getStateChangeInformer().stateChanged(this); } } /** * @param cssValue * the value should be in the format of 0.5, * initial/inherit. {@code null} is considered as an * invalid value and it will throw {@code NullValueException}. * @since 1.0.0 * @author WFF */ @Override public ColumnCount setCssValue(final String cssValue) { final String previousCssValue = this.cssValue; try { if (cssValue == null) { throw new NullValueException( "null is an invalid value. The value format should be as for example 0.5, initial/inherit."); } else { final String trimmedCssValue = TagStringUtil .toLowerCase(cssValue.trim()); if (PREDEFINED_CONSTANTS.contains(trimmedCssValue)) { this.cssValue = trimmedCssValue; value = null; } else { try { value = Integer.valueOf(trimmedCssValue); this.cssValue = value.toString(); } catch (final NumberFormatException e) { throw new InvalidValueException(cssValue + " is an invalid value. The value format should be as for example 0.5, initial, inherit etc.."); } } } if (getStateChangeInformer() != null) { getStateChangeInformer().stateChanged(this); } } catch (final InvalidValueException e) { this.cssValue = previousCssValue; throw e; } return this; } /** * sets as {@code initial} * * @since 1.0.0 * @author WFF */ public void setAsInitial() { setCssValue(INITIAL); } /** * sets as {@code inherit} * * @since 1.0.0 * @author WFF */ public void setAsInherit() { setCssValue(INHERIT); } /** * sets as {@code auto} * * @since 1.0.0 * @author WFF */ public void setAsAuto() { setCssValue(AUTO); } /** * validates if the given cssValue is valid for this class. * * @param cssValue * the value to check. * @return true if valid and false if invalid. * @author WFF * @since 1.0.0 */ public static boolean isValid(final String cssValue) { final String trimmedCssValue = TagStringUtil .toLowerCase(cssValue.trim()); if (trimmedCssValue.contains(" ")) { return false; } try { final int parsedValue = Integer.parseInt(trimmedCssValue); return !(parsedValue == 0 && (trimmedCssValue.contains("-") || trimmedCssValue.contains("+"))); } catch (final NumberFormatException e) { } return PREDEFINED_CONSTANTS.contains(trimmedCssValue); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy