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 void load_data () {
1104          
1105                  
1106                 
1107             Timeout.add_seconds(1, () => {
1108                          
1109                         RooProject? curproj = null;
1110                         if (_this.repo != null) {
1111                                 curproj = RooProject.getProjectByRepo(_this.repo);
1112                         }
1113                         _this.prmodel.loadProjects(curproj == null ? "" : curproj.id);
1114                         if (curproj != null) {
1115                  
1116                                 
1117                                 var rt = RooTicket.singleton();
1118                                 rt.loadProjectOptions(curproj.id);
1119                                 
1120                                 _this.msmodel.loadMilestones();
1121                                 _this.primodel.loadPriorities();
1122                                 _this.sevmodel.loadSeverities();
1123                                 _this.clmodel.loadClassifications();    
1124                                 _this.devmodel.loadDevelopers();        
1125                                 
1126                         }
1127                         _this.summary.el.set_text("");
1128                         _this.description.el.buffer.text = ""; 
1129                         //_this.spinner.el.stop();
1130                         //_this.spinner.el.hide();      
1131         
1132                         _this.table.el.show();
1133                     //_this.summary.el.grab_focus();
1134          
1135                         return false;
1136                 });
1137         }
1138     }
1139     public class Xcls_table : Object
1140     {
1141         public Gtk.Table el;
1142         private NewBranch  _this;
1143
1144
1145             // my vars (def)
1146
1147         // ctor
1148         public Xcls_table(NewBranch _owner )
1149         {
1150             _this = _owner;
1151             _this.table = this;
1152             this.el = new Gtk.Table( 14, 4, true );
1153
1154             // my vars (dec)
1155
1156             // set gobject values
1157             this.el.expand = false;
1158             this.el.margin = 2;
1159             this.el.column_spacing = 4;
1160             this.el.vexpand = false;
1161             var child_0 = new Xcls_Label27( _this );
1162             child_0.ref();
1163             this.el.attach_defaults (  child_0.el , 0,1,0,1 );
1164             var child_1 = new Xcls_Label28( _this );
1165             child_1.ref();
1166             this.el.attach_defaults (  child_1.el , 1,2,0,1 );
1167             var child_2 = new Xcls_project_id( _this );
1168             child_2.ref();
1169             this.el.attach_defaults (  child_2.el , 0,1,1,2 );
1170             var child_3 = new Xcls_summary( _this );
1171             child_3.ref();
1172             this.el.attach_defaults (  child_3.el , 1,4,1,2 );
1173             var child_4 = new Xcls_Label33( _this );
1174             child_4.ref();
1175             this.el.attach_defaults (  child_4.el , 0,1,2,3 );
1176             var child_5 = new Xcls_milestone_id( _this );
1177             child_5.ref();
1178             this.el.attach_defaults (  child_5.el , 0,1,3,4 );
1179             var child_6 = new Xcls_Label36( _this );
1180             child_6.ref();
1181             this.el.attach_defaults (  child_6.el , 1,4,2,3 );
1182             var child_7 = new Xcls_description( _this );
1183             child_7.ref();
1184             this.el.attach_defaults (  child_7.el , 1,4,3,12 );
1185             var child_8 = new Xcls_Label38( _this );
1186             child_8.ref();
1187             this.el.attach_defaults (  child_8.el , 0,1,4,5 );
1188             var child_9 = new Xcls_priority_id( _this );
1189             child_9.ref();
1190             this.el.attach_defaults (  child_9.el , 0,1,5,6 );
1191             var child_10 = new Xcls_Label41( _this );
1192             child_10.ref();
1193             this.el.attach_defaults (  child_10.el , 0,1,6,7 );
1194             var child_11 = new Xcls_severity_id( _this );
1195             child_11.ref();
1196             this.el.attach_defaults (  child_11.el , 0,1,7,8 );
1197             var child_12 = new Xcls_Label44( _this );
1198             child_12.ref();
1199             this.el.attach_defaults (  child_12.el , 0,1,8,9 );
1200             var child_13 = new Xcls_classification_id( _this );
1201             child_13.ref();
1202             this.el.attach_defaults (  child_13.el , 0,1,9,10 );
1203             var child_14 = new Xcls_Label47( _this );
1204             child_14.ref();
1205             this.el.attach_defaults (  child_14.el , 0,1,10,11 );
1206             var child_15 = new Xcls_developer_id( _this );
1207             child_15.ref();
1208             this.el.attach_defaults (  child_15.el , 0,1,11,12 );
1209             var child_16 = new Xcls_Button50( _this );
1210             child_16.ref();
1211             this.el.attach_defaults (  child_16.el , 0,4,13,14 );
1212         }
1213
1214         // user defined functions
1215     }
1216     public class Xcls_Label27 : Object
1217     {
1218         public Gtk.Label el;
1219         private NewBranch  _this;
1220
1221
1222             // my vars (def)
1223
1224         // ctor
1225         public Xcls_Label27(NewBranch _owner )
1226         {
1227             _this = _owner;
1228             this.el = new Gtk.Label( "Project" );
1229
1230             // my vars (dec)
1231
1232             // set gobject values
1233             this.el.halign = Gtk.Align.START;
1234             this.el.visible = true;
1235         }
1236
1237         // user defined functions
1238     }
1239
1240     public class Xcls_Label28 : Object
1241     {
1242         public Gtk.Label el;
1243         private NewBranch  _this;
1244
1245
1246             // my vars (def)
1247
1248         // ctor
1249         public Xcls_Label28(NewBranch _owner )
1250         {
1251             _this = _owner;
1252             this.el = new Gtk.Label( "Summary" );
1253
1254             // my vars (dec)
1255
1256             // set gobject values
1257             this.el.halign = Gtk.Align.START;
1258             this.el.visible = true;
1259         }
1260
1261         // user defined functions
1262     }
1263
1264     public class Xcls_project_id : Object
1265     {
1266         public Gtk.ComboBox el;
1267         private NewBranch  _this;
1268
1269
1270             // my vars (def)
1271         public bool loading;
1272
1273         // ctor
1274         public Xcls_project_id(NewBranch _owner )
1275         {
1276             _this = _owner;
1277             _this.project_id = this;
1278             this.el = new Gtk.ComboBox.with_entry();
1279
1280             // my vars (dec)
1281             this.loading = false;
1282
1283             // set gobject values
1284             var child_0 = new Xcls_tprcellrenderer( _this );
1285             child_0.ref();
1286             this.el.pack_start (  child_0.el , true );
1287             var child_1 = new Xcls_tprmodel( _this );
1288             child_1.ref();
1289             this.el.set_model (  child_1.el  );
1290
1291             // init method
1292
1293             this.el.set_entry_text_column(1);
1294
1295             //listeners
1296             this.el.changed.connect( () => {
1297                 if (this.loading) {
1298                         return;
1299                 }
1300                 var project_id = this.selectedProjectId();
1301                 
1302                 var rt = RooTicket.singleton();
1303                 rt.loadProjectOptions(project_id);
1304                 
1305                 _this.msmodel.loadMilestones();
1306                 _this.primodel.loadPriorities();
1307                 _this.sevmodel.loadSeverities();
1308                 _this.clmodel.loadClassifications();    
1309                 _this.devmodel.loadDevelopers();        
1310                 
1311                 // affects projects and milestones..
1312                 
1313                 
1314                 /*if (this.loading) {
1315                         return;
1316                 }
1317                 var ticket_id = this.selectedTicketId();
1318                 
1319                 var name = RooTicket.singleton().usernameLocal();
1320                 
1321                 if (ticket_id == "" || ticket_id == null) {
1322                 
1323                         var dt = new  DateTime.now_local();
1324                         _this.name.el.set_text("wip_%s_%s".printf(name,dt.format("%Y_%b_%d")));
1325                         return;
1326                 }
1327                 
1328                 
1329                 var ticket = RooTicket.singleton().getById(ticket_id);
1330                
1331                 _this.name.el.set_text("wip_%s_T%s_%s".printf(name,ticket.id, ticket.summaryToBranchName()));
1332                 
1333                 //GLib.debug (//"Selection: %s, %s\n", (string) val1, (string) val2);
1334                 */
1335             });
1336         }
1337
1338         // user defined functions
1339         public string selectedProjectId () {
1340                 Gtk.TreeIter iter;
1341                 Value val1;
1342          
1343          
1344                 this.el.get_active_iter (out iter);
1345                 _this.tprmodel.el.get_value (iter, 0, out val1);
1346          
1347         
1348                 return  (string) val1;
1349                 
1350                 
1351                 
1352                 
1353         }
1354     }
1355     public class Xcls_tprcellrenderer : Object
1356     {
1357         public Gtk.CellRendererText el;
1358         private NewBranch  _this;
1359
1360
1361             // my vars (def)
1362
1363         // ctor
1364         public Xcls_tprcellrenderer(NewBranch _owner )
1365         {
1366             _this = _owner;
1367             _this.tprcellrenderer = this;
1368             this.el = new Gtk.CellRendererText();
1369
1370             // my vars (dec)
1371
1372             // set gobject values
1373         }
1374
1375         // user defined functions
1376     }
1377
1378     public class Xcls_tprmodel : Object
1379     {
1380         public Gtk.ListStore el;
1381         private NewBranch  _this;
1382
1383
1384             // my vars (def)
1385
1386         // ctor
1387         public Xcls_tprmodel(NewBranch _owner )
1388         {
1389             _this = _owner;
1390             _this.tprmodel = this;
1391             this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
1392
1393             // my vars (dec)
1394
1395             // set gobject values
1396         }
1397
1398         // user defined functions
1399         public void loadProjects (string id) {
1400         
1401             
1402             _this.project_id.loading = true;
1403         
1404             this.el.clear();                                    
1405             Gtk.TreeIter iter;
1406             var el = this.el;
1407             
1408             el.append(out iter);
1409         
1410             
1411             el.set_value(iter, 0, "");
1412             el.set_value(iter, 1, "-- select a project --");
1413             if (id == "") {
1414                     _this.project_id.el.set_active_iter(iter);
1415             }
1416         
1417             foreach(var project in RooProject.projects()) {
1418             
1419                 el.append(out iter);
1420                 
1421                 el.set_value(iter, 0, project.id);
1422                 el.set_value(iter, 1,  project.name );
1423                 if (id == project.id) {
1424                            _this.project_id.el.set_active_iter(iter);
1425                     }   
1426                 
1427             }
1428             
1429             _this.project_id.loading = false;
1430              //this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);          
1431                                              
1432         }
1433     }
1434
1435
1436     public class Xcls_summary : Object
1437     {
1438         public Gtk.Entry el;
1439         private NewBranch  _this;
1440
1441
1442             // my vars (def)
1443
1444         // ctor
1445         public Xcls_summary(NewBranch _owner )
1446         {
1447             _this = _owner;
1448             _this.summary = this;
1449             this.el = new Gtk.Entry();
1450
1451             // my vars (dec)
1452
1453             // set gobject values
1454             this.el.visible = true;
1455         }
1456
1457         // user defined functions
1458     }
1459
1460     public class Xcls_Label33 : Object
1461     {
1462         public Gtk.Label el;
1463         private NewBranch  _this;
1464
1465
1466             // my vars (def)
1467
1468         // ctor
1469         public Xcls_Label33(NewBranch _owner )
1470         {
1471             _this = _owner;
1472             this.el = new Gtk.Label( "Milestone" );
1473
1474             // my vars (dec)
1475
1476             // set gobject values
1477             this.el.halign = Gtk.Align.START;
1478             this.el.justify = Gtk.Justification.RIGHT;
1479             this.el.xalign = 0.900000f;
1480         }
1481
1482         // user defined functions
1483     }
1484
1485     public class Xcls_milestone_id : Object
1486     {
1487         public Gtk.ComboBox el;
1488         private NewBranch  _this;
1489
1490
1491             // my vars (def)
1492         public bool loading;
1493
1494         // ctor
1495         public Xcls_milestone_id(NewBranch _owner )
1496         {
1497             _this = _owner;
1498             _this.milestone_id = this;
1499             this.el = new Gtk.ComboBox.with_entry();
1500
1501             // my vars (dec)
1502             this.loading = false;
1503
1504             // set gobject values
1505             var child_0 = new Xcls_msmodel( _this );
1506             child_0.ref();
1507             this.el.set_model (  child_0.el  );
1508
1509             // init method
1510
1511             this.el.set_entry_text_column(1);
1512         }
1513
1514         // user defined functions
1515         public string selectedMilestoneId () {
1516                 Gtk.TreeIter iter;
1517                 Value val1;
1518          
1519          
1520                 this.el.get_active_iter (out iter);
1521                 _this.msmodel.el.get_value (iter, 0, out val1);
1522          
1523         
1524                 return  (string) val1;
1525                 
1526                 
1527                 
1528                 
1529         }
1530     }
1531     public class Xcls_msmodel : Object
1532     {
1533         public Gtk.ListStore el;
1534         private NewBranch  _this;
1535
1536
1537             // my vars (def)
1538
1539         // ctor
1540         public Xcls_msmodel(NewBranch _owner )
1541         {
1542             _this = _owner;
1543             _this.msmodel = this;
1544             this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
1545
1546             // my vars (dec)
1547
1548             // set gobject values
1549         }
1550
1551         // user defined functions
1552         public void loadMilestones ( ) {
1553         
1554             var rt = RooTicket.singleton();
1555            // rt.loadProjects();
1556             
1557             _this.milestone_id.loading = true;
1558         
1559             this.el.clear();                                    
1560             Gtk.TreeIter iter;
1561             var el = this.el;
1562             
1563             el.append(out iter);
1564         
1565             
1566             el.set_value(iter, 0, "");
1567             el.set_value(iter, 1, "-- select a milestone --");
1568             _this.milestone_id.el.set_active_iter(iter);    
1569              
1570             var projects = rt.milestones;
1571             foreach(var project in projects) {
1572             
1573                 el.append(out iter);
1574                 
1575                 el.set_value(iter, 0, project.id);
1576                 el.set_value(iter, 1,  project.display_name );
1577               //  if (id == project.id) {
1578                  //        _this.milestone.el.set_active_iter(iter);
1579                  //   }   
1580                 
1581             }
1582             
1583             
1584             _this.milestone_id.loading = false;
1585              //this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);          
1586                                              
1587         }
1588     }
1589
1590
1591     public class Xcls_Label36 : Object
1592     {
1593         public Gtk.Label el;
1594         private NewBranch  _this;
1595
1596
1597             // my vars (def)
1598
1599         // ctor
1600         public Xcls_Label36(NewBranch _owner )
1601         {
1602             _this = _owner;
1603             this.el = new Gtk.Label( "Description" );
1604
1605             // my vars (dec)
1606
1607             // set gobject values
1608             this.el.halign = Gtk.Align.START;
1609         }
1610
1611         // user defined functions
1612     }
1613
1614     public class Xcls_description : Object
1615     {
1616         public Gtk.TextView el;
1617         private NewBranch  _this;
1618
1619
1620             // my vars (def)
1621
1622         // ctor
1623         public Xcls_description(NewBranch _owner )
1624         {
1625             _this = _owner;
1626             _this.description = this;
1627             this.el = new Gtk.TextView();
1628
1629             // my vars (dec)
1630
1631             // set gobject values
1632             this.el.border_width = 1;
1633         }
1634
1635         // user defined functions
1636     }
1637
1638     public class Xcls_Label38 : Object
1639     {
1640         public Gtk.Label el;
1641         private NewBranch  _this;
1642
1643
1644             // my vars (def)
1645
1646         // ctor
1647         public Xcls_Label38(NewBranch _owner )
1648         {
1649             _this = _owner;
1650             this.el = new Gtk.Label( "Priority" );
1651
1652             // my vars (dec)
1653
1654             // set gobject values
1655             this.el.halign = Gtk.Align.START;
1656             this.el.xalign = 0.900000f;
1657         }
1658
1659         // user defined functions
1660     }
1661
1662     public class Xcls_priority_id : Object
1663     {
1664         public Gtk.ComboBox el;
1665         private NewBranch  _this;
1666
1667
1668             // my vars (def)
1669         public bool loading;
1670
1671         // ctor
1672         public Xcls_priority_id(NewBranch _owner )
1673         {
1674             _this = _owner;
1675             _this.priority_id = this;
1676             this.el = new Gtk.ComboBox.with_entry();
1677
1678             // my vars (dec)
1679             this.loading = false;
1680
1681             // set gobject values
1682             var child_0 = new Xcls_primodel( _this );
1683             child_0.ref();
1684             this.el.set_model (  child_0.el  );
1685
1686             // init method
1687
1688             this.el.set_entry_text_column(1);
1689         }
1690
1691         // user defined functions
1692         public string selectedPriorityId () {
1693                 Gtk.TreeIter iter;
1694                 Value val1;
1695          
1696          
1697                 this.el.get_active_iter (out iter);
1698                 _this.primodel.el.get_value (iter, 0, out val1);
1699          
1700         
1701                 return  (string) val1;
1702                 
1703                 
1704                 
1705                 
1706         }
1707     }
1708     public class Xcls_primodel : Object
1709     {
1710         public Gtk.ListStore el;
1711         private NewBranch  _this;
1712
1713
1714             // my vars (def)
1715
1716         // ctor
1717         public Xcls_primodel(NewBranch _owner )
1718         {
1719             _this = _owner;
1720             _this.primodel = this;
1721             this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
1722
1723             // my vars (dec)
1724
1725             // set gobject values
1726         }
1727
1728         // user defined functions
1729         public void loadPriorities ( ) {
1730         
1731             var rt = RooTicket.singleton();
1732            // rt.loadProjects();
1733             
1734             _this.priority_id.loading = true;
1735         
1736             this.el.clear();                                    
1737             Gtk.TreeIter iter;
1738             var el = this.el;
1739             
1740             
1741            var projects = rt.priorities;
1742             foreach(var project in projects) {
1743             
1744                 el.append(out iter);
1745                 
1746                 el.set_value(iter, 0, project.id);
1747                 el.set_value(iter, 1,  project.display_name );
1748                 if ("normal" == project.name) {
1749                            _this.priority_id.el.set_active_iter(iter);
1750                     }   
1751                 
1752             }
1753             
1754             _this.priority_id.loading = false;
1755                    
1756                                              
1757         }
1758     }
1759
1760
1761     public class Xcls_Label41 : Object
1762     {
1763         public Gtk.Label el;
1764         private NewBranch  _this;
1765
1766
1767             // my vars (def)
1768
1769         // ctor
1770         public Xcls_Label41(NewBranch _owner )
1771         {
1772             _this = _owner;
1773             this.el = new Gtk.Label( "Severity" );
1774
1775             // my vars (dec)
1776
1777             // set gobject values
1778             this.el.halign = Gtk.Align.START;
1779         }
1780
1781         // user defined functions
1782     }
1783
1784     public class Xcls_severity_id : Object
1785     {
1786         public Gtk.ComboBox el;
1787         private NewBranch  _this;
1788
1789
1790             // my vars (def)
1791         public bool loading;
1792
1793         // ctor
1794         public Xcls_severity_id(NewBranch _owner )
1795         {
1796             _this = _owner;
1797             _this.severity_id = this;
1798             this.el = new Gtk.ComboBox.with_entry();
1799
1800             // my vars (dec)
1801             this.loading = false;
1802
1803             // set gobject values
1804             var child_0 = new Xcls_sevmodel( _this );
1805             child_0.ref();
1806             this.el.set_model (  child_0.el  );
1807
1808             // init method
1809
1810             this.el.set_entry_text_column(1);
1811         }
1812
1813         // user defined functions
1814         public string selectedSeverityId () {
1815                 Gtk.TreeIter iter;
1816                 Value val1;
1817          
1818          
1819                 this.el.get_active_iter (out iter);
1820                 _this.sevmodel.el.get_value (iter, 0, out val1);
1821          
1822         
1823                 return  (string) val1;
1824                 
1825                 
1826                 
1827                 
1828         }
1829     }
1830     public class Xcls_sevmodel : Object
1831     {
1832         public Gtk.ListStore el;
1833         private NewBranch  _this;
1834
1835
1836             // my vars (def)
1837
1838         // ctor
1839         public Xcls_sevmodel(NewBranch _owner )
1840         {
1841             _this = _owner;
1842             _this.sevmodel = this;
1843             this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
1844
1845             // my vars (dec)
1846
1847             // set gobject values
1848         }
1849
1850         // user defined functions
1851         public void loadSeverities () {
1852         
1853             var rt = RooTicket.singleton();
1854             //rt.loadProjects();
1855             
1856             _this.severity_id.loading = true;
1857         
1858             this.el.clear();                                    
1859             Gtk.TreeIter iter;
1860             var el = this.el;
1861              
1862             var projects = rt.serverities;
1863             foreach(var project in projects) {
1864             
1865                 el.append(out iter);
1866                 
1867                 el.set_value(iter, 0, project.id);
1868                 el.set_value(iter, 1,  project.display_name );
1869                 if ("normal" == project.name) {
1870                            _this.severity_id.el.set_active_iter(iter);
1871                     }   
1872                 
1873             }
1874            
1875             _this.severity_id.loading = false;
1876              //this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);          
1877                                              
1878         }
1879     }
1880
1881
1882     public class Xcls_Label44 : Object
1883     {
1884         public Gtk.Label el;
1885         private NewBranch  _this;
1886
1887
1888             // my vars (def)
1889
1890         // ctor
1891         public Xcls_Label44(NewBranch _owner )
1892         {
1893             _this = _owner;
1894             this.el = new Gtk.Label( "Classification" );
1895
1896             // my vars (dec)
1897
1898             // set gobject values
1899             this.el.halign = Gtk.Align.START;
1900         }
1901
1902         // user defined functions
1903     }
1904
1905     public class Xcls_classification_id : Object
1906     {
1907         public Gtk.ComboBox el;
1908         private NewBranch  _this;
1909
1910
1911             // my vars (def)
1912         public bool loading;
1913
1914         // ctor
1915         public Xcls_classification_id(NewBranch _owner )
1916         {
1917             _this = _owner;
1918             _this.classification_id = this;
1919             this.el = new Gtk.ComboBox.with_entry();
1920
1921             // my vars (dec)
1922             this.loading = false;
1923
1924             // set gobject values
1925             var child_0 = new Xcls_clmodel( _this );
1926             child_0.ref();
1927             this.el.set_model (  child_0.el  );
1928
1929             // init method
1930
1931             this.el.set_entry_text_column(1);
1932         }
1933
1934         // user defined functions
1935         public string selectedClassificationId () {
1936                 Gtk.TreeIter iter;
1937                 Value val1;
1938          
1939          
1940                 this.el.get_active_iter (out iter);
1941                 _this.clmodel.el.get_value (iter, 0, out val1);
1942          
1943         
1944                 return  (string) val1;
1945                 
1946                 
1947                 
1948                 
1949         }
1950     }
1951     public class Xcls_clmodel : Object
1952     {
1953         public Gtk.ListStore el;
1954         private NewBranch  _this;
1955
1956
1957             // my vars (def)
1958
1959         // ctor
1960         public Xcls_clmodel(NewBranch _owner )
1961         {
1962             _this = _owner;
1963             _this.clmodel = this;
1964             this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
1965
1966             // my vars (dec)
1967
1968             // set gobject values
1969         }
1970
1971         // user defined functions
1972         public void loadClassifications ( ) {
1973         
1974             var rt = RooTicket.singleton();
1975             // rt.loadProjects();
1976             
1977             _this.classification_id.loading = true;
1978         
1979             this.el.clear();                                    
1980             Gtk.TreeIter iter;
1981             var el = this.el;
1982             
1983             el.append(out iter);
1984         
1985              
1986             var projects = rt.classifications;
1987             foreach(var project in projects) {
1988             
1989                 el.append(out iter);
1990                 
1991                 el.set_value(iter, 0, project.id);
1992                 el.set_value(iter, 1,  project.display_name );
1993                 if ("bug" == project.name) {
1994                            _this.classification_id.el.set_active_iter(iter);
1995                     }   
1996                 
1997             }
1998             
1999             _this.classification_id.loading = false;
2000              //this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);          
2001                                              
2002         }
2003     }
2004
2005
2006     public class Xcls_Label47 : Object
2007     {
2008         public Gtk.Label el;
2009         private NewBranch  _this;
2010
2011
2012             // my vars (def)
2013
2014         // ctor
2015         public Xcls_Label47(NewBranch _owner )
2016         {
2017             _this = _owner;
2018             this.el = new Gtk.Label( "Assign to" );
2019
2020             // my vars (dec)
2021
2022             // set gobject values
2023             this.el.halign = Gtk.Align.START;
2024         }
2025
2026         // user defined functions
2027     }
2028
2029     public class Xcls_developer_id : Object
2030     {
2031         public Gtk.ComboBox el;
2032         private NewBranch  _this;
2033
2034
2035             // my vars (def)
2036         public bool loading;
2037
2038         // ctor
2039         public Xcls_developer_id(NewBranch _owner )
2040         {
2041             _this = _owner;
2042             _this.developer_id = this;
2043             this.el = new Gtk.ComboBox.with_entry();
2044
2045             // my vars (dec)
2046             this.loading = false;
2047
2048             // set gobject values
2049             var child_0 = new Xcls_devmodel( _this );
2050             child_0.ref();
2051             this.el.set_model (  child_0.el  );
2052
2053             // init method
2054
2055             this.el.set_entry_text_column(1);
2056         }
2057
2058         // user defined functions
2059         public string selectedDeveloperId () {
2060                 Gtk.TreeIter iter;
2061                 Value val1;
2062          
2063          
2064                 this.el.get_active_iter (out iter);
2065                 _this.devmodel.el.get_value (iter, 0, out val1);
2066          
2067         
2068                 return  (string) val1;
2069                 
2070                 
2071                 
2072                 
2073         }
2074     }
2075     public class Xcls_devmodel : Object
2076     {
2077         public Gtk.ListStore el;
2078         private NewBranch  _this;
2079
2080
2081             // my vars (def)
2082
2083         // ctor
2084         public Xcls_devmodel(NewBranch _owner )
2085         {
2086             _this = _owner;
2087             _this.devmodel = this;
2088             this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
2089
2090             // my vars (dec)
2091
2092             // set gobject values
2093         }
2094
2095         // user defined functions
2096         public void loadDevelopers ( ) {
2097         
2098             var rt = RooTicket.singleton();
2099             //rt.loadProjects();
2100             
2101             _this.developer_id.loading = true;
2102         
2103             this.el.clear();                                    
2104             Gtk.TreeIter iter;
2105             var el = this.el;
2106             
2107             el.append(out iter);
2108         
2109             
2110             el.set_value(iter, 0, "");
2111             el.set_value(iter, 1, "-- select a developer --");
2112           //  if (id == "") {
2113                     _this.developer_id.el.set_active_iter(iter);
2114            // }
2115             
2116             var peps = rt.developers;
2117             foreach(var p in peps) {
2118             
2119                 el.append(out iter);
2120                 
2121                 el.set_value(iter, 0, p.id);
2122                 el.set_value(iter, 1,  p.display_name );
2123                 if (rt.authuser_id == p.id) {
2124                            _this.developer_id.el.set_active_iter(iter);
2125                     }   
2126             }
2127          
2128             _this.developer_id.loading = false;
2129              //this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);          
2130                                              
2131         }
2132     }
2133
2134
2135     public class Xcls_Button50 : Object
2136     {
2137         public Gtk.Button el;
2138         private NewBranch  _this;
2139
2140
2141             // my vars (def)
2142
2143         // ctor
2144         public Xcls_Button50(NewBranch _owner )
2145         {
2146             _this = _owner;
2147             this.el = new Gtk.Button();
2148
2149             // my vars (dec)
2150
2151             // set gobject values
2152             this.el.label = "Create Ticket & Branch";
2153
2154             // init method
2155
2156             {
2157                this.el.get_style_context().add_class("suggested-action");
2158             }
2159
2160             //listeners
2161             this.el.clicked.connect( () => {
2162                 GLib.debug("fire response = 1");
2163                 
2164                 
2165                 var invalid = false;
2166                 
2167                 // validate first...
2168                 _this.project_id.el.get_child().get_style_context().remove_class("warning");    
2169                 if (_this.project_id.selectedProjectId() == "") {
2170                         _this.project_id.el.get_child().get_style_context().add_class("warning");
2171                         invalid = true;
2172                 }
2173                 
2174                 _this.milestone_id.el.get_child().get_style_context().remove_class("warning");  
2175             
2176                 _this.priority_id.el.get_child().get_style_context().remove_class("warning");   
2177                 if (_this.priority_id.selectedPriorityId() == "") {
2178                         _this.priority_id.el.get_child().get_style_context().add_class("warning");
2179                         invalid = true;
2180                 }
2181                 
2182                 _this.classification_id.el.get_child().get_style_context().remove_class("warning");     
2183                 if (_this.classification_id.selectedClassificationId() == "") {
2184                         _this.classification_id.el.get_child().get_style_context().add_class("warning");
2185                         invalid = true;
2186                 }
2187                 
2188                 _this.developer_id.el.get_child().get_style_context().remove_class("warning");  
2189                 if (_this.developer_id.selectedDeveloperId() == "") {
2190                         _this.developer_id.el.get_child().get_style_context().add_class("warning");
2191                         invalid = true;
2192                 }
2193                 
2194                 _this.summary.el.get_style_context().remove_class("warning");   
2195                 if (_this.summary.el.get_text() == "") {
2196                         _this.summary.el.get_style_context().add_class("warning");
2197                         invalid = true;
2198                 }
2199                 
2200                 _this.description.el.get_style_context().remove_class("warning");       
2201              
2202                 if (invalid) {
2203                         return;
2204                 }
2205                 GLib.debug("for is valid");
2206                 
2207                 _this.el.response(1);
2208             });
2209         }
2210
2211         // user defined functions
2212     }
2213
2214
2215
2216     public class Xcls_quick_commit_tab : Object
2217     {
2218         public Gtk.Box el;
2219         private NewBranch  _this;
2220
2221
2222             // my vars (def)
2223
2224         // ctor
2225         public Xcls_quick_commit_tab(NewBranch _owner )
2226         {
2227             _this = _owner;
2228             _this.quick_commit_tab = this;
2229             this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
2230
2231             // my vars (dec)
2232
2233             // set gobject values
2234             this.el.homogeneous = false;
2235             var child_0 = new Xcls_Table52( _this );
2236             child_0.ref();
2237             this.el.pack_start (  child_0.el , false,false,0 );
2238             var child_1 = new Xcls_ScrolledWindow56( _this );
2239             child_1.ref();
2240             this.el.add (  child_1.el  );
2241         }
2242
2243         // user defined functions
2244         public void load_data () {
2245           _this.commit_message.el.set_text("");
2246           
2247         }
2248     }
2249     public class Xcls_Table52 : Object
2250     {
2251         public Gtk.Table el;
2252         private NewBranch  _this;
2253
2254
2255             // my vars (def)
2256
2257         // ctor
2258         public Xcls_Table52(NewBranch _owner )
2259         {
2260             _this = _owner;
2261             this.el = new Gtk.Table( 2, 5, true );
2262
2263             // my vars (dec)
2264
2265             // set gobject values
2266             this.el.expand = false;
2267             this.el.margin = 2;
2268             this.el.column_spacing = 4;
2269             this.el.vexpand = false;
2270             var child_0 = new Xcls_Label53( _this );
2271             child_0.ref();
2272             this.el.attach_defaults (  child_0.el , 0,1,0,1 );
2273             var child_1 = new Xcls_commit_message( _this );
2274             child_1.ref();
2275             this.el.attach_defaults (  child_1.el , 0,4,1,2 );
2276             var child_2 = new Xcls_createbtn( _this );
2277             child_2.ref();
2278             this.el.attach_defaults (  child_2.el , 4,5,1,2 );
2279         }
2280
2281         // user defined functions
2282     }
2283     public class Xcls_Label53 : Object
2284     {
2285         public Gtk.Label el;
2286         private NewBranch  _this;
2287
2288
2289             // my vars (def)
2290
2291         // ctor
2292         public Xcls_Label53(NewBranch _owner )
2293         {
2294             _this = _owner;
2295             this.el = new Gtk.Label( "Just commit with this comment" );
2296
2297             // my vars (dec)
2298
2299             // set gobject values
2300             this.el.halign = Gtk.Align.START;
2301             this.el.justify = Gtk.Justification.RIGHT;
2302             this.el.xalign = 0.900000f;
2303         }
2304
2305         // user defined functions
2306     }
2307
2308     public class Xcls_commit_message : Object
2309     {
2310         public Gtk.Entry el;
2311         private NewBranch  _this;
2312
2313
2314             // my vars (def)
2315
2316         // ctor
2317         public Xcls_commit_message(NewBranch _owner )
2318         {
2319             _this = _owner;
2320             _this.commit_message = this;
2321             this.el = new Gtk.Entry();
2322
2323             // my vars (dec)
2324
2325             // set gobject values
2326             this.el.visible = true;
2327         }
2328
2329         // user defined functions
2330     }
2331
2332     public class Xcls_createbtn : Object
2333     {
2334         public Gtk.Button el;
2335         private NewBranch  _this;
2336
2337
2338             // my vars (def)
2339
2340         // ctor
2341         public Xcls_createbtn(NewBranch _owner )
2342         {
2343             _this = _owner;
2344             _this.createbtn = this;
2345             this.el = new Gtk.Button();
2346
2347             // my vars (dec)
2348
2349             // set gobject values
2350             this.el.label = "Commit Changes";
2351
2352             // init method
2353
2354             {
2355                this.el.get_style_context().add_class("suggested-action");
2356             }
2357
2358             //listeners
2359             this.el.clicked.connect( () => {
2360             
2361                 GLib.debug("fire response = 1");
2362                 
2363                 var ticket_id = _this.ticketsel.selectedTicketId();
2364                 
2365                 if (ticket_id == "") {
2366                         _this.ticketsel.el.get_child().get_style_context().add_class("warning");
2367                         return;
2368                 }
2369                  
2370                 _this.el.response(1);
2371             });
2372         }
2373
2374         // user defined functions
2375         public void updateState () {
2376         
2377                 var ticket_id = _this.ticketsel.selectedTicketId();
2378                 
2379                 if (ticket_id == "") {
2380                         this.el.set_sensitive(false);
2381                         return;
2382                 }
2383          
2384                 this.el.set_sensitive(true);
2385          
2386         }
2387     }
2388
2389
2390     public class Xcls_ScrolledWindow56 : Object
2391     {
2392         public Gtk.ScrolledWindow el;
2393         private NewBranch  _this;
2394
2395
2396             // my vars (def)
2397
2398         // ctor
2399         public Xcls_ScrolledWindow56(NewBranch _owner )
2400         {
2401             _this = _owner;
2402             this.el = new Gtk.ScrolledWindow( null, null );
2403
2404             // my vars (dec)
2405
2406             // set gobject values
2407             this.el.height_request = 400;
2408             this.el.vexpand = true;
2409             var child_0 = new Xcls_diff_view( _this );
2410             child_0.ref();
2411             this.el.add (  child_0.el  );
2412         }
2413
2414         // user defined functions
2415     }
2416     public class Xcls_diff_view : Object
2417     {
2418         public Gtk.SourceView el;
2419         private NewBranch  _this;
2420
2421
2422             // my vars (def)
2423
2424         // ctor
2425         public Xcls_diff_view(NewBranch _owner )
2426         {
2427             _this = _owner;
2428             _this.diff_view = this;
2429             this.el = new Gtk.SourceView();
2430
2431             // my vars (dec)
2432
2433             // init method
2434
2435             var description =   Pango.FontDescription.from_string("monospace");
2436                 description.set_size(9000);
2437                 this.el.override_font(description);
2438                  var lm = Gtk.SourceLanguageManager.get_default();
2439                                 
2440                 ((Gtk.SourceBuffer)(this.el.get_buffer())).set_language(
2441                     lm.get_language("diff")
2442                 );
2443         }
2444
2445         // user defined functions
2446     }
2447
2448
2449
2450
2451 }