Re: [Java-gnome-developer] Using TreeView isgnals with Glade
Brought to you by:
afcowie
From: Khiraly <khi...@gm...> - 2005-05-01 20:30:35
|
Finally I have a working code. But I have questions too. Here is the example code: -------------------- userlistTree = (TreeView) puliApp.getWidget("userlistTree"); // userlist tree userlistTree.addListener(new TreeViewListener() { public void treeViewEvent(TreeViewEvent event) { System.out.println("DoubleClick "+event); } }); DataColumn[] dc = new DataColumn[3]; dc[0] = new DataColumnBoolean(); dc[1] = new DataColumnPixbuf(); dc[2] = new DataColumnString(); ListStore ls = new ListStore( dc ); userlistTree.setModel( ls ); userlistTree.setHeadersVisible( false ); /* true by default */ TreeViewColumn col0 = new TreeViewColumn(); CellRendererToggle render0 = new CellRendererToggle(); col0.packStart(render0, true); col0.addAttributeMapping(render0,CellRendererToggle.Attribute.ACTIVE,(DataColumnBoolean)dc[0]); TreeViewColumn col1 = new TreeViewColumn(); CellRendererPixbuf render1 = new CellRendererPixbuf(); col0.packStart(render1, true); col0.addAttributeMapping(render1,CellRendererPixbuf.Attribute.PIXBUF,(DataColumnPixbuf)dc[1]); TreeViewColumn col2 = new TreeViewColumn(); CellRendererText render2 = new CellRendererText(); col0.packStart(render2, true); col0.addAttributeMapping(render2,CellRendererText.Attribute.TEXT,(DataColumnString)dc[2]); userlistTree.appendColumn(col0); userlistTree.appendColumn(col1); userlistTree.appendColumn(col2); TreeIter it = null; boolean bool = true; it = ls.appendRow(); ls.setValue(it, (DataColumnBoolean)dc[0], Boolean.valueOf( bool ).booleanValue() ); try { ls.setValue(it, (DataColumnPixbuf)dc[1], new Pixbuf("images/me.jpg") ); } catch(JGException e) { System.err.println( "image not found : "+e.getMessage() ); } ls.setValue(it, (DataColumnString)dc[2], "[HUN]Khiraly" ); ------------------------------ My question is about the above code example is this three lines: userlistTree.appendColumn(col0); userlistTree.appendColumn(col1); userlistTree.appendColumn(col2); All this three line generate an treeViewEvent(TreeViewEvent event) method call. My program start to print three times the method's output: DoubleClick org.gnu.gtk.event.TreeViewEvent[source=org.gnu.gtk.TreeView@17471e0,id=COLUMNS_CHANGED] DoubleClick org.gnu.gtk.event.TreeViewEvent[source=org.gnu.gtk.TreeView@17471e0,id=COLUMNS_CHANGED] DoubleClick org.gnu.gtk.event.TreeViewEvent[source=org.gnu.gtk.TreeView@17471e0,id=COLUMNS_CHANGED] Of course, after if I double click on the item of treeview, It prints the above message. Why userlistTree.appendColumn generates a doubleclick signal? All the appendColumn will generate a doubleclick signal in the future? Best regards, Khiraly |