0

要素のリストを表示する GUI に取り組んでいます。

すべての要素は 1 次元の iterable 配列にあるため、通常は次のように表示されます。

    foreach (Element e: elements) {
        display.Display(e);
    }

次の例のように、要素をツリー構造に編成する方法が必要です。 ここに画像の説明を入力

私のシステムでは、「フォルダー」要素と「ファイル」要素の間に区別はありませんが、要素の「深さ」と「isExpanded」値にアクセスできます。

前の要素を反復して取得したデータに基づいて、要素を表示するかどうかを決定するにはどうすればよいですか?

4

1 に答える 1

0

私はそれを理解したと思いますが、それを台無しにするいくつかのケースがあるかもしれません:

bool prevIsCollapsed = false;
int collapsedPropertyDepth = 0;

// iterate through each property of this component
for (Property p : properties)
{
    int depth = property.depth;
    if (prevIsCollapsed && depth > collapsedPropertyDepth)
    {
        // dont display this property
        continue;
    }

    if (!property.isExpanded)
    {
        prevIsCollapsed = true;
        collapsedPropertyDepth = depth;
    }
    else
    {
        prevIsCollapsed = false;
    }
}    
于 2013-11-10T01:16:26.150 に答える