even korte uitleg van het systeem, ik heb een basisinterface met een commandset en een toolbox die groupboxes bevat. Via een soort plugin systeem worden mbv een overlay extra groupboxes in de toolbox toegevoegd en ook extra commands in de commandset:
basis ui:
en dan een voorbeeld van een overlay:
goed, dit werkt dus allemaal, belangrijk is dus dat ik van tevoren niet weet hoeveel commands en groubboxen er in het geheel komen te zitten. Ook wil ik de code voor de overlays (plugins) zo clean mogelijk houden en er dus geen extra code in zetten als dat niet hoeft. Voorbeeld hiervan is dat ik die groupboxes met een binding van een in- en uitklap knopje voorzie.
Wat ik nu dus wil is dat alle controls in alle groupboxes in 1 keer gedisabled moeten worden. Ik kan natuurlijk wel brute force alle controls langslopen in de DOM en die disabelen, maar dat zie ik een beetje als laatste redmiddel, logischer is natuurlijk de bijbehorende commands disabelen, aangezien het dus de functie is die niet mag werken.
Maar van de commands weet ik dus ook niet welke het zijn, laatste redmiddel is hier weer alle commands langslopen en die disabelen, zie ik echter ook niet zo zitten
Helaas kan je niet het commandset als geheel disabelen volgens mij, dus ik vraag me af hoe ik dit nu het beste kan doen. Ik kan eigenlijk niet terug vinden hoe ik handig alle commands in een commandset kan uitzetten, hoewel misschien dmv een commandupdater, maar ik zie nog niet helemaal hoe dat zou moeten werken.
tips?
basis ui:
code:
1
2
3
4
5
6
7
| <commandset id="main_commands">
<command id="cmd_loadUrl" oncommand="SciFi.loadFromInput()"/>
</commandset>
<vbox id="tools">
<groupbox id="general_tools"/>
<!-- filled by plugin overlays -->
</vbox> |
en dan een voorbeeld van een overlay:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <commandset id="main_commands">
<command id="cmd_remove_stylesheets" oncommand="remove_stylesheets()" />
<command id="cmd_add_stylesheet" oncommand="add_stylesheet()" />
</commandset>
<vbox id="tools">
<groupbox id="style_tools">
<caption id="style_cap" label="style"/>
<checkbox label="remove original stylesheets" id="remove_stylesheets" command="cmd_remove_stylesheets"/>
<hbox>
<checkbox label="Add stylesheet:" id="add_stylesheet" command="cmd_add_stylesheet" />
<menulist editable="true" flex="1" id="add_stylesheet_name" command="cmd_add_stylesheet">
<menupopup>
<menuitem label="standard" value="plugins/style/standard.css"/>
<menuitem label="columns" value="plugins/style/columns.css"/>
<menuitem label="fancy" value="plugins/style/fancy.css"/>
</menupopup>
</menulist>
</hbox>
</groupbox>
</vbox> |
goed, dit werkt dus allemaal, belangrijk is dus dat ik van tevoren niet weet hoeveel commands en groubboxen er in het geheel komen te zitten. Ook wil ik de code voor de overlays (plugins) zo clean mogelijk houden en er dus geen extra code in zetten als dat niet hoeft. Voorbeeld hiervan is dat ik die groupboxes met een binding van een in- en uitklap knopje voorzie.
Wat ik nu dus wil is dat alle controls in alle groupboxes in 1 keer gedisabled moeten worden. Ik kan natuurlijk wel brute force alle controls langslopen in de DOM en die disabelen, maar dat zie ik een beetje als laatste redmiddel, logischer is natuurlijk de bijbehorende commands disabelen, aangezien het dus de functie is die niet mag werken.
Maar van de commands weet ik dus ook niet welke het zijn, laatste redmiddel is hier weer alle commands langslopen en die disabelen, zie ik echter ook niet zo zitten
Helaas kan je niet het commandset als geheel disabelen volgens mij, dus ik vraag me af hoe ik dit nu het beste kan doen. Ik kan eigenlijk niet terug vinden hoe ik handig alle commands in een commandset kan uitzetten, hoewel misschien dmv een commandupdater, maar ik zie nog niet helemaal hoe dat zou moeten werken.
tips?