package org.vaadin.viritin; import com.vaadin.server.SizeWithUnit; import com.vaadin.server.Sizeable; import java.io.Serializable; /** * Created on 23/09/2015. * * @author Panos Bariamis */ public class MSize implements Serializable { private static final long serialVersionUID = 1L; public static final MSize FULL_WIDTH = MSize.width(100, Sizeable.Unit.PERCENTAGE); public static final MSize FULL_HEIGHT = MSize.height(100, Sizeable.Unit.PERCENTAGE); public static final MSize FULL_SIZE = MSize.size(100, Sizeable.Unit.PERCENTAGE, 100, Sizeable.Unit.PERCENTAGE); public static final MSize HALF_WIDTH = MSize.width(50, Sizeable.Unit.PERCENTAGE); public static final MSize HALF_HEIGHT = MSize.height(50, Sizeable.Unit.PERCENTAGE); public static final MSize HALF_SIZE = MSize.size(50, Sizeable.Unit.PERCENTAGE, 50, Sizeable.Unit.PERCENTAGE); private float width = -1; private float height = -1; private Sizeable.Unit widthUnit = Sizeable.Unit.PIXELS; private Sizeable.Unit heightUnit = Sizeable.Unit.PIXELS; private MSize(float width, Sizeable.Unit widthUnit, float height, Sizeable.Unit heightUnit) { this.width = width; this.widthUnit = widthUnit; this.height = height; this.heightUnit = heightUnit; } public float getWidth() { return width; } public Sizeable.Unit getWidthUnit() { return widthUnit; } public float getHeight() { return height; } public Sizeable.Unit getHeightUnit() { return heightUnit; } public static MSize width(float width, Sizeable.Unit widthUnit) { return new MSize(width, widthUnit, -1, Sizeable.Unit.PIXELS); } public static MSize width(String width) { SizeWithUnit size = SizeWithUnit.parseStringSize(width); return size != null ? new MSize(size.getSize(), size.getUnit(), -1, Sizeable.Unit.PIXELS) : new MSize(-1, Sizeable.Unit.PIXELS, -1, Sizeable.Unit.PIXELS); } public static MSize height(float height, Sizeable.Unit heightUnit) { return new MSize(-1, Sizeable.Unit.PIXELS, height, heightUnit); } public static MSize height(String height) { SizeWithUnit size = SizeWithUnit.parseStringSize(height); return size != null ? new MSize(-1, Sizeable.Unit.PIXELS, size.getSize(), size.getUnit()) : new MSize(-1, Sizeable.Unit.PIXELS, -1, Sizeable.Unit.PIXELS); } public static MSize size(float width, Sizeable.Unit widthUnit, float height, Sizeable.Unit heightUnit) { return new MSize(width, widthUnit, height, heightUnit); } public static MSize size(String width, String height) { float w = -1, h = -1; Sizeable.Unit wu = Sizeable.Unit.PIXELS, hu = Sizeable.Unit.PIXELS; SizeWithUnit size = SizeWithUnit.parseStringSize(width); if (size != null) { w = size.getSize(); wu = size.getUnit(); } size = SizeWithUnit.parseStringSize(height); if (size != null) { h = size.getSize(); hu = size.getUnit(); } return new MSize(w, wu, h, hu); } }