protected Point computeSize(Composite composite, int wHint, int hHint, boolean flushCache) {
   CoolScrolledComposite sc = (CoolScrolledComposite) composite.getParent();
   Point size = new Point(DEFAULT_WIDTH, DEFAULT_HEIGHT);
   if (sc.content != null) {
     Point preferredSize = sc.content.computeSize(wHint, hHint, flushCache);
     Point currentSize = sc.content.getSize();
     size.x = sc.getExpandHorizontal() ? preferredSize.x : currentSize.x;
     size.y = sc.getExpandVertical() ? preferredSize.y : currentSize.y;
   }
   size.x = Math.max(size.x, sc.minWidth);
   size.y = Math.max(size.y, sc.minHeight);
   if (wHint != SWT.DEFAULT) size.x = wHint;
   if (hHint != SWT.DEFAULT) size.y = hHint;
   return size;
 }