title: How to set SashForm children default sizes
body: <p>I have a <code>SashForm</code>, and the objective is simply to make a form with 2 children: </p>
  
  <ul>
  <li>a table</li>
  <li>a side-menu for performing operations on the table</li>
  </ul>
  
  <p>The widths can be adjusted but I want to set an aesthetically-pleasing default.</p>
  
  <p>I want the table to be larger than the side menu when the form is loaded, something like a 75:25 ratio (currently the ratio is 50:50, which makes the side-menu way too big).</p>
  
  <p>I've tried absolutely everything to get the children to change size, but they simply won't do a thing. I've added layouts, I have used absolute positioning, I've toyed around with many different test values in each circumstance. I've looked at it over and over again, but it's no use. No matter what I do, I can't seem to affect the state of this widget or even figure out what the problem is. </p>
  
  <pre><code>    shell.setLayout(new FillLayout()); //stretch the form to fill the window
      sf = new SashForm(shell, SWT.NONE);
      GridLayout gl = new GridLayout(2,false);
  
      sf.setLayout(gl);
  
      fillComp = new Composite(sf, SWT.NONE);   //child 1: spreadsheet data
      opComp = new Composite (sf, SWT.BORDER);  //child 2: user operation panel
      opComp.setLayout(new FillLayout());
  
      GridData gd1 = new GridData(
              2, //test values - could be 200000 and it wouldn't make a difference
              2  //
              );
  
      GridData gd2 = new GridData(
              1, //test values
              1  //
              );
  
  
      //gd1.horizontalSpan = 2;  //blablabla
      //gd2.horizontalSpan = 1;  //all do nothing
      //gd1.minimumWidth = 600;    //tested a variety of variables, setting them
      //gd2.minimumWidth = 200;    //to a variety of values
  
      fillComp.setLayoutData(gd1);
      opComp.setLayoutData(gd2);
  
      sf.pack();        //these do nothing
      fillComp.pack();  //
      opComp.pack();    //
  </code></pre>
  
  <p>And I have a listener attached to <code>fillComp</code>, on event, it activates this:</p>
  
  <pre><code>    try {
          displayTable.setBounds(fillComp.getClientArea());
      } catch (Exception ex) { }
  </code></pre>
  
  <p>The listener can be removed and it doesn't affect the width of the two widgets.</p>
  
  <p>I could post a half a dozen different code blocks, all of which have failed to even make the layout change in the slightest. I could change the parent's layout, but that just makes this layout much smaller but still quite equally-unalterable.</p>
  
  <p>Please provide insight if you can. I've read all the tutorials and code snippets, but absolutely nothing makes a difference to this one particular widget.</p>
  
  <p>P.S. This gives an error:</p>
  
  <pre><code>sf.setWeights(new int[] { 3, 1 });
  </code></pre>
  
  <blockquote>
  <pre><code>Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Argument not valid
  </code></pre>
  </blockquote>