2.33 :reparent()

Mit Hilfe dieser Methode können Elemente eines Baumes umgehängt werden. Dabei gibt es zwei Ausprägungen von Bäumen im IDM:

Die Informationen zu dieser Methode an einem treeview finden Sie im nachfolgenden Kapitel, die zu XML-Dokumenten im übernächsten.

2.33.1 :reparent() (treeview)

Mit Hilfe dieser Methode kann im treeview ein beliebiger Teilbaum umgehängt werden.

Definition

boolean :reparent
(
  integer Start  input,
  integer Count  input,
  integer Parent input,
  integer Target input
)

Parameter

integer Start input
In diesem Parameter wird der Index des Teilbaumes angegeben, der umgehängt werden soll.
integer Count input
Mit Hilfe dieses Parameters wird angegeben, wie viele Elemente im Baum umgehängt werden sollen.
integer Parent input
In diesem Parameter wird der Index des neuen Vaters des Teilbaumes angegeben.
integer Target input
In diesem Parameter wird der absolute Index angegeben, hinter dem der verschobene Teilbaum eingefügt werden soll.

Rückgabewert

true
Der Teilbaum wurde erfolgreich umgehängt.
false
Das Umhängen des Teilbaumes hat nicht funktioniert.

Objekte mit dieser Methode

treeview

Beispiel

dialog D

window Wn
{
  .title "Beispiel fuer die Methode :reparent()";

  child treeview Tv
  {
    .content[1] "Firma A";
    .content[2] "Mueller";
    .content[3] "Mayer";
    .content[4] "Firma B";
    .content[5] "Schulz";
    .content[6] "Schmidt";
    .content[7] "Fischer";
    .style[style_lines] true;
    .style[style_buttons] true;
    .style[style_root] true;
    .level[2] 2;
    .level[3] 2;
    .level[5] 2;
    .level[6] 2;
    .level[7] 2;

    boolean Select := false;
    integer Index := 0;

    on select
    {
      if Tv.Select then
        Tv:reparent(Tv.Index, 1, Tv.activeitem, Tv.activeitem);
        Tv.Select := false;
        St.text := "";
      endif
    }
  }

  child pushbutton Pb
  {
    .text "Firma angliedern";

    on select
    {
      variable integer Index;

      Tv.Index := Tv.activeitem;
      St.text := "Waehlen sie eine neue Firma";
      Tv.Select := true;
    }
  }

  child statictext St
  {
    .text "";
  }
}

2.33.2 :reparent() (doccursor)

Diese Methode hängt den DOM-Knoten mit allen Kindknoten um.

Werden die Werte des .path-Attributs woanders gemerkt (zum Beispiel im .userdata-Attribut), dann ist zu beachten, dass diese gemerkten Werte nicht angepasst werden, wenn die Struktur des DOM-Baums verändert wird. Ein anschließender Aufruf der Methode :select() mit einem dieser gemerkten Werte, kann demzufolge den XML-Cursor auf einen falschen DOM-Knoten zeigen lassen.

Definition

boolean :reparent
(
      object  Parent input
  { , integer Index  := -1 input }
)
boolean :reparent
(
  integer Index input
)

Parameter

object Parent input

Gibt den neuen Vaterknoten an. Muss vom Typ doccursor sein.

Ist kein Index angegeben, dann wird der DOM-Knoten als letzter eingefügt.

integer Index input
Gibt die Position an, an der der DOM-Knoten eingefügt werden soll. Ist ‑1 als Index angegeben, dann wird der DOM-Knoten als letzter Knoten angefügt.

Rückgabewert

Gibt an, ob die Aktion erfolgreich war.

Objekte mit dieser Methode

doccursor