+ listeners : {
+ button_press_event : function (self, ev) {
+
+
+ var res = { };
+
+ if (!this.el.get_path_at_pos(ev.button.x,ev.button.y, res)) {
+ return false; //not on a element.
+ }
+
+ // right click.
+ if (ev.type == Gdk.EventType.BUTTON_PRESS && ev.button.button == 3) {
+ // show popup!.
+ if (res.column.title == 'value' && this.get('/LeftPanel').editing) {
+ return false;
+ }
+ //if (! this.get('/LeftPanelPopup')LeftPanelPopup.el) LeftPanelPopup.init();
+ var p = this.get('/LeftPanelPopup');
+ if (!p.el) {
+ p.init();
+ }
+
+ p.el.set_screen(Gdk.Screen.get_default());
+ p.el.show_all();
+ p.el.popup(null, null, null, null, 3, ev.button.time);
+ //Seed.print("click:" + res.column.title);
+
+
+ return false;
+ }
+
+
+ if (res.column.title != 'value') {
+ // XObject.error("column is not value?");
+ return false; // ignore.. - key click.. ??? should we do this??
+ }
+
+ // currently editing???
+ // if ( this.activePath) {
+
+ // this.activePath = false;
+ // stop editing!!!!
+ this.get('/LeftPanel').editableColumn.items[0].el.stop_editing();
+ this.get('/LeftPanel').editing = false;
+
+ // XObject.error("Currently editing?");
+ // return false;
+ // }
+
+ var renderer = this.get('/LeftPanel').editableColumn.items[0].el; // set has_entry..
+
+ var type = this.get('/LeftPanel.model').getType(res.path.to_string());
+
+ // get options for this type -- this is to support option lists etc..
+ var provider = this.get('/LeftTree').getPaleteProvider();
+ var opts = provider.findOptions(type);
+
+ if (opts === false) {
+ // it's text etnry
+ this.get('/LeftPanel').editableColumn.setOptions([]);
+ renderer.has_entry = true;
+ } else {
+ this.get('/LeftPanel').editableColumn.setOptions(opts);
+ renderer.has_entry = false;
+ }
+ this.get('/LeftPanel.model').startEditing(res.path.to_string(), 1);
+
+ //Seed.print("click" + ev.type);
+ //console.dump(res);
+ return false;
+
+
+
+ }
+ },