/*********************************************************************/ /// <summary> /// Setzt für einen Vertex das Attribut welches dieser Repräsentiert /// </summary> /// <param name="vertex">Vertex dessen Attribut geändert werden soll</param> /// <param name="attributeType">neues Attribut des Vertex</param> internal bool setVertexAttribute(CTreeVertex vertex, CAttributeType attributeType) { // sollte das Attribut bereits von einem Parent-Knoten verwendet werden // darf der Benutzer dieser Attribut nicht verwenden if (isAttributeUsedByParent(vertex, attributeType) == true) { return(false); } // wenn das Attribut bereits das ist welches der Vertex repräsentiert, // müssen wir nichts machen. if (vertex.AttributeType != attributeType) { mTreeHandler.removeChildVertices(vertex); // Attribut des Vertex setzen vertex.AttributeType = attributeType; if (vertex.AttributeType != null) { // TODO Kindknoten erzeugen und Verbindungen anlegen: //diskreter Wert (Splitwerte zurzeit nicht verfügbar -> ||true) if (attributeType.DataType.Equals(E_DATATYPE.E_STRING) || true) { //alte Children löschen mTreeHandler.removeChildVertices(vertex); //Werte für die Kindknoten erhalten CValueList childVertices = mTableLogic.getChildVertices(vertex); //Knoten und Verbindungen hinzufügen foreach (CAttributeValue value in childVertices) { CTreeVertex childVertex = addVertex(vertex, null); childVertex.ParentEdge = addEdge(vertex, childVertex, value); } } else //stetiger Wert { //Splitwert abfragen //Datenbankabfrage, GROUP BY? // } } return(true); } return(false); }