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