]> git.llucax.com Git - z.facultad/75.52/treemulator.git/blob - viewer/view_properties.cpp
Agrega ABB (Altas, Bajas y Búsqueda ;) de claves al viewer.
[z.facultad/75.52/treemulator.git] / viewer / view_properties.cpp
1
2 #include "view_properties.h"
3
4 ViewProperties::ViewProperties ():Frame ()
5 {
6         lnode_num.set_use_markup (true);
7         lnode_level.set_use_markup (true);
8         lnode_items.set_use_markup (true);
9         lnode_freespace.set_use_markup (true);
10         ldata_type.set_use_markup (true);
11         ldata_key.set_use_markup (true);
12         ldata_child.set_use_markup (true);
13
14         lnode_num.set_label ("<b>Nodo</b> :");
15         lnode_level.set_label ("<b>Nivel</b> : ");
16         lnode_items.set_label ("<b>Items</b> :");
17         lnode_freespace.set_label ("<b>Libre</b> :");
18         ldata_type.set_label ("<b>Tipo</b> :");
19         ldata_key.set_label ("<b>Clave</b> : ");
20         ldata_child.set_label ("<b>Hijo</b> : ");
21
22         lnode_num.set_alignment(Gtk::JUSTIFY_LEFT);
23         lnode_level.set_alignment(Gtk::JUSTIFY_LEFT);
24         lnode_items.set_alignment(Gtk::JUSTIFY_LEFT);
25         lnode_freespace.set_alignment(Gtk::JUSTIFY_LEFT);
26         ldata_type.set_alignment(Gtk::JUSTIFY_LEFT);
27         ldata_key.set_alignment(Gtk::JUSTIFY_LEFT);
28         ldata_child.set_alignment(Gtk::JUSTIFY_LEFT);
29
30         table.attach (lnode_num, 0, 1, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK);
31         table.attach (lnode_level, 0, 1, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK);
32         table.attach (lnode_items, 0, 1, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK);
33         table.attach (lnode_freespace, 0, 1, 3, 4, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK);
34         table.attach (ldata_type, 0, 1, 4, 5, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK);
35         table.attach (ldata_key, 0, 1, 5, 6, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK);
36         table.attach (ldata_child, 0, 1, 6, 7, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK);
37
38         table.attach (node_num, 1, 2, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK);
39         table.attach (node_level, 1, 2, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK);
40         table.attach (node_items, 1, 2, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK);
41         table.attach (node_freespace, 1, 2, 3, 4, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK);
42         table.attach (data_type, 1, 2, 4, 5, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK);
43         table.attach (data_key, 1, 2, 5, 6, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK);
44         table.attach (data_child, 1, 2, 6, 7, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK);
45
46         table.property_column_spacing () = 8;
47         table.property_row_spacing () = 8;
48         add (table);
49         
50         property_label_xalign () = 0;
51         set_label ("Propiedades");
52         set_shadow_type(Gtk::SHADOW_NONE);
53         set_size_request (200, 0);
54 }
55
56 void ViewProperties::ShowItem (BTreeData *data, BTreeNodeHeader &header)
57 {
58         std::string s1, s2, s3;
59         std::stringstream ss1, ss2, ss3;
60
61         node_num.set_label ("TODO");
62
63         ss1 << header.level;
64         ss1 >> s1;
65         node_level.set_label (s1);
66
67         ss2 << header.item_count;
68         ss2 >> s2;
69         node_items.set_label (s2);
70
71         ss3 << header.free_space;
72         ss3 >> s3;
73         node_freespace.set_label (s3);
74
75         if (dynamic_cast<BTreeChildData *>(data)) {
76                 data_type.set_label ("BTreeChildData");
77                 data_key.set_label ("N/C");
78
79                 std::string s4;
80                 std::stringstream ss4;
81                 ss4 << data->GetChild ();
82                 ss4 >> s4;
83                 data_child.set_label (s4);
84         } else if (dynamic_cast<BTreeLeafData *>(data)) {
85                 data_type.set_label ("BTreeLeafData");
86                 data_child.set_label ("N/C");
87
88                 std::string s4 = *(data->GetKey ());
89                 std::cout << "----> " << s4 << std::endl;
90                 data_key.set_label (s4);
91         } else {
92                 data_type.set_label ("BTreeData");
93
94                 std::string s4;
95                 std::stringstream ss4;
96                 ss4 << data->GetChild ();
97                 ss4 >> s4;
98                 data_child.set_label (s4);
99
100                 std::string s5 = *(data->GetKey ());
101                 data_key.set_label (s5);
102         }
103 }
104