Re: How to lock down a Dynamic object in a report
- To: mathgroup at smc.vnet.net
- Subject: [mg128259] Re: How to lock down a Dynamic object in a report
- From: awnl <awnl at gmx-topmail.de>
- Date: Sat, 29 Sep 2012 20:07:57 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
- References: <k466s7$a8m$1@smc.vnet.net>
Hi,
> Is there a way to lock a Dynamic object so it does not respond to
> users? I know it sounds funny, but I have created a LocatorPane to
> organize items in a database. When I publish my weekly report as a
> CDF, the same LoacatoPane also serves as a nice graphic of the
> current state of the database. However, the reader can accidentally
> scramble the Locators or try to apply the changes to the database
> which of course serves up errors in CDFReader. Solutions that don't
> work:
>
> * Deploy only locks down editing of graphics, but controls still
> respond. * Publishing the report as a PDF won't work because I use
> cell grouping and OpenerViews elsewhere in the report. * Recreating
> the LocatorPane as a Graphic is undesirable because I put a lot of
> work into it, and I don't want to have to maintain two complex
> functions like that.
>
> So, is there a wrapper like Deploy that I can use around my
> LocatorPane when I want to publish it as a static object?
You could try to just disable the locators. If they use the default
appearance, that will slightly change (be grayed out). You could
avoid that with a custom appearance definition. This does it for one of
the documentation examples with a global Style wrapper and overwrites
the appearance so the locator looks like it would if enabled:
Style[
DynamicModule[{pt = {1, 1}/2}, {LocatorPane[Dynamic[pt],
Graphics[{Gray, Disk[]}],
Appearance ->
Style[Graphics[{Locator[{0, 0}]}], Enabled -> True]],
Dynamic[pt]}],
Enabled -> False
]
Depending on the real example you might need to do something more
specific so that you only disable those locators that you actually want
to disable...
hth,
albert