Program: 66781
Project: 66781
Buggy source:
/** 
 * main() method for constructing the selector layout.
 * @param args
 */
public static void main(String[] args){
  Display display=Display.getDefault();
  Shell shell=new Shell(display);
  shell.setSize(800,600);
  shell.setLayout(new GridLayout());
  SwtChartViewerSelector scv=new SwtChartViewerSelector(shell,SWT.NO_BACKGROUND);
  scv.setLayoutData(new GridData(GridData.FILL_BOTH));
  scv.addPaintListener(scv);
  Composite cBottom=new Composite(shell,SWT.NONE);
  cBottom.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
  cBottom.setLayout(new RowLayout());
  Label la=new Label(cBottom,SWT.NONE);
  la.setText("String_Node_Str");
  cbType=new Combo(cBottom,SWT.DROP_DOWN | SWT.READ_ONLY);
  String[] models=PrimitiveCharts.getAvailableModelList();
  for (int i=0; i < models.length; i++) {
    cbType.add(models[i]);
  }
  cbType.select(0);
  cbDimension=new Combo(cBottom,SWT.DROP_DOWN | SWT.READ_ONLY);
  cbDimension.add("String_Node_Str");
  cbDimension.add("String_Node_Str");
  cbDimension.select(0);
  cbTransposed=new Button(cBottom,SWT.CHECK);
  cbTransposed.setText("String_Node_Str");
  cbPercent=new Button(cBottom,SWT.CHECK);
  cbPercent.setText("String_Node_Str");
  cbLogarithmic=new Button(cBottom,SWT.CHECK);
  cbLogarithmic.setText("String_Node_Str");
  btn=new Button(cBottom,SWT.NONE);
  btn.setText("String_Node_Str");
  btn.addSelectionListener(scv);
  shell.setText(scv.getClass().getName() + "String_Node_Str" + scv.idr.getClass().getName()+ "String_Node_Str");
  shell.open();
  while (!shell.isDisposed()) {
    if (!display.readAndDispatch())     display.sleep();
  }
  display.dispose();
}

Fixed version (ground truth):
/** 
 * main() method for constructing the selector layout.
 * @param args
 */
public static void main(String[] args){
  Display display=Display.getDefault();
  Shell shell=new Shell(display);
  shell.setSize(800,600);
  shell.setLayout(new GridLayout());
  SwtChartViewerSelector scv=new SwtChartViewerSelector(shell,SWT.NO_BACKGROUND);
  scv.setLayoutData(new GridData(GridData.FILL_BOTH));
  scv.addPaintListener(scv);
  Composite cBottom=new Composite(shell,SWT.NONE);
  cBottom.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
  cBottom.setLayout(new RowLayout());
  Label la=new Label(cBottom,SWT.NONE);
  la.setText("String_Node_Str");
  cbType=new Combo(cBottom,SWT.DROP_DOWN | SWT.READ_ONLY);
  String[] models=PrimitiveCharts.getAvailableModelList();
  for (int i=0; i < models.length; i++) {
    cbType.add(models[i]);
  }
  cbType.select(0);
  cbType.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      int index=cbType.getSelectionIndex();
      if (index == 7) {
        cbTransposed.setSelection(false);
        cbTransposed.setEnabled(false);
        cbLogarithmic.setEnabled(true);
      }
 else       if (index == 10) {
        cbTransposed.setEnabled(true);
        cbLogarithmic.setSelection(false);
        cbLogarithmic.setEnabled(false);
      }
 else {
        cbTransposed.setEnabled(true);
        cbLogarithmic.setEnabled(true);
      }
    }
  }
);
  cbDimension=new Combo(cBottom,SWT.DROP_DOWN | SWT.READ_ONLY);
  cbDimension.add("String_Node_Str");
  cbDimension.add("String_Node_Str");
  cbDimension.select(0);
  cbTransposed=new Button(cBottom,SWT.CHECK);
  cbTransposed.setText("String_Node_Str");
  cbPercent=new Button(cBottom,SWT.CHECK);
  cbPercent.setText("String_Node_Str");
  cbLogarithmic=new Button(cBottom,SWT.CHECK);
  cbLogarithmic.setText("String_Node_Str");
  btn=new Button(cBottom,SWT.NONE);
  btn.setText("String_Node_Str");
  btn.addSelectionListener(scv);
  shell.setText(scv.getClass().getName() + "String_Node_Str" + scv.idr.getClass().getName()+ "String_Node_Str");
  shell.open();
  while (!shell.isDisposed()) {
    if (!display.readAndDispatch())     display.sleep();
  }
  display.dispose();
}