/**
  * if debugging is enabled (see {@link Debug}), debug info is set to the widget as tooltip and/or
  * decoration. Can be overridden by subclass to add specific debug info
  *
  * @param widget widget to apply debug info to
  */
 protected void setDebugInfo(RCPWidget widget) {
   if (Debug.layout()) {
     String debugInfo = ""; // $NON-NLS-1$
     if (widget instanceof RCPControl) {
       if (widget instanceof RCPComposite) {
         Layout layout = ((RCPComposite) widget).getClientComposite().getLayout();
         if (layout != null) {
           debugInfo +=
               widget.getId()
                   + ".layout = "
                   + layout.toString()
                   + "\n"; //$NON-NLS-1$ //$NON-NLS-2$
         }
       }
       RCPControl control = (RCPControl) widget;
       Object layoutData = control.getSWTControl().getLayoutData();
       if (layoutData != null) {
         debugInfo +=
             widget.getId()
                 + ".layoutData = "
                 + layoutData.toString()
                 + "\n"; //$NON-NLS-1$ //$NON-NLS-2$
       }
       control.getSWTControl().setToolTipText(debugInfo);
     }
   }
 }
  /**
   * Synchronizes this Composite's layout with the given GridLayoutRule's data. Ensures that, at the
   * end of the method execution, all children of the Composite have a layout's data either null or
   * of type GridData.
   */
  public static void platformSpecificRefresh(Object containerView, GridLayoutRule rule) {
    assert rule != null;
    if (!(containerView instanceof SWTContainerView)) return;
    final Composite context = (Composite) ((SWTContainerView) containerView).getContentPane();
    if (context == null || context.isDisposed()) return;

    final Layout previousLayout = context.getLayout();
    context.setLayout(convertIntoSWTGridLayout(rule));

    // we check if we changed the type of the layout
    if (previousLayout == null && context.getLayout() == null) return;
    if (previousLayout != null
        && context.getLayout() != null
        && previousLayout.getClass().equals(context.getLayout().getClass())) return;

    for (Control child : context.getChildren())
      if (!(child.getLayoutData() instanceof GridData)) {
        Object data = child.getData(SWTWidgetView.WAZAABI_HOST_KEY);
        if (data instanceof AbstractComponentEditPart)
          child.setLayoutData(
              GridDataStyleRuleManager.getFirstGridData((AbstractComponentEditPart) data));
      }
  }