title: NatTable mix of fixed width column and on resizable filling remaining space
body: <p>How to make a Nebula NatTable with mix of fixed columns and one remaining filling up all the available vertical space and where, crucially, the fixed width column cold be user resized?</p>
  
  <p>Visual example:</p>
  
  <pre><code>+-----------------------------------------+-------+-------+
  |     ...fills available vert space...    | 100px | 100px |
  </code></pre>
  
  <p>User resizes middle column by pushing border between columns 0 and 1 to the left:</p>
  
  <pre><code>+---------------------------------------+----------+-------+
  |     ...fills available vert space...  |   120px  | 100px |
  </code></pre>
  
  <p>User resizes 3rd column by pushing border between columns 1 and 2 to the left:</p>
  
  <pre><code>+------------------------------------+----------+----------+
  |   ...fills available vert space... |   120px  |   120px  |
  </code></pre>
  
  <p>I got very close with this code:</p>
  
  <pre><code>    IRowDataProvider&lt;String&gt; bodyDataProvider = ...;
      DataLayer bodyDataLayer = new DataLayer(bodyDataProvider);
      SelectionLayer selectionLayer = new SelectionLayer(bodyDataLayer, false);
      ViewportLayer viewportLayer = new ViewportLayer(selectionLayer);
  
      bodyDataLayer.setColumnPercentageSizing(0, true);
      bodyDataLayer.setColumnPositionResizable(0, true);
  
      bodyDataLayer.setColumnWidthByPosition(1, 100);
      bodyDataLayer.setColumnPositionResizable(1, true);
  
      bodyDataLayer.setColumnWidthByPosition(2, 100);
      bodyDataLayer.setColumnPositionResizable(2, true);
  </code></pre>
  
  <p>It does visually what was intended, it reacts on container (Shell) resizing as intended too; that is fixed columns remain 100px and only the first column resizes. So far good. But there is a problem: something bad happens to the inter-column resizing. I just reacts weirdly. Resizing handler (header border) between columns 0 and 1 does not do anything, only appears resizing but resizing is not executed; resizing handler between columns 1 and 2 reacts but only column 1 can be effectively resized, column 2 always retains its size, whatever you do.</p>
  
  <p><em>Example of the bad behaviour: you want to resize column 2 (3rd column), to make it larger; you grab the border between column 1 and 2, dragging the border to the <strong>left</strong> with intention to make column 2 larger by effectively pushing column 1 to the left too. But instead column 2 stays the same while column 1 shrinks!</em></p>
  
  <p><strong>UPDATE</strong></p>
  
  <p>My question is how to implement desired behaviour. What and where I need to set or re-implement? Customize <code>SizeConfig</code>? Methods in there sounds promising: <code>calculatePercentages()</code> and <code>calculateAvailableSpace()</code>. Who and when is calling them? How to catch column resize event? DO I need to set listener somewhere? How I can make NatTable to use a customized <code>SizeConfig</code>?
  Am I on the right track?</p>