]> git.llucax.com Git - z.facultad/75.52/treemulator.git/blobdiff - viewer/view_properties.cpp
Guardo los nodos por recuperar al salir.
[z.facultad/75.52/treemulator.git] / viewer / view_properties.cpp
index c10bbae3402a6fb1b75523120a3c01192771ad30..0e789df53b51a265edc6664801e6ef87c283e8a4 100644 (file)
@@ -45,7 +45,13 @@ ViewProperties::ViewProperties ():Frame ()
 
        table.property_column_spacing () = 8;
        table.property_row_spacing () = 8;
 
        table.property_column_spacing () = 8;
        table.property_row_spacing () = 8;
-       add (table);
+
+       hbox.pack_start (table, false, true, 8);
+       hbox.pack_start (raw_view, true, true, 8);
+
+       table.set_size_request (250, 0);
+
+       add (hbox);
        
        property_label_xalign () = 0;
        set_label ("Propiedades");
        
        property_label_xalign () = 0;
        set_label ("Propiedades");
@@ -72,32 +78,63 @@ void ViewProperties::ShowItem (BTreeData *data, BTreeNodeHeader &header)
        ss3 >> s3;
        node_freespace.set_label (s3);
 
        ss3 >> s3;
        node_freespace.set_label (s3);
 
+       raw_view.get_buffer ()->assign (ToRaw (data));
+
        if (dynamic_cast<BTreeChildData *>(data)) {
                data_type.set_label ("BTreeChildData");
                data_key.set_label ("N/C");
 
                std::string s4;
                std::stringstream ss4;
        if (dynamic_cast<BTreeChildData *>(data)) {
                data_type.set_label ("BTreeChildData");
                data_key.set_label ("N/C");
 
                std::string s4;
                std::stringstream ss4;
-               ss4 << data->getChild ();
+               ss4 << data->GetChild ();
                ss4 >> s4;
                data_child.set_label (s4);
        } else if (dynamic_cast<BTreeLeafData *>(data)) {
                data_type.set_label ("BTreeLeafData");
                data_child.set_label ("N/C");
 
                ss4 >> s4;
                data_child.set_label (s4);
        } else if (dynamic_cast<BTreeLeafData *>(data)) {
                data_type.set_label ("BTreeLeafData");
                data_child.set_label ("N/C");
 
-               std::string s4 = *(data->getClave ());
+               std::string s4 = *(data->GetKey ());
+               std::cout << "----> " << s4 << std::endl;
                data_key.set_label (s4);
        } else {
                data_type.set_label ("BTreeData");
 
                std::string s4;
                std::stringstream ss4;
                data_key.set_label (s4);
        } else {
                data_type.set_label ("BTreeData");
 
                std::string s4;
                std::stringstream ss4;
-               ss4 << data->getChild ();
+               ss4 << data->GetChild ();
                ss4 >> s4;
                data_child.set_label (s4);
 
                ss4 >> s4;
                data_child.set_label (s4);
 
-               std::string s5 = *(data->getClave ());
+               std::string s5 = *(data->GetKey ());
                data_key.set_label (s5);
        }
 }
 
                data_key.set_label (s5);
        }
 }
 
+std::string ViewProperties::ToRaw (BTreeData *p)
+{
+       std::stringstream ss;
+       uint size = 0, i;
+       uchar *arr = NULL;
+       if (p->GetKey ()) {
+               arr = p->GetKey ()->ToRaw (size);
+       }
+
+       for (i=0; i < size; i++) {
+               if (isalnum (arr[i]) || (arr[i] == ']') || (arr[i] == '|') ||
+                       (arr[i] == '[') || (arr[i] == '-'))
+                       ss << arr[i];
+               else
+                       ss << ".";
+       }
+
+       if (p->GetChild () != 0) {
+               ss << "(";
+               ss << p->GetChild ();
+               ss << ")";
+       }
+
+       if (arr)
+               delete [] arr;
+       return ss.str ();
+}
+