Я создал компонент на основе mx: TitleWindow, который содержит кнопки ссылок, которые я использую в качестве контекстного меню.
Компонент TitleWindow содержит кнопки ссылок, подобные этим:
[Bindable]
private var _showEmailThis:Boolean = false;
[Bindable]
private var _showApproveThis:Boolean = false;
[Bindable]
private var _showReviewThis:Boolean = false;
<mx:LinkButton id="lnkEmailThis"
visible="{_showEmailThis}"
includeInLayout="{_showEmailThis}"
click="lnkEmailThis_click()"
label="Email this!" />
<mx:LinkButton id="lnkApproveThis"
visible="{_showApproveThis}"
includeInLayout="{_showApproveThis}"
click="lnkApproveThis_click()"
label="Approve this!" />
<mx:LinkButton id="lnkReviewThis"
visible="{_showReviewThis}"
includeInLayout="{_showReviewThis}"
click="lnkReviewThis_click()"
label="Review this!" />
Этот компонент содержит большое количество ссылок и повторно используется несколькими модулями в одном приложении.
В каждом модуле этот компонент используется, когда пользователь щелкает строку в сетке данных.
Код выглядит так:
В модуле «Запросы»:
private function dgRequests_click(event:MouseEvent):void
{
menu.showApproveThis = true;
menu.showReviewThis = true;
}
В модуле «Производительность»:
private function dgPerformance_click(event:MouseEvent):void
{
menu.showEmailThis = true;
menu.showReviewThis = true;
}
Как видите, видимость отдельных кнопок ссылок контролируется в каждом модуле путем установки логических свойств.
Если я изменю этот компонент для использования средства визуализации, как я могу контролировать видимость кнопок ссылок из кода в каждом модуле (существует более ста ссылок с различной функциональностью - не каждая ссылка будет использоваться в каждом модуле)? Примечание: из серверной части неизвестно, какая сетка в каком модуле использует какую ссылку. Это устанавливается во внешнем интерфейсе в файле ActionScript каждого модуля.
например, если XML выглядит так:
<links>
<link>
<label>Email This</label>
<visible>_showEmailThis</visible>
</link>
<link>
<label>Approve This</label>
<visible>_showApproveThis</visible>
</link>
<link>
<label>Review This</label>
<visible>_showReviewThis</visible>
</link>
</links>
и я установил ссылку на электронную почту, чтобы она отображалась в модуле так:
private function dgPerformance_click(event:MouseEvent):void
{
menu.showEmailThis = true;
}
Как мне заставить это вступить в силу? Есть ли способ управления видимостью кнопки ссылки внутри средства визуализации элементов в компоненте из модуля, который использует этот компонент?