You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

VMarginInfo.java 1.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /*
  2. @ITMillApache2LicenseForJavaFiles@
  3. */
  4. package com.vaadin.terminal.gwt.client.ui;
  5. import java.io.Serializable;
  6. @SuppressWarnings("serial")
  7. public class VMarginInfo implements Serializable {
  8. private static final int TOP = 1;
  9. private static final int RIGHT = 2;
  10. private static final int BOTTOM = 4;
  11. private static final int LEFT = 8;
  12. private int bitMask;
  13. public VMarginInfo(int bitMask) {
  14. this.bitMask = bitMask;
  15. }
  16. public VMarginInfo(boolean top, boolean right, boolean bottom, boolean left) {
  17. setMargins(top, right, bottom, left);
  18. }
  19. public void setMargins(boolean top, boolean right, boolean bottom,
  20. boolean left) {
  21. bitMask = top ? TOP : 0;
  22. bitMask += right ? RIGHT : 0;
  23. bitMask += bottom ? BOTTOM : 0;
  24. bitMask += left ? LEFT : 0;
  25. }
  26. public void setMargins(VMarginInfo marginInfo) {
  27. bitMask = marginInfo.bitMask;
  28. }
  29. public boolean hasLeft() {
  30. return (bitMask & LEFT) == LEFT;
  31. }
  32. public boolean hasRight() {
  33. return (bitMask & RIGHT) == RIGHT;
  34. }
  35. public boolean hasTop() {
  36. return (bitMask & TOP) == TOP;
  37. }
  38. public boolean hasBottom() {
  39. return (bitMask & BOTTOM) == BOTTOM;
  40. }
  41. public int getBitMask() {
  42. return bitMask;
  43. }
  44. public void setMargins(boolean enabled) {
  45. if (enabled) {
  46. bitMask = TOP + RIGHT + BOTTOM + LEFT;
  47. } else {
  48. bitMask = 0;
  49. }
  50. }
  51. @Override
  52. public boolean equals(Object obj) {
  53. if (!(obj instanceof VMarginInfo)) {
  54. return false;
  55. }
  56. return ((VMarginInfo) obj).bitMask == bitMask;
  57. }
  58. }