title: Wrap abel within a composite
body: <p>I have <code>ScrolledComposite</code> which allows only vertical scrolling. (<code>heighthint = 400</code>).</p>
  
  <p>Within this ScrolledComposite, I have another <code>CompositeA</code> (height may exceed 400 for scrolling) to store all other widgets.</p>
  
  <p>I have a very long label (with <code>SWT.WRAP</code> enabled). But instead of wrapping, it is always showing in a single line. I want this label to wrap according to the width of its parent (<code>CompositeA</code>)</p>
  
  <p>I forgot to add that this <code>CompositeA</code> is a 2 column <code>GridLayout</code> with <code>makeColumnsEqualWidth = true</code>.</p>
  
  <p>Here is my code:</p>
  
  <pre><code>public void createPartControl(Composite parent) {
      // TODO Auto-generated method stub
  
      Display display = parent.getDisplay();
  
      toolkit = new FormToolkit(display);
      form = toolkit.createForm(parent);
      form.setText("ABC");
  
      Composite body = form.getBody();
  
      TableWrapLayout layout = new TableWrapLayout();
      layout.numColumns = 2;
      body.setLayout(layout);
  
      Label header1 = toolkit.createLabel(body, "ABC: ");
      Font font = new Font(display, "Arial", 11, SWT.BOLD);
      header1.setFont(font);
  
      Label header2 = toolkit.createLabel(body, "XYZ",
              SWT.WRAP);
      font = new Font(display, "Arial", 11, SWT.NONE);
      header2.setFont(font);
  
      TableWrapData wd = new TableWrapData(TableWrapData.FILL_GRAB);      
      header2.setLayoutData(wd);
  
      form.getBody().setBackground(
              form.getBody().getDisplay()
                      .getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
  
      // Scrolled composite
      ScrolledComposite sc = new ScrolledComposite(body, SWT.BORDER_SOLID
              | SWT.V_SCROLL);
      sc.setAlwaysShowScrollBars(true);
      sc.setBackground(new Color(display, 50,255,155));
  
  
      wd = new TableWrapData(TableWrapData.FILL); 
      wd.heightHint = 360;
      wd.colspan = 2;
      wd.grabHorizontal = false;
      sc.setLayoutData(wd);
  
      sc.setLayout(new TableWrapLayout());
  
      Composite innerComposite = toolkit.createComposite(sc);
      sc.setContent(innerComposite);
  
      innerComposite.setLayout(new TableWrapLayout());
      innerComposite.setBackground(new Color(display, 255,50,50));
  
      Section section = toolkit.createSection(innerComposite,
              Section.DESCRIPTION | Section.TITLE_BAR | Section.EXPANDED);
      wd = new TableWrapData(TableWrapData.FILL);
      wd.maxWidth = 600; // don't want to hardcode this value
  
      section.setLayoutData(wd);
      section.setText("Section");
      section.setDescription("A not so long description......................");
  
      // Composite for Section
      Composite sectionClient = toolkit.createComposite(section);
      layout = new TableWrapLayout();
      layout.numColumns = 2;
      layout.makeColumnsEqualWidth = true;
      sectionClient.setLayout(layout);
  
      toolkit.createButton(sectionClient, "Button 1", SWT.RADIO);
  
      Label rightDesc = toolkit
              .createLabel(
                      sectionClient,
                      "A very long long long long long long long long long long long long long long long long long long long long desc that needs wrapping",
                      SWT.WRAP);
      font = new Font(display, "Arial", 10, SWT.ITALIC);
      rightDesc.setFont(font);
      wd = new TableWrapData();
      wd.rowspan = 2;
      rightDesc.setLayoutData(wd);
  
      Combo comboDropDown = new Combo(sectionClient, SWT.DROP_DOWN
              | SWT.BORDER);
      comboDropDown.setText("DDL");
      comboDropDown.add("1");
      comboDropDown.add("2");
      comboDropDown.add("3");
  
      Label lineBreak = toolkit.createSeparator(sectionClient, SWT.SEPARATOR
              | SWT.HORIZONTAL);
      wd = new TableWrapData(TableWrapData.FILL);
      wd.colspan = 2;
      lineBreak.setLayoutData(wd);
  
      /***********************/
  
      toolkit.createButton(sectionClient, "Button 2", SWT.RADIO);
  
      Label rightDesc2 = toolkit
              .createLabel(
                      sectionClient,
                      "A long long long long long long long long long long long long long long long long long long long long desc that needs wrapping",
                      SWT.WRAP);
      font = new Font(display, "Arial", 10, SWT.ITALIC);
      rightDesc2.setFont(font);
      wd = new TableWrapData(TableWrapData.FILL);
      wd.rowspan = 3;
      rightDesc2.setLayoutData(wd);
  
      toolkit.createLabel(sectionClient, "Desc",
              SWT.WRAP);
      toolkit.createText(sectionClient, "hello world", SWT.NONE);
  
      section.setClient(sectionClient);
  
      innerComposite.pack();
  
  }
  </code></pre>
  
  <p>If you run it, you can see a green scrolledcomposite and a red composite. I want the red composite width to fill to the width of the scrolledcomposite relatively without hardcoding <code>maxWidth = 600</code>.</p>