NewBranch.bjs
[gitlive] / NewBranch.vala
1 static NewBranch  _NewBranch;
2
3 public class NewBranch : Object
4 {
5     public Gtk.Dialog el;
6     private NewBranch  _this;
7
8     public static NewBranch singleton()
9     {
10         if (_NewBranch == null) {
11             _NewBranch= new NewBranch();
12         }
13         return _NewBranch;
14     }
15     public Xcls_label_select_ticket label_select_ticket;
16     public Xcls_label_create_ticket label_create_ticket;
17     public Xcls_label_quick_commit label_quick_commit;
18     public Xcls_select_ticket_tab select_ticket_tab;
19     public Xcls_projectsel projectsel;
20     public Xcls_prcellrenderer prcellrenderer;
21     public Xcls_prmodel prmodel;
22     public Xcls_ticketsel ticketsel;
23     public Xcls_dbcellrenderer dbcellrenderer;
24     public Xcls_dbmodel dbmodel;
25     public Xcls_name name;
26     public Xcls_branchbtn branchbtn;
27     public Xcls_btn_not_me btn_not_me;
28     public Xcls_btn_closed btn_closed;
29     public Xcls_scrolled_window scrolled_window;
30     public Xcls_view view;
31     public Xcls_create_ticket_tab create_ticket_tab;
32     public Xcls_table table;
33     public Xcls_project_id project_id;
34     public Xcls_tprcellrenderer tprcellrenderer;
35     public Xcls_tprmodel tprmodel;
36     public Xcls_summary summary;
37     public Xcls_milestone_id milestone_id;
38     public Xcls_msmodel msmodel;
39     public Xcls_description description;
40     public Xcls_priority_id priority_id;
41     public Xcls_primodel primodel;
42     public Xcls_severity_id severity_id;
43     public Xcls_sevmodel sevmodel;
44     public Xcls_classification_id classification_id;
45     public Xcls_clmodel clmodel;
46     public Xcls_developer_id developer_id;
47     public Xcls_devmodel devmodel;
48     public Xcls_quick_commit_tab quick_commit_tab;
49     public Xcls_commit_message commit_message;
50     public Xcls_createbtn createbtn;
51     public Xcls_diff_view diff_view;
52
53         // my vars (def)
54     public GitRepo? repo;
55     public bool running;
56     public Gee.ArrayList<GitMonitorQueue> queue;
57
58     // ctor
59     public NewBranch()
60     {
61         _this = this;
62         this.el = new Gtk.Dialog();
63
64         // my vars (dec)
65         this.repo = null;
66         this.running = false;
67         this.queue = null;
68
69         // set gobject values
70         this.el.title = "Create a working branch ";
71         this.el.default_height = 500;
72         this.el.default_width = 500;
73         this.el.deletable = true;
74         this.el.modal = true;
75         var child_0 = new Xcls_Notebook2( _this );
76         child_0.ref();
77         this.el.get_content_area().add (  child_0.el  );
78
79         //listeners
80         this.el.delete_event.connect( (self, event) => {
81             this.el.hide();
82             return true; 
83             //test  
84         });
85         this.el.response.connect( (self, response_id) =>  { 
86           
87                 GLib.debug("got %d", (int) response_id);
88                 
89                  
90                 
91                  
92                 // have they selected a ticket..
93                 // make that the current active ticket?
94                 // we really need to store locally what ticket is being worked on..
95                 // in theory we could be working on multiple project and not merging..
96                 // -- each repo would have their active ticket (only one per repo)
97                 // -- so we could just store that in there
98                 // -- initial load can check the contents of the ticket files on first scan.
99         
100                  
101                 if (response_id < 1) {
102                     _this.el.hide();    
103                     this.running = false; 
104                         return;
105                 }
106                 
107                 var ticket_id = _this.ticketsel.selectedTicketId();
108                 
109             if (this.repo != null) {
110                 var bn = _this.name.el.get_text();
111         
112                         var res = this.repo.setActiveTicket(                    
113                                  RooTicket.singleton().getById(ticket_id != "" ? ticket_id : "-1"), bn
114                          );
115                          if (res) {
116                                 // start the monitoring..
117                                  GitMonitor.gitmonitor.start();
118                                  
119                          }
120             }
121              
122         
123             this.running = false; 
124         
125                 this.el.hide();
126                  
127                  
128         
129                  
130         });
131     }
132
133     // user defined functions
134     public   void show ( GitRepo repo, Gee.ArrayList<GitMonitorQueue> queue, string tid = "" ) 
135     {
136          // this.el.set_gravity(Gdk.Gravity.NORTH);
137         if (this.running) { // should not happen!!
138                 GLib.error("new branch show called, when already being displayed?");
139         }
140         
141         
142         this.queue = queue;
143         this.running  = true;
144         GitMonitor.gitmonitor.stop();
145         
146         
147         this.repo = repo;
148         this.el.move((Gdk.Screen.width() / 2)- 250 ,0);
149         this.el.set_default_size( 500,200); // not sure why it grows..
150         
151         
152         
153         
154          
155     
156         this.el.show_all();
157         this.el.set_keep_above(true);
158         
159         _this.select_ticket_tab.load_data(tid);
160         _this.create_ticket_tab.load_data();
161         _this.quick_commit_tab.load_data();
162        
163        
164         
165         
166         
167         
168         
169         this.el.run();
170     
171     }
172     public class Xcls_Notebook2 : Object
173     {
174         public Gtk.Notebook el;
175         private NewBranch  _this;
176
177
178             // my vars (def)
179
180         // ctor
181         public Xcls_Notebook2(NewBranch _owner )
182         {
183             _this = _owner;
184             this.el = new Gtk.Notebook();
185
186             // my vars (dec)
187
188             // set gobject values
189             this.el.vexpand = true;
190             var child_0 = new Xcls_label_select_ticket( _this );
191             child_0.ref();
192             var child_1 = new Xcls_label_create_ticket( _this );
193             child_1.ref();
194             var child_2 = new Xcls_label_quick_commit( _this );
195             child_2.ref();
196             var child_3 = new Xcls_select_ticket_tab( _this );
197             child_3.ref();
198             this.el.append_page (  child_3.el , _this.label_select_ticket.el );
199             var child_4 = new Xcls_create_ticket_tab( _this );
200             child_4.ref();
201             this.el.append_page (  child_4.el , _this.label_create_ticket.el );
202             var child_5 = new Xcls_quick_commit_tab( _this );
203             child_5.ref();
204             this.el.append_page (  child_5.el , _this.label_quick_commit.el );
205         }
206
207         // user defined functions
208     }
209     public class Xcls_label_select_ticket : Object
210     {
211         public Gtk.Label el;
212         private NewBranch  _this;
213
214
215             // my vars (def)
216
217         // ctor
218         public Xcls_label_select_ticket(NewBranch _owner )
219         {
220             _this = _owner;
221             _this.label_select_ticket = this;
222             this.el = new Gtk.Label( "Select Existing Ticket to work on" );
223
224             // my vars (dec)
225
226             // set gobject values
227         }
228
229         // user defined functions
230     }
231
232     public class Xcls_label_create_ticket : Object
233     {
234         public Gtk.Label el;
235         private NewBranch  _this;
236
237
238             // my vars (def)
239
240         // ctor
241         public Xcls_label_create_ticket(NewBranch _owner )
242         {
243             _this = _owner;
244             _this.label_create_ticket = this;
245             this.el = new Gtk.Label( "Create a New Ticket" );
246
247             // my vars (dec)
248
249             // set gobject values
250         }
251
252         // user defined functions
253     }
254
255     public class Xcls_label_quick_commit : Object
256     {
257         public Gtk.Label el;
258         private NewBranch  _this;
259
260
261             // my vars (def)
262
263         // ctor
264         public Xcls_label_quick_commit(NewBranch _owner )
265         {
266             _this = _owner;
267             _this.label_quick_commit = this;
268             this.el = new Gtk.Label( "Quick Commit" );
269
270             // my vars (dec)
271
272             // set gobject values
273         }
274
275         // user defined functions
276     }
277
278     public class Xcls_select_ticket_tab : Object
279     {
280         public Gtk.Box el;
281         private NewBranch  _this;
282
283
284             // my vars (def)
285
286         // ctor
287         public Xcls_select_ticket_tab(NewBranch _owner )
288         {
289             _this = _owner;
290             _this.select_ticket_tab = this;
291             this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
292
293             // my vars (dec)
294
295             // set gobject values
296             this.el.homogeneous = false;
297             var child_0 = new Xcls_Table7( _this );
298             child_0.ref();
299             this.el.pack_start (  child_0.el , false,false,0 );
300             var child_1 = new Xcls_scrolled_window( _this );
301             child_1.ref();
302             this.el.add (  child_1.el  );
303         }
304
305         // user defined functions
306         public void load_data (string tid = "") {
307         
308             GLib.debug("Loading tickets"); 
309             
310             var curproj = RooProject.getProjectByRepo(_this.repo);
311              _this.prmodel.loadProjects(curproj == null ? "" : curproj.id);
312             
313                 _this.dbmodel.loadTickets(curproj == null ? "": curproj.id, tid);
314                 _this.branchbtn.updateState();
315                 
316                 _this.ticketsel.el.get_child().get_style_context().remove_class("warning");
317                 if (tid != "") { 
318                         var name = RooTicket.singleton().usernameLocal();
319                         var ticket = RooTicket.singleton().getById(tid);
320                         _this.name.el.set_text("wip_%s_T%s_%s".printf(name,ticket.id, ticket.summaryToBranchName()));
321                 } else {
322                         _this.ticketsel.el.get_child().get_style_context().add_class("warning");
323                 }
324             _this.view.loadTicket(tid);
325             
326             
327         }
328     }
329     public class Xcls_Table7 : Object
330     {
331         public Gtk.Table el;
332         private NewBranch  _this;
333
334
335             // my vars (def)
336
337         // ctor
338         public Xcls_Table7(NewBranch _owner )
339         {
340             _this = _owner;
341             this.el = new Gtk.Table( 5, 5, true );
342
343             // my vars (dec)
344
345             // set gobject values
346             this.el.expand = false;
347             this.el.margin = 2;
348             this.el.column_spacing = 4;
349             this.el.vexpand = false;
350             var child_0 = new Xcls_Label8( _this );
351             child_0.ref();
352             this.el.attach_defaults (  child_0.el , 0,1,0,1 );
353             var child_1 = new Xcls_Label9( _this );
354             child_1.ref();
355             this.el.attach_defaults (  child_1.el , 1,2,0,1 );
356             var child_2 = new Xcls_projectsel( _this );
357             child_2.ref();
358             this.el.attach_defaults (  child_2.el , 0,1,1,2 );
359             var child_3 = new Xcls_ticketsel( _this );
360             child_3.ref();
361             this.el.attach_defaults (  child_3.el , 1,5,1,2 );
362             var child_4 = new Xcls_Label16( _this );
363             child_4.ref();
364             this.el.attach_defaults (  child_4.el , 0,1,3,4 );
365             var child_5 = new Xcls_name( _this );
366             child_5.ref();
367             this.el.attach_defaults (  child_5.el , 0,4,4,5 );
368             var child_6 = new Xcls_branchbtn( _this );
369             child_6.ref();
370             this.el.attach_defaults (  child_6.el , 4,5,4,5 );
371             var child_7 = new Xcls_Box19( _this );
372             child_7.ref();
373             this.el.attach_defaults (  child_7.el , 0,5,2,3 );
374         }
375
376         // user defined functions
377     }
378     public class Xcls_Label8 : Object
379     {
380         public Gtk.Label el;
381         private NewBranch  _this;
382
383
384             // my vars (def)
385
386         // ctor
387         public Xcls_Label8(NewBranch _owner )
388         {
389             _this = _owner;
390             this.el = new Gtk.Label( "Project" );
391
392             // my vars (dec)
393
394             // set gobject values
395             this.el.halign = Gtk.Align.START;
396             this.el.justify = Gtk.Justification.RIGHT;
397             this.el.visible = true;
398         }
399
400         // user defined functions
401     }
402
403     public class Xcls_Label9 : Object
404     {
405         public Gtk.Label el;
406         private NewBranch  _this;
407
408
409             // my vars (def)
410
411         // ctor
412         public Xcls_Label9(NewBranch _owner )
413         {
414             _this = _owner;
415             this.el = new Gtk.Label( "Ticket" );
416
417             // my vars (dec)
418
419             // set gobject values
420             this.el.halign = Gtk.Align.START;
421             this.el.visible = true;
422         }
423
424         // user defined functions
425     }
426
427     public class Xcls_projectsel : Object
428     {
429         public Gtk.ComboBox el;
430         private NewBranch  _this;
431
432
433             // my vars (def)
434         public bool loading;
435
436         // ctor
437         public Xcls_projectsel(NewBranch _owner )
438         {
439             _this = _owner;
440             _this.projectsel = this;
441             this.el = new Gtk.ComboBox.with_entry();
442
443             // my vars (dec)
444             this.loading = false;
445
446             // set gobject values
447             var child_0 = new Xcls_prcellrenderer( _this );
448             child_0.ref();
449             this.el.pack_start (  child_0.el , true );
450             var child_1 = new Xcls_prmodel( _this );
451             child_1.ref();
452             this.el.set_model (  child_1.el  );
453
454             // init method
455
456             this.el.set_entry_text_column(1);
457
458             //listeners
459             this.el.changed.connect( () => {
460                 if (this.loading) {
461                         return;
462                 }
463                 var project_id = this.selectedProjectId();
464                 _this.dbmodel.loadTickets(project_id);
465                 
466                 
467                 /*if (this.loading) {
468                         return;
469                 }
470                 var ticket_id = this.selectedTicketId();
471                 
472                 var name = RooTicket.singleton().usernameLocal();
473                 
474                 if (ticket_id == "" || ticket_id == null) {
475                 
476                         var dt = new  DateTime.now_local();
477                         _this.name.el.set_text("wip_%s_%s".printf(name,dt.format("%Y_%b_%d")));
478                         return;
479                 }
480                 
481                 
482                 var ticket = RooTicket.singleton().getById(ticket_id);
483                
484                 _this.name.el.set_text("wip_%s_T%s_%s".printf(name,ticket.id, ticket.summaryToBranchName()));
485                 
486                 //GLib.debug (//"Selection: %s, %s\n", (string) val1, (string) val2);
487                 */
488             });
489         }
490
491         // user defined functions
492         public string selectedProjectId () {
493                 Gtk.TreeIter iter;
494                 Value val1;
495          
496          
497                 this.el.get_active_iter (out iter);
498                 _this.prmodel.el.get_value (iter, 0, out val1);
499          
500         
501                 return  (string) val1;
502                 
503                 
504                 
505                 
506         }
507     }
508     public class Xcls_prcellrenderer : Object
509     {
510         public Gtk.CellRendererText el;
511         private NewBranch  _this;
512
513
514             // my vars (def)
515
516         // ctor
517         public Xcls_prcellrenderer(NewBranch _owner )
518         {
519             _this = _owner;
520             _this.prcellrenderer = this;
521             this.el = new Gtk.CellRendererText();
522
523             // my vars (dec)
524
525             // set gobject values
526         }
527
528         // user defined functions
529     }
530
531     public class Xcls_prmodel : Object
532     {
533         public Gtk.ListStore el;
534         private NewBranch  _this;
535
536
537             // my vars (def)
538
539         // ctor
540         public Xcls_prmodel(NewBranch _owner )
541         {
542             _this = _owner;
543             _this.prmodel = this;
544             this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
545
546             // my vars (dec)
547
548             // set gobject values
549         }
550
551         // user defined functions
552         public void loadProjects (string id) {
553         
554         
555             
556             _this.projectsel.loading = true;
557         
558             this.el.clear();                                    
559             Gtk.TreeIter iter;
560             var el = this.el;
561             
562             el.append(out iter);
563         
564             
565             el.set_value(iter, 0, "");
566             el.set_value(iter, 1, "-- select a project --");
567             if (id == "") {
568                     _this.projectsel.el.set_active_iter(iter);
569             }
570           
571             foreach(var project in RooProject.projects()) {
572             
573                 el.append(out iter);
574                 
575                 el.set_value(iter, 0, project.id);
576                 el.set_value(iter, 1,  project.name );
577                 if (id == project.id) {
578                            _this.projectsel.el.set_active_iter(iter);
579                     }   
580                 
581             }
582             
583             _this.projectsel.loading = false;
584              //this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);          
585                                              
586         }
587     }
588
589
590     public class Xcls_ticketsel : Object
591     {
592         public Gtk.ComboBox el;
593         private NewBranch  _this;
594
595
596             // my vars (def)
597         public bool loading;
598
599         // ctor
600         public Xcls_ticketsel(NewBranch _owner )
601         {
602             _this = _owner;
603             _this.ticketsel = this;
604             this.el = new Gtk.ComboBox.with_entry();
605
606             // my vars (dec)
607             this.loading = false;
608
609             // set gobject values
610             var child_0 = new Xcls_dbcellrenderer( _this );
611             child_0.ref();
612             this.el.pack_start (  child_0.el , true );
613             var child_1 = new Xcls_dbmodel( _this );
614             child_1.ref();
615             this.el.set_model (  child_1.el  );
616
617             // init method
618
619             //this.el.add_attribute(_this.dbcellrenderer.el , "markup", 1 );
620             this.el.set_entry_text_column(1);
621             this.el.get_child().set_sensitive(false);
622
623             //listeners
624             this.el.changed.connect( () => {
625                 if (this.loading) {
626                         return;
627                 }
628                 var ticket_id = this.selectedTicketId();
629                 
630                 var name = RooTicket.singleton().usernameLocal();
631                 
632                 this.el.get_child().get_style_context().remove_class("warning");
633                 if (ticket_id == "" || ticket_id == null) {
634                 
635                         var dt = new  DateTime.now_local();
636                         _this.name.el.set_text("wip_%s_%s".printf(name,dt.format("%Y_%b_%d")));
637                         _this.view.loadTicket("");              
638                         
639                         this.el.get_child().get_style_context().add_class("warning");
640                         _this.createbtn.updateState();
641                         return;
642                 }
643                 
644                 
645                 var ticket = RooTicket.singleton().getById(ticket_id);
646                
647                 _this.name.el.set_text("wip_%s_T%s_%s".printf(name,ticket.id, ticket.summaryToBranchName()));
648                 _this.scrolled_window.el.show();
649                  
650                 _this.view.loadTicket(ticket.id);
651                 _this.branchbtn.updateState();
652                 
653                 //GLib.debug (//"Selection: %s, %s\n", (string) val1, (string) val2);
654             });
655         }
656
657         // user defined functions
658         public string selectedTicketId () {
659         Gtk.TreeIter iter;
660                 Value val1;
661          
662          
663                 this.el.get_active_iter (out iter);
664                 _this.dbmodel.el.get_value (iter, 0, out val1);
665          
666         
667                 return  (string) val1;
668                 
669                 
670                 
671                 
672         }
673     }
674     public class Xcls_dbcellrenderer : Object
675     {
676         public Gtk.CellRendererText el;
677         private NewBranch  _this;
678
679
680             // my vars (def)
681
682         // ctor
683         public Xcls_dbcellrenderer(NewBranch _owner )
684         {
685             _this = _owner;
686             _this.dbcellrenderer = this;
687             this.el = new Gtk.CellRendererText();
688
689             // my vars (dec)
690
691             // set gobject values
692         }
693
694         // user defined functions
695     }
696
697     public class Xcls_dbmodel : Object
698     {
699         public Gtk.ListStore el;
700         private NewBranch  _this;
701
702
703             // my vars (def)
704
705         // ctor
706         public Xcls_dbmodel(NewBranch _owner )
707         {
708             _this = _owner;
709             _this.dbmodel = this;
710             this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
711
712             // my vars (dec)
713
714             // set gobject values
715         }
716
717         // user defined functions
718         public void loadTickets (string project_id , string tid = "") {
719         
720         
721             
722             // fixme .. get project id from selection..
723             
724              RooTicket.singleton().loadTickets(
725                                 project_id,
726                                 _this.btn_not_me.el.active ? RooTicket.Who.ANYBODY :  RooTicket.Who.ME,
727                                  _this.btn_closed.el.active ? RooTicket.Status.ALL :  RooTicket.Status.ACTIVE
728                          );
729                 
730             _this.ticketsel.loading = true;
731         
732             this.el.clear();                                    
733             Gtk.TreeIter iter;
734             var el = this.el;
735             
736             el.append(out iter);
737         
738             
739             el.set_value(iter, 0, "");
740             el.set_value(iter, 1, "-- select a ticket --");
741             
742             _this.ticketsel.el.set_active_iter(iter);
743             var tickets = RooTicket.singleton().tickets;
744             foreach(var ticket in tickets) {
745             
746                 el.append(out iter);
747                 
748                 el.set_value(iter, 0, ticket.id);
749                 el.set_value(iter, 1, "#%s %s".printf( ticket.id, ticket.summary));
750                 
751                 if (ticket.id == tid) {
752                             _this.ticketsel.el.set_active_iter(iter);
753                 }
754                 
755             }
756             
757             _this.ticketsel.loading = false;
758              //this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);          
759                                              
760         }
761     }
762
763
764     public class Xcls_Label16 : Object
765     {
766         public Gtk.Label el;
767         private NewBranch  _this;
768
769
770             // my vars (def)
771
772         // ctor
773         public Xcls_Label16(NewBranch _owner )
774         {
775             _this = _owner;
776             this.el = new Gtk.Label( "Use this as branch name" );
777
778             // my vars (dec)
779
780             // set gobject values
781             this.el.halign = Gtk.Align.START;
782             this.el.justify = Gtk.Justification.RIGHT;
783             this.el.xalign = 0.900000f;
784         }
785
786         // user defined functions
787     }
788
789     public class Xcls_name : Object
790     {
791         public Gtk.Entry el;
792         private NewBranch  _this;
793
794
795             // my vars (def)
796
797         // ctor
798         public Xcls_name(NewBranch _owner )
799         {
800             _this = _owner;
801             _this.name = this;
802             this.el = new Gtk.Entry();
803
804             // my vars (dec)
805
806             // set gobject values
807             this.el.visible = true;
808         }
809
810         // user defined functions
811     }
812
813     public class Xcls_branchbtn : Object
814     {
815         public Gtk.Button el;
816         private NewBranch  _this;
817
818
819             // my vars (def)
820
821         // ctor
822         public Xcls_branchbtn(NewBranch _owner )
823         {
824             _this = _owner;
825             _this.branchbtn = this;
826             this.el = new Gtk.Button();
827
828             // my vars (dec)
829
830             // set gobject values
831             this.el.label = "Create Branch";
832
833             // init method
834
835             {
836                this.el.get_style_context().add_class("suggested-action");
837             }
838
839             //listeners
840             this.el.clicked.connect( () => {
841             
842                 GLib.debug("fire response = 1");
843                 
844                 var ticket_id = _this.ticketsel.selectedTicketId();
845                 
846                 if (ticket_id == "") {
847                         _this.ticketsel.el.get_child().get_style_context().add_class("warning");
848                         return;
849                 }
850                  
851                 _this.el.response(1);
852             });
853         }
854
855         // user defined functions
856         public void updateState () {
857         
858                 var ticket_id = _this.ticketsel.selectedTicketId();
859                 
860                 if (ticket_id == "") {
861                         this.el.set_sensitive(false);
862                         return;
863                 }
864          
865                 this.el.set_sensitive(true);
866          
867         }
868     }
869
870     public class Xcls_Box19 : Object
871     {
872         public Gtk.Box el;
873         private NewBranch  _this;
874
875
876             // my vars (def)
877
878         // ctor
879         public Xcls_Box19(NewBranch _owner )
880         {
881             _this = _owner;
882             this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
883
884             // my vars (dec)
885
886             // set gobject values
887             var child_0 = new Xcls_btn_not_me( _this );
888             child_0.ref();
889             this.el.add (  child_0.el  );
890             var child_1 = new Xcls_btn_closed( _this );
891             child_1.ref();
892             this.el.add (  child_1.el  );
893             var child_2 = new Xcls_Label22( _this );
894             child_2.ref();
895             this.el.add (  child_2.el  );
896         }
897
898         // user defined functions
899     }
900     public class Xcls_btn_not_me : Object
901     {
902         public Gtk.CheckButton el;
903         private NewBranch  _this;
904
905
906             // my vars (def)
907
908         // ctor
909         public Xcls_btn_not_me(NewBranch _owner )
910         {
911             _this = _owner;
912             _this.btn_not_me = this;
913             this.el = new Gtk.CheckButton();
914
915             // my vars (dec)
916
917             // set gobject values
918             this.el.label = "Show tickets not assigned to me";
919
920             //listeners
921             this.el.toggled.connect( () => {
922                 var project_id = _this.projectsel.selectedProjectId();
923                 _this.dbmodel.loadTickets(project_id);  
924             });
925         }
926
927         // user defined functions
928     }
929
930     public class Xcls_btn_closed : Object
931     {
932         public Gtk.CheckButton el;
933         private NewBranch  _this;
934
935
936             // my vars (def)
937
938         // ctor
939         public Xcls_btn_closed(NewBranch _owner )
940         {
941             _this = _owner;
942             _this.btn_closed = this;
943             this.el = new Gtk.CheckButton();
944
945             // my vars (dec)
946
947             // set gobject values
948             this.el.label = "Show closed Tickets";
949
950             //listeners
951             this.el.toggled.connect( () => {
952                 var project_id = _this.projectsel.selectedProjectId();
953                 _this.dbmodel.loadTickets(project_id);  
954                  
955             });
956         }
957
958         // user defined functions
959     }
960
961     public class Xcls_Label22 : Object
962     {
963         public Gtk.Label el;
964         private NewBranch  _this;
965
966
967             // my vars (def)
968
969         // ctor
970         public Xcls_Label22(NewBranch _owner )
971         {
972             _this = _owner;
973             this.el = new Gtk.Label( "<a href=\"refresh\">Refresh Ticket list</a>" );
974
975             // my vars (dec)
976
977             // set gobject values
978             this.el.halign = Gtk.Align.END;
979             this.el.hexpand = true;
980             this.el.use_markup = true;
981
982             //listeners
983             this.el.activate_link.connect( (uri) => {
984                 if (uri == "refresh") {
985                         RooProject.reload();
986                         var curproj = RooProject.getProjectByRepo(_this.repo);
987                          _this.prmodel.loadProjects(curproj == null ? "": curproj.id);
988             
989                         _this.dbmodel.loadTickets(curproj == null ? "": curproj.id);            
990                 }
991                 return true;
992             });
993         }
994
995         // user defined functions
996     }
997
998
999
1000     public class Xcls_scrolled_window : Object
1001     {
1002         public Gtk.ScrolledWindow el;
1003         private NewBranch  _this;
1004
1005
1006             // my vars (def)
1007
1008         // ctor
1009         public Xcls_scrolled_window(NewBranch _owner )
1010         {
1011             _this = _owner;
1012             _this.scrolled_window = this;
1013             this.el = new Gtk.ScrolledWindow( null, null );
1014
1015             // my vars (dec)
1016
1017             // set gobject values
1018             this.el.height_request = 500;
1019             this.el.vexpand = true;
1020             var child_0 = new Xcls_view( _this );
1021             child_0.ref();
1022             this.el.add (  child_0.el  );
1023
1024             // init method
1025
1026             {
1027                 this.el.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC);
1028             }
1029         }
1030
1031         // user defined functions
1032     }
1033     public class Xcls_view : Object
1034     {
1035         public WebKit.WebView el;
1036         private NewBranch  _this;
1037
1038
1039             // my vars (def)
1040
1041         // ctor
1042         public Xcls_view(NewBranch _owner )
1043         {
1044             _this = _owner;
1045             _this.view = this;
1046             this.el = new WebKit.WebView();
1047
1048             // my vars (dec)
1049
1050             // set gobject values
1051         }
1052
1053         // user defined functions
1054         public void loadTicket (string tid) {
1055                 int h,w;
1056                 _this.el.get_size(out w, out h);
1057                 
1058                 if (tid == "") {
1059                         _this.scrolled_window.el.hide();
1060                         _this.el.resize(w, 150);
1061                 } else {
1062                         _this.scrolled_window.el.show();
1063                         _this.el.resize(w, 800);
1064                 }
1065                 
1066                 var rs =  RooTicket.singleton();                
1067                 var uri = new WebKit.URIRequest("https://roojs.com/admin.php/MTrack/View/" + tid);
1068                 var hd = uri.get_http_headers();
1069                 var authCode = Base64.encode ("%s:%s".printf(rs.username, rs.password).data);
1070                 hd.append("Authorization", "Basic %s".printf(authCode));
1071                 
1072                  this.el.load_request(uri);
1073         }
1074     }
1075
1076
1077
1078     public class Xcls_create_ticket_tab : Object
1079     {
1080         public Gtk.Box el;
1081         private NewBranch  _this;
1082
1083
1084             // my vars (def)
1085
1086         // ctor
1087         public Xcls_create_ticket_tab(NewBranch _owner )
1088         {
1089             _this = _owner;
1090             _this.create_ticket_tab = this;
1091             this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
1092
1093             // my vars (dec)
1094
1095             // set gobject values
1096             this.el.homogeneous = false;
1097             var child_0 = new Xcls_table( _this );
1098             child_0.ref();
1099             this.el.pack_start (  child_0.el , false,false,0 );
1100         }
1101
1102         // user defined functions
1103         public return_type XXXX () {
1104         
1105         }
1106     }
1107     public class Xcls_table : Object
1108     {
1109         public Gtk.Table el;
1110         private NewBranch  _this;
1111
1112
1113             // my vars (def)
1114
1115         // ctor
1116         public Xcls_table(NewBranch _owner )
1117         {
1118             _this = _owner;
1119             _this.table = this;
1120             this.el = new Gtk.Table( 14, 4, true );
1121
1122             // my vars (dec)
1123
1124             // set gobject values
1125             this.el.expand = false;
1126             this.el.margin = 2;
1127             this.el.column_spacing = 4;
1128             this.el.vexpand = false;
1129             var child_0 = new Xcls_Label27( _this );
1130             child_0.ref();
1131             this.el.attach_defaults (  child_0.el , 0,1,0,1 );
1132             var child_1 = new Xcls_Label28( _this );
1133             child_1.ref();
1134             this.el.attach_defaults (  child_1.el , 1,2,0,1 );
1135             var child_2 = new Xcls_project_id( _this );
1136             child_2.ref();
1137             this.el.attach_defaults (  child_2.el , 0,1,1,2 );
1138             var child_3 = new Xcls_summary( _this );
1139             child_3.ref();
1140             this.el.attach_defaults (  child_3.el , 1,4,1,2 );
1141             var child_4 = new Xcls_Label33( _this );
1142             child_4.ref();
1143             this.el.attach_defaults (  child_4.el , 0,1,2,3 );
1144             var child_5 = new Xcls_milestone_id( _this );
1145             child_5.ref();
1146             this.el.attach_defaults (  child_5.el , 0,1,3,4 );
1147             var child_6 = new Xcls_Label36( _this );
1148             child_6.ref();
1149             this.el.attach_defaults (  child_6.el , 1,4,2,3 );
1150             var child_7 = new Xcls_description( _this );
1151             child_7.ref();
1152             this.el.attach_defaults (  child_7.el , 1,4,3,12 );
1153             var child_8 = new Xcls_Label38( _this );
1154             child_8.ref();
1155             this.el.attach_defaults (  child_8.el , 0,1,4,5 );
1156             var child_9 = new Xcls_priority_id( _this );
1157             child_9.ref();
1158             this.el.attach_defaults (  child_9.el , 0,1,5,6 );
1159             var child_10 = new Xcls_Label41( _this );
1160             child_10.ref();
1161             this.el.attach_defaults (  child_10.el , 0,1,6,7 );
1162             var child_11 = new Xcls_severity_id( _this );
1163             child_11.ref();
1164             this.el.attach_defaults (  child_11.el , 0,1,7,8 );
1165             var child_12 = new Xcls_Label44( _this );
1166             child_12.ref();
1167             this.el.attach_defaults (  child_12.el , 0,1,8,9 );
1168             var child_13 = new Xcls_classification_id( _this );
1169             child_13.ref();
1170             this.el.attach_defaults (  child_13.el , 0,1,9,10 );
1171             var child_14 = new Xcls_Label47( _this );
1172             child_14.ref();
1173             this.el.attach_defaults (  child_14.el , 0,1,10,11 );
1174             var child_15 = new Xcls_developer_id( _this );
1175             child_15.ref();
1176             this.el.attach_defaults (  child_15.el , 0,1,11,12 );
1177             var child_16 = new Xcls_Button50( _this );
1178             child_16.ref();
1179             this.el.attach_defaults (  child_16.el , 0,4,13,14 );
1180         }
1181
1182         // user defined functions
1183     }
1184     public class Xcls_Label27 : Object
1185     {
1186         public Gtk.Label el;
1187         private NewBranch  _this;
1188
1189
1190             // my vars (def)
1191
1192         // ctor
1193         public Xcls_Label27(NewBranch _owner )
1194         {
1195             _this = _owner;
1196             this.el = new Gtk.Label( "Project" );
1197
1198             // my vars (dec)
1199
1200             // set gobject values
1201             this.el.halign = Gtk.Align.START;
1202             this.el.visible = true;
1203         }
1204
1205         // user defined functions
1206     }
1207
1208     public class Xcls_Label28 : Object
1209     {
1210         public Gtk.Label el;
1211         private NewBranch  _this;
1212
1213
1214             // my vars (def)
1215
1216         // ctor
1217         public Xcls_Label28(NewBranch _owner )
1218         {
1219             _this = _owner;
1220             this.el = new Gtk.Label( "Summary" );
1221
1222             // my vars (dec)
1223
1224             // set gobject values
1225             this.el.halign = Gtk.Align.START;
1226             this.el.visible = true;
1227         }
1228
1229         // user defined functions
1230     }
1231
1232     public class Xcls_project_id : Object
1233     {
1234         public Gtk.ComboBox el;
1235         private NewBranch  _this;
1236
1237
1238             // my vars (def)
1239         public bool loading;
1240
1241         // ctor
1242         public Xcls_project_id(NewBranch _owner )
1243         {
1244             _this = _owner;
1245             _this.project_id = this;
1246             this.el = new Gtk.ComboBox.with_entry();
1247
1248             // my vars (dec)
1249             this.loading = false;
1250
1251             // set gobject values
1252             var child_0 = new Xcls_tprcellrenderer( _this );
1253             child_0.ref();
1254             this.el.pack_start (  child_0.el , true );
1255             var child_1 = new Xcls_tprmodel( _this );
1256             child_1.ref();
1257             this.el.set_model (  child_1.el  );
1258
1259             // init method
1260
1261             this.el.set_entry_text_column(1);
1262
1263             //listeners
1264             this.el.changed.connect( () => {
1265                 if (this.loading) {
1266                         return;
1267                 }
1268                 var project_id = this.selectedProjectId();
1269                 
1270                 var rt = RooTicket.singleton();
1271                 rt.loadProjectOptions(project_id);
1272                 
1273                 _this.msmodel.loadMilestones();
1274                 _this.primodel.loadPriorities();
1275                 _this.sevmodel.loadSeverities();
1276                 _this.clmodel.loadClassifications();    
1277                 _this.devmodel.loadDevelopers();        
1278                 
1279                 // affects projects and milestones..
1280                 
1281                 
1282                 /*if (this.loading) {
1283                         return;
1284                 }
1285                 var ticket_id = this.selectedTicketId();
1286                 
1287                 var name = RooTicket.singleton().usernameLocal();
1288                 
1289                 if (ticket_id == "" || ticket_id == null) {
1290                 
1291                         var dt = new  DateTime.now_local();
1292                         _this.name.el.set_text("wip_%s_%s".printf(name,dt.format("%Y_%b_%d")));
1293                         return;
1294                 }
1295                 
1296                 
1297                 var ticket = RooTicket.singleton().getById(ticket_id);
1298                
1299                 _this.name.el.set_text("wip_%s_T%s_%s".printf(name,ticket.id, ticket.summaryToBranchName()));
1300                 
1301                 //GLib.debug (//"Selection: %s, %s\n", (string) val1, (string) val2);
1302                 */
1303             });
1304         }
1305
1306         // user defined functions
1307         public string selectedProjectId () {
1308                 Gtk.TreeIter iter;
1309                 Value val1;
1310          
1311          
1312                 this.el.get_active_iter (out iter);
1313                 _this.tprmodel.el.get_value (iter, 0, out val1);
1314          
1315         
1316                 return  (string) val1;
1317                 
1318                 
1319                 
1320                 
1321         }
1322     }
1323     public class Xcls_tprcellrenderer : Object
1324     {
1325         public Gtk.CellRendererText el;
1326         private NewBranch  _this;
1327
1328
1329             // my vars (def)
1330
1331         // ctor
1332         public Xcls_tprcellrenderer(NewBranch _owner )
1333         {
1334             _this = _owner;
1335             _this.tprcellrenderer = this;
1336             this.el = new Gtk.CellRendererText();
1337
1338             // my vars (dec)
1339
1340             // set gobject values
1341         }
1342
1343         // user defined functions
1344     }
1345
1346     public class Xcls_tprmodel : Object
1347     {
1348         public Gtk.ListStore el;
1349         private NewBranch  _this;
1350
1351
1352             // my vars (def)
1353
1354         // ctor
1355         public Xcls_tprmodel(NewBranch _owner )
1356         {
1357             _this = _owner;
1358             _this.tprmodel = this;
1359             this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
1360
1361             // my vars (dec)
1362
1363             // set gobject values
1364         }
1365
1366         // user defined functions
1367         public void loadProjects (string id) {
1368         
1369             
1370             _this.project_id.loading = true;
1371         
1372             this.el.clear();                                    
1373             Gtk.TreeIter iter;
1374             var el = this.el;
1375             
1376             el.append(out iter);
1377         
1378             
1379             el.set_value(iter, 0, "");
1380             el.set_value(iter, 1, "-- select a project --");
1381             if (id == "") {
1382                     _this.project_id.el.set_active_iter(iter);
1383             }
1384         
1385             foreach(var project in RooProject.projects()) {
1386             
1387                 el.append(out iter);
1388                 
1389                 el.set_value(iter, 0, project.id);
1390                 el.set_value(iter, 1,  project.name );
1391                 if (id == project.id) {
1392                            _this.project_id.el.set_active_iter(iter);
1393                     }   
1394                 
1395             }
1396             
1397             _this.project_id.loading = false;
1398              //this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);          
1399                                              
1400         }
1401     }
1402
1403
1404     public class Xcls_summary : Object
1405     {
1406         public Gtk.Entry el;
1407         private NewBranch  _this;
1408
1409
1410             // my vars (def)
1411
1412         // ctor
1413         public Xcls_summary(NewBranch _owner )
1414         {
1415             _this = _owner;
1416             _this.summary = this;
1417             this.el = new Gtk.Entry();
1418
1419             // my vars (dec)
1420
1421             // set gobject values
1422             this.el.visible = true;
1423         }
1424
1425         // user defined functions
1426     }
1427
1428     public class Xcls_Label33 : Object
1429     {
1430         public Gtk.Label el;
1431         private NewBranch  _this;
1432
1433
1434             // my vars (def)
1435
1436         // ctor
1437         public Xcls_Label33(NewBranch _owner )
1438         {
1439             _this = _owner;
1440             this.el = new Gtk.Label( "Milestone" );
1441
1442             // my vars (dec)
1443
1444             // set gobject values
1445             this.el.halign = Gtk.Align.START;
1446             this.el.justify = Gtk.Justification.RIGHT;
1447             this.el.xalign = 0.900000f;
1448         }
1449
1450         // user defined functions
1451     }
1452
1453     public class Xcls_milestone_id : Object
1454     {
1455         public Gtk.ComboBox el;
1456         private NewBranch  _this;
1457
1458
1459             // my vars (def)
1460         public bool loading;
1461
1462         // ctor
1463         public Xcls_milestone_id(NewBranch _owner )
1464         {
1465             _this = _owner;
1466             _this.milestone_id = this;
1467             this.el = new Gtk.ComboBox.with_entry();
1468
1469             // my vars (dec)
1470             this.loading = false;
1471
1472             // set gobject values
1473             var child_0 = new Xcls_msmodel( _this );
1474             child_0.ref();
1475             this.el.set_model (  child_0.el  );
1476
1477             // init method
1478
1479             this.el.set_entry_text_column(1);
1480         }
1481
1482         // user defined functions
1483         public string selectedMilestoneId () {
1484                 Gtk.TreeIter iter;
1485                 Value val1;
1486          
1487          
1488                 this.el.get_active_iter (out iter);
1489                 _this.msmodel.el.get_value (iter, 0, out val1);
1490          
1491         
1492                 return  (string) val1;
1493                 
1494                 
1495                 
1496                 
1497         }
1498     }
1499     public class Xcls_msmodel : Object
1500     {
1501         public Gtk.ListStore el;
1502         private NewBranch  _this;
1503
1504
1505             // my vars (def)
1506
1507         // ctor
1508         public Xcls_msmodel(NewBranch _owner )
1509         {
1510             _this = _owner;
1511             _this.msmodel = this;
1512             this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
1513
1514             // my vars (dec)
1515
1516             // set gobject values
1517         }
1518
1519         // user defined functions
1520         public void loadMilestones ( ) {
1521         
1522             var rt = RooTicket.singleton();
1523            // rt.loadProjects();
1524             
1525             _this.milestone_id.loading = true;
1526         
1527             this.el.clear();                                    
1528             Gtk.TreeIter iter;
1529             var el = this.el;
1530             
1531             el.append(out iter);
1532         
1533             
1534             el.set_value(iter, 0, "");
1535             el.set_value(iter, 1, "-- select a milestone --");
1536             _this.milestone_id.el.set_active_iter(iter);    
1537              
1538             var projects = rt.milestones;
1539             foreach(var project in projects) {
1540             
1541                 el.append(out iter);
1542                 
1543                 el.set_value(iter, 0, project.id);
1544                 el.set_value(iter, 1,  project.display_name );
1545               //  if (id == project.id) {
1546                  //        _this.milestone.el.set_active_iter(iter);
1547                  //   }   
1548                 
1549             }
1550             
1551             
1552             _this.milestone_id.loading = false;
1553              //this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);          
1554                                              
1555         }
1556     }
1557
1558
1559     public class Xcls_Label36 : Object
1560     {
1561         public Gtk.Label el;
1562         private NewBranch  _this;
1563
1564
1565             // my vars (def)
1566
1567         // ctor
1568         public Xcls_Label36(NewBranch _owner )
1569         {
1570             _this = _owner;
1571             this.el = new Gtk.Label( "Description" );
1572
1573             // my vars (dec)
1574
1575             // set gobject values
1576             this.el.halign = Gtk.Align.START;
1577         }
1578
1579         // user defined functions
1580     }
1581
1582     public class Xcls_description : Object
1583     {
1584         public Gtk.TextView el;
1585         private NewBranch  _this;
1586
1587
1588             // my vars (def)
1589
1590         // ctor
1591         public Xcls_description(NewBranch _owner )
1592         {
1593             _this = _owner;
1594             _this.description = this;
1595             this.el = new Gtk.TextView();
1596
1597             // my vars (dec)
1598
1599             // set gobject values
1600             this.el.border_width = 1;
1601         }
1602
1603         // user defined functions
1604     }
1605
1606     public class Xcls_Label38 : Object
1607     {
1608         public Gtk.Label el;
1609         private NewBranch  _this;
1610
1611
1612             // my vars (def)
1613
1614         // ctor
1615         public Xcls_Label38(NewBranch _owner )
1616         {
1617             _this = _owner;
1618             this.el = new Gtk.Label( "Priority" );
1619
1620             // my vars (dec)
1621
1622             // set gobject values
1623             this.el.halign = Gtk.Align.START;
1624             this.el.xalign = 0.900000f;
1625         }
1626
1627         // user defined functions
1628     }
1629
1630     public class Xcls_priority_id : Object
1631     {
1632         public Gtk.ComboBox el;
1633         private NewBranch  _this;
1634
1635
1636             // my vars (def)
1637         public bool loading;
1638
1639         // ctor
1640         public Xcls_priority_id(NewBranch _owner )
1641         {
1642             _this = _owner;
1643             _this.priority_id = this;
1644             this.el = new Gtk.ComboBox.with_entry();
1645
1646             // my vars (dec)
1647             this.loading = false;
1648
1649             // set gobject values
1650             var child_0 = new Xcls_primodel( _this );
1651             child_0.ref();
1652             this.el.set_model (  child_0.el  );
1653
1654             // init method
1655
1656             this.el.set_entry_text_column(1);
1657         }
1658
1659         // user defined functions
1660         public string selectedPriorityId () {
1661                 Gtk.TreeIter iter;
1662                 Value val1;
1663          
1664          
1665                 this.el.get_active_iter (out iter);
1666                 _this.primodel.el.get_value (iter, 0, out val1);
1667          
1668         
1669                 return  (string) val1;
1670                 
1671                 
1672                 
1673                 
1674         }
1675     }
1676     public class Xcls_primodel : Object
1677     {
1678         public Gtk.ListStore el;
1679         private NewBranch  _this;
1680
1681
1682             // my vars (def)
1683
1684         // ctor
1685         public Xcls_primodel(NewBranch _owner )
1686         {
1687             _this = _owner;
1688             _this.primodel = this;
1689             this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
1690
1691             // my vars (dec)
1692
1693             // set gobject values
1694         }
1695
1696         // user defined functions
1697         public void loadPriorities ( ) {
1698         
1699             var rt = RooTicket.singleton();
1700            // rt.loadProjects();
1701             
1702             _this.priority_id.loading = true;
1703         
1704             this.el.clear();                                    
1705             Gtk.TreeIter iter;
1706             var el = this.el;
1707             
1708             
1709            var projects = rt.priorities;
1710             foreach(var project in projects) {
1711             
1712                 el.append(out iter);
1713                 
1714                 el.set_value(iter, 0, project.id);
1715                 el.set_value(iter, 1,  project.display_name );
1716                 if ("normal" == project.name) {
1717                            _this.priority_id.el.set_active_iter(iter);
1718                     }   
1719                 
1720             }
1721             
1722             _this.priority_id.loading = false;
1723                    
1724                                              
1725         }
1726     }
1727
1728
1729     public class Xcls_Label41 : Object
1730     {
1731         public Gtk.Label el;
1732         private NewBranch  _this;
1733
1734
1735             // my vars (def)
1736
1737         // ctor
1738         public Xcls_Label41(NewBranch _owner )
1739         {
1740             _this = _owner;
1741             this.el = new Gtk.Label( "Severity" );
1742
1743             // my vars (dec)
1744
1745             // set gobject values
1746             this.el.halign = Gtk.Align.START;
1747         }
1748
1749         // user defined functions
1750     }
1751
1752     public class Xcls_severity_id : Object
1753     {
1754         public Gtk.ComboBox el;
1755         private NewBranch  _this;
1756
1757
1758             // my vars (def)
1759         public bool loading;
1760
1761         // ctor
1762         public Xcls_severity_id(NewBranch _owner )
1763         {
1764             _this = _owner;
1765             _this.severity_id = this;
1766             this.el = new Gtk.ComboBox.with_entry();
1767
1768             // my vars (dec)
1769             this.loading = false;
1770
1771             // set gobject values
1772             var child_0 = new Xcls_sevmodel( _this );
1773             child_0.ref();
1774             this.el.set_model (  child_0.el  );
1775
1776             // init method
1777
1778             this.el.set_entry_text_column(1);
1779         }
1780
1781         // user defined functions
1782         public string selectedSeverityId () {
1783                 Gtk.TreeIter iter;
1784                 Value val1;
1785          
1786          
1787                 this.el.get_active_iter (out iter);
1788                 _this.sevmodel.el.get_value (iter, 0, out val1);
1789          
1790         
1791                 return  (string) val1;
1792                 
1793                 
1794                 
1795                 
1796         }
1797     }
1798     public class Xcls_sevmodel : Object
1799     {
1800         public Gtk.ListStore el;
1801         private NewBranch  _this;
1802
1803
1804             // my vars (def)
1805
1806         // ctor
1807         public Xcls_sevmodel(NewBranch _owner )
1808         {
1809             _this = _owner;
1810             _this.sevmodel = this;
1811             this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
1812
1813             // my vars (dec)
1814
1815             // set gobject values
1816         }
1817
1818         // user defined functions
1819         public void loadSeverities () {
1820         
1821             var rt = RooTicket.singleton();
1822             //rt.loadProjects();
1823             
1824             _this.severity_id.loading = true;
1825         
1826             this.el.clear();                                    
1827             Gtk.TreeIter iter;
1828             var el = this.el;
1829              
1830             var projects = rt.serverities;
1831             foreach(var project in projects) {
1832             
1833                 el.append(out iter);
1834                 
1835                 el.set_value(iter, 0, project.id);
1836                 el.set_value(iter, 1,  project.display_name );
1837                 if ("normal" == project.name) {
1838                            _this.severity_id.el.set_active_iter(iter);
1839                     }   
1840                 
1841             }
1842            
1843             _this.severity_id.loading = false;
1844              //this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);          
1845                                              
1846         }
1847     }
1848
1849
1850     public class Xcls_Label44 : Object
1851     {
1852         public Gtk.Label el;
1853         private NewBranch  _this;
1854
1855
1856             // my vars (def)
1857
1858         // ctor
1859         public Xcls_Label44(NewBranch _owner )
1860         {
1861             _this = _owner;
1862             this.el = new Gtk.Label( "Classification" );
1863
1864             // my vars (dec)
1865
1866             // set gobject values
1867             this.el.halign = Gtk.Align.START;
1868         }
1869
1870         // user defined functions
1871     }
1872
1873     public class Xcls_classification_id : Object
1874     {
1875         public Gtk.ComboBox el;
1876         private NewBranch  _this;
1877
1878
1879             // my vars (def)
1880         public bool loading;
1881
1882         // ctor
1883         public Xcls_classification_id(NewBranch _owner )
1884         {
1885             _this = _owner;
1886             _this.classification_id = this;
1887             this.el = new Gtk.ComboBox.with_entry();
1888
1889             // my vars (dec)
1890             this.loading = false;
1891
1892             // set gobject values
1893             var child_0 = new Xcls_clmodel( _this );
1894             child_0.ref();
1895             this.el.set_model (  child_0.el  );
1896
1897             // init method
1898
1899             this.el.set_entry_text_column(1);
1900         }
1901
1902         // user defined functions
1903         public string selectedClassificationId () {
1904                 Gtk.TreeIter iter;
1905                 Value val1;
1906          
1907          
1908                 this.el.get_active_iter (out iter);
1909                 _this.clmodel.el.get_value (iter, 0, out val1);
1910          
1911         
1912                 return  (string) val1;
1913                 
1914                 
1915                 
1916                 
1917         }
1918     }
1919     public class Xcls_clmodel : Object
1920     {
1921         public Gtk.ListStore el;
1922         private NewBranch  _this;
1923
1924
1925             // my vars (def)
1926
1927         // ctor
1928         public Xcls_clmodel(NewBranch _owner )
1929         {
1930             _this = _owner;
1931             _this.clmodel = this;
1932             this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
1933
1934             // my vars (dec)
1935
1936             // set gobject values
1937         }
1938
1939         // user defined functions
1940         public void loadClassifications ( ) {
1941         
1942             var rt = RooTicket.singleton();
1943             // rt.loadProjects();
1944             
1945             _this.classification_id.loading = true;
1946         
1947             this.el.clear();                                    
1948             Gtk.TreeIter iter;
1949             var el = this.el;
1950             
1951             el.append(out iter);
1952         
1953              
1954             var projects = rt.classifications;
1955             foreach(var project in projects) {
1956             
1957                 el.append(out iter);
1958                 
1959                 el.set_value(iter, 0, project.id);
1960                 el.set_value(iter, 1,  project.display_name );
1961                 if ("bug" == project.name) {
1962                            _this.classification_id.el.set_active_iter(iter);
1963                     }   
1964                 
1965             }
1966             
1967             _this.classification_id.loading = false;
1968              //this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);          
1969                                              
1970         }
1971     }
1972
1973
1974     public class Xcls_Label47 : Object
1975     {
1976         public Gtk.Label el;
1977         private NewBranch  _this;
1978
1979
1980             // my vars (def)
1981
1982         // ctor
1983         public Xcls_Label47(NewBranch _owner )
1984         {
1985             _this = _owner;
1986             this.el = new Gtk.Label( "Assign to" );
1987
1988             // my vars (dec)
1989
1990             // set gobject values
1991             this.el.halign = Gtk.Align.START;
1992         }
1993
1994         // user defined functions
1995     }
1996
1997     public class Xcls_developer_id : Object
1998     {
1999         public Gtk.ComboBox el;
2000         private NewBranch  _this;
2001
2002
2003             // my vars (def)
2004         public bool loading;
2005
2006         // ctor
2007         public Xcls_developer_id(NewBranch _owner )
2008         {
2009             _this = _owner;
2010             _this.developer_id = this;
2011             this.el = new Gtk.ComboBox.with_entry();
2012
2013             // my vars (dec)
2014             this.loading = false;
2015
2016             // set gobject values
2017             var child_0 = new Xcls_devmodel( _this );
2018             child_0.ref();
2019             this.el.set_model (  child_0.el  );
2020
2021             // init method
2022
2023             this.el.set_entry_text_column(1);
2024         }
2025
2026         // user defined functions
2027         public string selectedDeveloperId () {
2028                 Gtk.TreeIter iter;
2029                 Value val1;
2030          
2031          
2032                 this.el.get_active_iter (out iter);
2033                 _this.devmodel.el.get_value (iter, 0, out val1);
2034          
2035         
2036                 return  (string) val1;
2037                 
2038                 
2039                 
2040                 
2041         }
2042     }
2043     public class Xcls_devmodel : Object
2044     {
2045         public Gtk.ListStore el;
2046         private NewBranch  _this;
2047
2048
2049             // my vars (def)
2050
2051         // ctor
2052         public Xcls_devmodel(NewBranch _owner )
2053         {
2054             _this = _owner;
2055             _this.devmodel = this;
2056             this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
2057
2058             // my vars (dec)
2059
2060             // set gobject values
2061         }
2062
2063         // user defined functions
2064         public void loadDevelopers ( ) {
2065         
2066             var rt = RooTicket.singleton();
2067             //rt.loadProjects();
2068             
2069             _this.developer_id.loading = true;
2070         
2071             this.el.clear();                                    
2072             Gtk.TreeIter iter;
2073             var el = this.el;
2074             
2075             el.append(out iter);
2076         
2077             
2078             el.set_value(iter, 0, "");
2079             el.set_value(iter, 1, "-- select a developer --");
2080           //  if (id == "") {
2081                     _this.developer_id.el.set_active_iter(iter);
2082            // }
2083             
2084             var peps = rt.developers;
2085             foreach(var p in peps) {
2086             
2087                 el.append(out iter);
2088                 
2089                 el.set_value(iter, 0, p.id);
2090                 el.set_value(iter, 1,  p.display_name );
2091                 if (rt.authuser_id == p.id) {
2092                            _this.developer_id.el.set_active_iter(iter);
2093                     }   
2094             }
2095          
2096             _this.developer_id.loading = false;
2097              //this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);          
2098                                              
2099         }
2100     }
2101
2102
2103     public class Xcls_Button50 : Object
2104     {
2105         public Gtk.Button el;
2106         private NewBranch  _this;
2107
2108
2109             // my vars (def)
2110
2111         // ctor
2112         public Xcls_Button50(NewBranch _owner )
2113         {
2114             _this = _owner;
2115             this.el = new Gtk.Button();
2116
2117             // my vars (dec)
2118
2119             // set gobject values
2120             this.el.label = "Create Ticket & Branch";
2121
2122             // init method
2123
2124             {
2125                this.el.get_style_context().add_class("suggested-action");
2126             }
2127
2128             //listeners
2129             this.el.clicked.connect( () => {
2130                 GLib.debug("fire response = 1");
2131                 
2132                 
2133                 var invalid = false;
2134                 
2135                 // validate first...
2136                 _this.project_id.el.get_child().get_style_context().remove_class("warning");    
2137                 if (_this.project_id.selectedProjectId() == "") {
2138                         _this.project_id.el.get_child().get_style_context().add_class("warning");
2139                         invalid = true;
2140                 }
2141                 
2142                 _this.milestone_id.el.get_child().get_style_context().remove_class("warning");  
2143             
2144                 _this.priority_id.el.get_child().get_style_context().remove_class("warning");   
2145                 if (_this.priority_id.selectedPriorityId() == "") {
2146                         _this.priority_id.el.get_child().get_style_context().add_class("warning");
2147                         invalid = true;
2148                 }
2149                 
2150                 _this.classification_id.el.get_child().get_style_context().remove_class("warning");     
2151                 if (_this.classification_id.selectedClassificationId() == "") {
2152                         _this.classification_id.el.get_child().get_style_context().add_class("warning");
2153                         invalid = true;
2154                 }
2155                 
2156                 _this.developer_id.el.get_child().get_style_context().remove_class("warning");  
2157                 if (_this.developer_id.selectedDeveloperId() == "") {
2158                         _this.developer_id.el.get_child().get_style_context().add_class("warning");
2159                         invalid = true;
2160                 }
2161                 
2162                 _this.summary.el.get_style_context().remove_class("warning");   
2163                 if (_this.summary.el.get_text() == "") {
2164                         _this.summary.el.get_style_context().add_class("warning");
2165                         invalid = true;
2166                 }
2167                 
2168                 _this.description.el.get_style_context().remove_class("warning");       
2169              
2170                 if (invalid) {
2171                         return;
2172                 }
2173                 GLib.debug("for is valid");
2174                 
2175                 _this.el.response(1);
2176             });
2177         }
2178
2179         // user defined functions
2180     }
2181
2182
2183
2184     public class Xcls_quick_commit_tab : Object
2185     {
2186         public Gtk.Box el;
2187         private NewBranch  _this;
2188
2189
2190             // my vars (def)
2191
2192         // ctor
2193         public Xcls_quick_commit_tab(NewBranch _owner )
2194         {
2195             _this = _owner;
2196             _this.quick_commit_tab = this;
2197             this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
2198
2199             // my vars (dec)
2200
2201             // set gobject values
2202             this.el.homogeneous = false;
2203             var child_0 = new Xcls_Table52( _this );
2204             child_0.ref();
2205             this.el.pack_start (  child_0.el , false,false,0 );
2206             var child_1 = new Xcls_ScrolledWindow56( _this );
2207             child_1.ref();
2208             this.el.add (  child_1.el  );
2209         }
2210
2211         // user defined functions
2212     }
2213     public class Xcls_Table52 : Object
2214     {
2215         public Gtk.Table el;
2216         private NewBranch  _this;
2217
2218
2219             // my vars (def)
2220
2221         // ctor
2222         public Xcls_Table52(NewBranch _owner )
2223         {
2224             _this = _owner;
2225             this.el = new Gtk.Table( 2, 5, true );
2226
2227             // my vars (dec)
2228
2229             // set gobject values
2230             this.el.expand = false;
2231             this.el.margin = 2;
2232             this.el.column_spacing = 4;
2233             this.el.vexpand = false;
2234             var child_0 = new Xcls_Label53( _this );
2235             child_0.ref();
2236             this.el.attach_defaults (  child_0.el , 0,1,0,1 );
2237             var child_1 = new Xcls_commit_message( _this );
2238             child_1.ref();
2239             this.el.attach_defaults (  child_1.el , 0,4,1,2 );
2240             var child_2 = new Xcls_createbtn( _this );
2241             child_2.ref();
2242             this.el.attach_defaults (  child_2.el , 4,5,1,2 );
2243         }
2244
2245         // user defined functions
2246     }
2247     public class Xcls_Label53 : Object
2248     {
2249         public Gtk.Label el;
2250         private NewBranch  _this;
2251
2252
2253             // my vars (def)
2254
2255         // ctor
2256         public Xcls_Label53(NewBranch _owner )
2257         {
2258             _this = _owner;
2259             this.el = new Gtk.Label( "Just commit with this comment" );
2260
2261             // my vars (dec)
2262
2263             // set gobject values
2264             this.el.halign = Gtk.Align.START;
2265             this.el.justify = Gtk.Justification.RIGHT;
2266             this.el.xalign = 0.900000f;
2267         }
2268
2269         // user defined functions
2270     }
2271
2272     public class Xcls_commit_message : Object
2273     {
2274         public Gtk.Entry el;
2275         private NewBranch  _this;
2276
2277
2278             // my vars (def)
2279
2280         // ctor
2281         public Xcls_commit_message(NewBranch _owner )
2282         {
2283             _this = _owner;
2284             _this.commit_message = this;
2285             this.el = new Gtk.Entry();
2286
2287             // my vars (dec)
2288
2289             // set gobject values
2290             this.el.visible = true;
2291         }
2292
2293         // user defined functions
2294     }
2295
2296     public class Xcls_createbtn : Object
2297     {
2298         public Gtk.Button el;
2299         private NewBranch  _this;
2300
2301
2302             // my vars (def)
2303
2304         // ctor
2305         public Xcls_createbtn(NewBranch _owner )
2306         {
2307             _this = _owner;
2308             _this.createbtn = this;
2309             this.el = new Gtk.Button();
2310
2311             // my vars (dec)
2312
2313             // set gobject values
2314             this.el.label = "Commit Changes";
2315
2316             // init method
2317
2318             {
2319                this.el.get_style_context().add_class("suggested-action");
2320             }
2321
2322             //listeners
2323             this.el.clicked.connect( () => {
2324             
2325                 GLib.debug("fire response = 1");
2326                 
2327                 var ticket_id = _this.ticketsel.selectedTicketId();
2328                 
2329                 if (ticket_id == "") {
2330                         _this.ticketsel.el.get_child().get_style_context().add_class("warning");
2331                         return;
2332                 }
2333                  
2334                 _this.el.response(1);
2335             });
2336         }
2337
2338         // user defined functions
2339         public void updateState () {
2340         
2341                 var ticket_id = _this.ticketsel.selectedTicketId();
2342                 
2343                 if (ticket_id == "") {
2344                         this.el.set_sensitive(false);
2345                         return;
2346                 }
2347          
2348                 this.el.set_sensitive(true);
2349          
2350         }
2351     }
2352
2353
2354     public class Xcls_ScrolledWindow56 : Object
2355     {
2356         public Gtk.ScrolledWindow el;
2357         private NewBranch  _this;
2358
2359
2360             // my vars (def)
2361
2362         // ctor
2363         public Xcls_ScrolledWindow56(NewBranch _owner )
2364         {
2365             _this = _owner;
2366             this.el = new Gtk.ScrolledWindow( null, null );
2367
2368             // my vars (dec)
2369
2370             // set gobject values
2371             this.el.height_request = 400;
2372             this.el.vexpand = true;
2373             var child_0 = new Xcls_diff_view( _this );
2374             child_0.ref();
2375             this.el.add (  child_0.el  );
2376         }
2377
2378         // user defined functions
2379     }
2380     public class Xcls_diff_view : Object
2381     {
2382         public Gtk.SourceView el;
2383         private NewBranch  _this;
2384
2385
2386             // my vars (def)
2387
2388         // ctor
2389         public Xcls_diff_view(NewBranch _owner )
2390         {
2391             _this = _owner;
2392             _this.diff_view = this;
2393             this.el = new Gtk.SourceView();
2394
2395             // my vars (dec)
2396
2397             // init method
2398
2399             var description =   Pango.FontDescription.from_string("monospace");
2400                 description.set_size(9000);
2401                 this.el.override_font(description);
2402                  var lm = Gtk.SourceLanguageManager.get_default();
2403                                 
2404                 ((Gtk.SourceBuffer)(this.el.get_buffer())).set_language(
2405                     lm.get_language("diff")
2406                 );
2407         }
2408
2409         // user defined functions
2410     }
2411
2412
2413
2414
2415 }