void ViewItemSet::reBuildTree(const ItemSet& it){ Graph *graph=getGlMainWidget()->getGraph(); vector<ItemSet> data; DataSet dataset; bool b=graph->getAttribute("datasetitem",dataset); bool c=dataset.get("ItemSet",data); graph->holdObservers(); graph->clear(); StringProperty *labelItemSet=graph->getLocalProperty<StringProperty>("viewLabel"); DoubleProperty *frequentItemSet=graph->getLocalProperty<DoubleProperty>("viewFrequent"); //ItemSet itemset; node nodeNull=graph->addNode(); node curNode; node pointerSon; labelItemSet->setNodeValue(nodeNull,"NULL"); frequentItemSet->setNodeValue(nodeNull,0); int x=data.size(); for(int i=0;i<x;i++){ ItemSet &itemset=data[i]; int size=itemset.numberOfItem(); double fr= atof(itemset.getItem(size-1)->getName().c_str()); itemset.removeItem(size); if(size!=0){ curNode=nodeNull; //cursor node for(int i=0;i<size-1;i++) if(it.isExitItem(*itemset.getItem(i))) itemset.getItem(i)->setPriority(true); itemset.sortItems(); for(int i=0;i<size-1;i++) { pointerSon=isNodeSon(itemset.getItem(i)->getName(),curNode); if(!pointerSon.isValid()){ node n= node(); n=graph->addNode(); labelItemSet->setNodeStringValue(n,itemset.getItem(i)->getName()); frequentItemSet->setNodeValue(n,fr); edge e=graph->addEdge(curNode,n); curNode=n; }else{ curNode= pointerSon; frequentItemSet->setNodeValue(curNode,frequentItemSet->getNodeValue(curNode)+fr); } } } itemset.clear(); } string erreurMsg; DataSet tmp; LayoutProperty * layout = graph->getLocalProperty<LayoutProperty>("viewLayout"); // get the viewLayout property of your graph StructDef structDef = LayoutProperty::factory->getPluginParameters("Hierarchical Tree (R-T Extended)"); structDef.buildDefaultDataSet(tmp,graph); // tmp.set<float>("node size", nodeSize); // tmp.set<float>("layer spacing", 200.); // tmp.set<float>("node spacing", 20.); //tmp.set("orthogonal", true); StringCollection tmpS("vertical;horizontal;"); tmp.set("orientation", tmpS); LayoutProperty tempLayout(graph); tempLayout = *layout; graph->computeProperty<LayoutProperty>("Hierarchical Tree (R-T Extended)", &tempLayout, //"Squarified Tree Map","Hierarchical Graph" erreurMsg, 0, &tmp); // call to the plugin. *layout = tempLayout; graph->unholdObservers(); }