More on Listener Output

Barry Denton basse42 at yahoo.com
Mon Apr 21 15:51:12 PDT 2008


 Here is a simpler table to compile and test event returns.
 The "set data" listener should return details of each item set in the table. It returns 9 empty events rather than 10 with details.
 
 The ""Selection " listener should also return an event containing info but does not.
 
What is the cause? It seems to be in Event?

-----------------------------------------------
module tabletester;
import dwt.DWT;
import dwt.widgets.Display;
import dwt.widgets.Shell;
import dwt.layout.GridLayout;
import dwt.widgets.Button;
import dwt.widgets.Table;
import dwt.widgets.TableItem;
import dwt.widgets.Listener;
import dwt.widgets.Event;
import dwt.widgets.Shell;
import tango.time.WallClock;
import tango.io.Stdout;
import tango.text.locale.Locale;
import tango.util.Convert;

void main () {
  Display display = new Display ();
  Shell shell = new Shell (display);
  shell.setText("Tester");
  GridLayout gridLayout = new GridLayout();
  shell.setLayout(gridLayout);
  auto clock = new WallClock;
  auto layout = new Locale;

  Table table= new Table(shell, DWT.VIRTUAL | DWT.MULTI | DWT.HORIZONTAL | DWT.BORDER |DWT.H_SCROLL|DWT.V_SCROLL| DWT.FULL_SELECTION );
  const int COUNT = 10;
  char [][COUNT] itemFields ;
  for (int i = 0; i < COUNT; i++) {
      itemFields [i] = ( "item " ~ to!(char[]) (i)) ~ "  ";      }
  table.addListener(DWT.SetData, new class Listener {
    void handleEvent(Event event) {
      TableItem tableitem = cast (TableItem)event.item;
      int index = event.index;
      tableitem.setText(itemFields [index]);
}   }  );
  table.setItemCount(COUNT);
  table.setEnabled=true;
  table.setVisible(true);
  table.setSize(200, 200);
  
  Button button = new Button(shell, DWT.PUSH | DWT.BORDER);
  button.setText("Change item at index 5");
  button.setEnabled(true);    
  button.setVisible(true);    
  button.setBounds(400, 120, 50, 70); 
  button.addListener(DWT.Selection, new class Listener {
    void handleEvent(Event event) {
      itemFields [5] = ("item has changed ");
      Stdout.formatln("{}",event);
      Stdout.print(itemFields).newline;
      table.clear(5);   }  }); 
  table.addListener(DWT.SetData, new class Listener {
    void handleEvent(Event event) {
       Stdout.formatln("{}" , event);
       TableItem t = cast (TableItem)event.item;
       t.setText(itemFields [event.index]);  }   }  );
  table.addListener(DWT.Selection, new class Listener {
    void handleEvent(Event event) {
      Stdout.print(event).newline;
      Stdout.print(itemFields).newline;
}  }); 

   shell.pack();

  shell.open();	
  while (!shell.isDisposed ()) {
  if (!display.readAndDispatch ()) display.sleep ();
}
display.dispose ();
}
 
-----------------------------------------
Out..
Event {missing or misplaced '}'}Event {type=36 Table {} time=0 data={null} x=0 y=0 width=0 height=0 detail=0}
Event {missing or misplaced '}'}Event {type=36 Table {} time=0 data={null} x=0 y=0 width=0 height=0 detail=0}
Event {missing or misplaced '}'}Event {type=36 Table {} time=0 data={null} x=0 y=0 width=0 height=0 detail=0}
Event {missing or misplaced '}'}Event {type=36 Table {} time=0 data={null} x=0 y=0 width=0 height=0 detail=0}
Event {missing or misplaced '}'}Event {type=36 Table {} time=0 data={null} x=0 y=0 width=0 height=0 detail=0}
Event {missing or misplaced '}'}Event {type=36 Table {} time=0 data={null} x=0 y=0 width=0 height=0 detail=0}
Event {missing or misplaced '}'}Event {type=36 Table {} time=0 data={null} x=0 y=0 width=0 height=0 detail=0}
Event {missing or misplaced '}'}Event {type=36 Table {} time=0 data={null} x=0 y=0 width=0 height=0 detail=0}
Event {missing or misplaced '}'}Event {type=36 Table {} time=0 data={null} x=0 y=0 width=0 height=0 detail=0}
                                                                                                                


More information about the Digitalmars-d-learn mailing list