Как мы можем создать кнопки ссылок, текст которых управляется данными, но видимость которых контролируется с внешнего интерфейса? - PullRequest
0 голосов
/ 23 января 2011

Я создал компонент на основе 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;
}

Как мне заставить это вступить в силу? Есть ли способ управления видимостью кнопки ссылки внутри средства визуализации элементов в компоненте из модуля, который использует этот компонент?

Ответы [ 2 ]

1 голос
/ 23 января 2011

Я не совсем уверен, что правильно понял ваш вопрос. Но если у вас есть компонент (или группа их), последовательно повторяющиеся несколько раз со значениями разных свойств, вы должны использовать mx: Repeater.

Документы Adobe на Repeater

Существует также живой пример в TourDeFlex (который я настоятельно рекомендую установить и использовать).

0 голосов
/ 27 января 2011

Похоже, это невозможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...