package com.eas.ui;
import com.google.gwt.dom.client.Style;
public class MarginConstraints {
public static class Margin {
public int value;
public Style.Unit unit = Style.Unit.PX;
public Margin() {
super();
}
public Margin(int aValue, Style.Unit aUnit) {
super();
value = aValue;
unit = aUnit;
}
public void setPlainValue(int aValue, int aContainerSize) {
if (unit == Style.Unit.PX)
value = aValue;
else
value = Math.round((float) aValue / (float) aContainerSize * 100);
}
public int getPlainValue(int aContainerSize) {
if (unit == Style.Unit.PX)
return value;
else
return Math.round((float) value / (float) 100 * (float) aContainerSize);
}
public static Margin parse(String aDefinition) {
String definition = aDefinition.toLowerCase();
Style.Unit unit;
int value;
if (definition.endsWith(Style.Unit.PX.getType())) {
value = Integer.valueOf(aDefinition.substring(0, aDefinition.length() - 2));
unit = Style.Unit.PX;
} else if (definition.endsWith(Style.Unit.PCT.getType())) {
value = Integer.valueOf(aDefinition.substring(0, aDefinition.length() - 1));
unit = Style.Unit.PCT;
} else {
value = Integer.valueOf(definition);
unit = Style.Unit.PX;
}
return new Margin(value, unit);
}
}
private Margin left;
private Margin top;
private Margin right;
private Margin bottom;
private Margin width;
private Margin height;
public Margin getLeft() {
return left;
}
public void setLeft(Margin aLeft) {
left = aLeft;
}
public Margin getTop() {
return top;
}
public void setTop(Margin aTop) {
top = aTop;
}
public Margin getRight() {
return right;
}
public void setRight(Margin aRight) {
right = aRight;
}
public Margin getBottom() {
return bottom;
}
public void setBottom(Margin aBottom) {
bottom = aBottom;
}
public Margin getWidth() {
return width;
}
public void setWidth(Margin aWidth) {
width = aWidth;
}
public Margin getHeight() {
return height;
}
public void setHeight(Margin aHeight) {
height = aHeight;
}
}