Differences
This shows you the differences between two versions of the page.
tutorial:create_listener [2020/05/08 12:05] |
tutorial:create_listener [2020/05/08 12:05] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | **Listener** is a way to add code to generated UI classes by specifying it in the xml File. | ||
+ | For example, open file <wrap adicode>$projectDirectory/resources/xml/include/detail/FilmDI.xml</wrap> with XML editor.\\ | ||
+ | Change element: | ||
+ | |||
+ | <sxh xml; title: excerpt from 'FilmDI.axml' file.> | ||
+ | <text textLimit="255" mandatory="true" property="title" id="title"/> | ||
+ | </sxh> | ||
+ | by | ||
+ | <sxh xml; highlight: [2-11]; title: excerpt from 'FilmDI.axml' file.> | ||
+ | <text textLimit="255" property="description" layoutData="span 3" id="description"> | ||
+ | <listeners> | ||
+ | <listener listenerTypes="MODIFY_TEXT | AFTER_SYNCHRONIZE"> | ||
+ | <code>//Use red if title length > 12, otherwise use blue color | ||
+ | import org.eclipse.swt.SWT; | ||
+ | if (12 > #CONTROL().getText().length()) | ||
+ | #CONTROLLER().setForeground(#CSSCOLOR(#adichatz-common, error-foreground-color)); | ||
+ | else | ||
+ | #CONTROLLER().setForeground(#CSSCOLOR(#adichatz-common, info-foreground-color));</code> | ||
+ | </listener> | ||
+ | </listeners> | ||
+ | </text> | ||
+ | </sxh> | ||
+ | |||
+ | |||
+ | Open a new editor for the detail of a film, if the description field is longer than 12 letters, then the foreground color pass to Red otherwise the foreground color is Blue. | ||
+ | \\ | ||
+ | <wrap adicode>listenerTypes="MODIFY_TEXT | AFTER_SYNCHRONIZE</wrap> means that listener is launched when text change or after synchonization process.\\ | ||
+ | Be sure that the editor was not already open for the Film, otherwise the editor use the old version without the listener. |