Program: 136769
Project: 136769
Buggy source:
@Override protected Control createDialogArea(Composite parent){
  redrewComp=(Composite)super.createDialogArea(parent);
  int style=SWT.NONE;
  style|=SWT.V_SCROLL;
  style|=SWT.H_SCROLL;
  style|=SWT.BORDER;
  style|=SWT.SINGLE;
  gridPrview=new ColumnPreviewGrid(this,redrewComp,style,modelElementIndicators,this.limitNumber);
  gridIndicator=new IndicatorSelectGrid(this,redrewComp,style,modelElementIndicators);
  gridIndicator.setHeaderVisible(false);
  gridIndicator.addObserver(gridPrview);
  gridPrview.addObserver(gridIndicator);
  gridPrview.getParent().addControlListener(new ControlAdapter(){
    @Override public void controlResized(    ControlEvent e){
      GridData indicatorGridData=(GridData)gridIndicator.getLayoutData();
      GridData previewGridData=(GridData)gridPrview.getLayoutData();
      previewGridData.horizontalAlignment=SWT.FILL;
      previewGridData.minimumWidth=650;
      indicatorGridData.horizontalAlignment=SWT.FILL;
      indicatorGridData.minimumWidth=650;
      gridPrview.getParent().layout();
      if (gridIndicator.getVerticalBar().isVisible() ^ gridPrview.getVerticalBar().isVisible()) {
        if (gridPrview.getVerticalBar().isVisible()) {
          indicatorGridData.widthHint=gridPrview.getBounds().width - 70;
          indicatorGridData.minimumWidth=gridPrview.getBounds().width - 70;
          indicatorGridData.horizontalAlignment=SWT.BEGINNING;
        }
 else {
          previewGridData.widthHint=gridIndicator.getBounds().width - 70;
          previewGridData.minimumWidth=gridIndicator.getBounds().width - 70;
          previewGridData.horizontalAlignment=SWT.BEGINNING;
        }
        gridPrview.getParent().layout();
      }
    }
  }
);
  GridData previewGridData=new GridData(SWT.FILL,SWT.FILL,true,true);
  previewGridData.minimumWidth=650;
  previewGridData.minimumHeight=gridPrview.getItemHeight() * 10 + gridPrview.getHeaderHeight();
  previewGridData.widthHint=Math.min(IndicatorSelectGrid.COLUMN_WIDTH * modelElementIndicators.length + 400,getParentShell().getClientArea().width - 350);
  previewGridData.heightHint=gridPrview.getHeaderHeight() + gridPrview.getItemHeight() * 10;
  GridData indicatorGridData=new GridData(SWT.FILL,SWT.FILL,true,true);
  indicatorGridData.minimumWidth=650;
  indicatorGridData.minimumHeight=gridIndicator.getItemHeight() * 10;
  indicatorGridData.widthHint=Math.min(IndicatorSelectGrid.COLUMN_WIDTH * modelElementIndicators.length + 400,getParentShell().getClientArea().width - 350);
  indicatorGridData.heightHint=getParentShell().getClientArea().height - previewGridData.heightHint;
  gridIndicator.setLayoutData(indicatorGridData);
  gridPrview.setLayoutData(previewGridData);
  Composite buttomComp=new Composite(redrewComp,SWT.BORDER);
  buttomComp.setLayout(new GridLayout());
  buttomComp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
  createHideInvalidItemButton(buttomComp);
  purposeLabel=new Label(buttomComp,SWT.WRAP);
  GridDataFactory.fillDefaults().grab(true,true).applyTo(purposeLabel);
  descriptionLabel=new Label(buttomComp,SWT.WRAP);
  GridDataFactory.fillDefaults().minSize(400,30).grab(true,true).applyTo(descriptionLabel);
  gridIndicator.redraw();
  return redrewComp;
}

Fixed version (ground truth):
@Override protected Control createDialogArea(Composite parent){
  redrewComp=(Composite)super.createDialogArea(parent);
  int style=SWT.NONE;
  style|=SWT.V_SCROLL;
  style|=SWT.H_SCROLL;
  style|=SWT.BORDER;
  style|=SWT.SINGLE;
  gridPrview=new ColumnPreviewGrid(this,redrewComp,style,modelElementIndicators,this.limitNumber);
  gridIndicator=new IndicatorSelectGrid(this,redrewComp,style,modelElementIndicators,gridPrview.getColumnsWidth());
  gridIndicator.setHeaderVisible(false);
  gridIndicator.addObserver(gridPrview);
  gridPrview.addObserver(gridIndicator);
  gridPrview.getParent().addControlListener(new ControlAdapter(){
    @Override public void controlResized(    ControlEvent e){
      GridData indicatorGridData=(GridData)gridIndicator.getLayoutData();
      GridData previewGridData=(GridData)gridPrview.getLayoutData();
      previewGridData.horizontalAlignment=SWT.FILL;
      previewGridData.minimumWidth=650;
      indicatorGridData.horizontalAlignment=SWT.FILL;
      indicatorGridData.minimumWidth=650;
      gridPrview.getParent().layout();
      if (gridIndicator.getVerticalBar().isVisible() ^ gridPrview.getVerticalBar().isVisible()) {
        if (gridPrview.getVerticalBar().isVisible()) {
          indicatorGridData.widthHint=gridPrview.getBounds().width - 70;
          indicatorGridData.minimumWidth=gridPrview.getBounds().width - 70;
          indicatorGridData.horizontalAlignment=SWT.BEGINNING;
        }
 else {
          previewGridData.widthHint=gridIndicator.getBounds().width - 70;
          previewGridData.minimumWidth=gridIndicator.getBounds().width - 70;
          previewGridData.horizontalAlignment=SWT.BEGINNING;
        }
        gridPrview.getParent().layout();
      }
    }
  }
);
  GridData previewGridData=new GridData(SWT.FILL,SWT.FILL,true,true);
  previewGridData.minimumWidth=650;
  previewGridData.minimumHeight=gridPrview.getItemHeight() * 10 + gridPrview.getHeaderHeight();
  previewGridData.widthHint=Math.min(IndicatorSelectGrid.COLUMN_WIDTH * modelElementIndicators.length + 400,getParentShell().getClientArea().width - 350);
  previewGridData.heightHint=gridPrview.getHeaderHeight() + gridPrview.getItemHeight() * 10;
  GridData indicatorGridData=new GridData(SWT.FILL,SWT.FILL,true,true);
  indicatorGridData.minimumWidth=650;
  indicatorGridData.minimumHeight=gridIndicator.getItemHeight() * 10;
  indicatorGridData.widthHint=Math.min(IndicatorSelectGrid.COLUMN_WIDTH * modelElementIndicators.length + 400,getParentShell().getClientArea().width - 350);
  indicatorGridData.heightHint=getParentShell().getClientArea().height - previewGridData.heightHint;
  gridIndicator.setLayoutData(indicatorGridData);
  gridPrview.setLayoutData(previewGridData);
  Composite buttomComp=new Composite(redrewComp,SWT.BORDER);
  buttomComp.setLayout(new GridLayout());
  buttomComp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
  createHideInvalidItemButton(buttomComp);
  purposeLabel=new Label(buttomComp,SWT.WRAP);
  GridDataFactory.fillDefaults().grab(true,true).applyTo(purposeLabel);
  descriptionLabel=new Label(buttomComp,SWT.WRAP);
  GridDataFactory.fillDefaults().minSize(400,30).grab(true,true).applyTo(descriptionLabel);
  gridIndicator.redraw();
  return redrewComp;
}