Code:
  public FillToolItem() {    setElement(DOM.createDiv());
    
    BoxLayoutData data = new BoxLayoutData();
    data.setFlex(1.0);
    setLayoutData(data);
  }
but in BoxLayoutContainer:
Code:
  @UiChild(tagname = "child")  public void add(IsWidget child, BoxLayoutData layoutData) {
    if (child != null) {
      child.asWidget().setLayoutData(layoutData);
    }
    super.add(child);
  }
By default "layoutData" is "null".
So, it clears BoxLayoutData set in FillToolItem constructor.