'\t\t\t' Text.Whitespace 'import' Keyword ' ' Text.Whitespace 'flash.events.MouseEvent' Name.Namespace ';' Operator '\n\t\t\t' Text.Whitespace 'import' Keyword ' ' Text.Whitespace 'com.example.programmingas3.playlist.PlayList' Name.Namespace ';' Operator '\n\t\t\t' Text.Whitespace 'import' Keyword ' ' Text.Whitespace 'com.example.programmingas3.playlist.Song' Name.Namespace ';' Operator '\n\t\t\t' Text.Whitespace 'import' Keyword ' ' Text.Whitespace 'com.example.programmingas3.playlist.SortProperty' Name.Namespace ';' Operator '\n\n\t\t\t' Text.Whitespace '// constants for the different "states" of the song form\n' Comment.Single '\t\t\t' Text.Whitespace 'private' Keyword.Declaration ' ' Text.Whitespace 'static' Keyword.Declaration ' ' Text.Whitespace 'const' Keyword.Declaration ' ' Text.Whitespace 'ADD_SONG' Name ':' Punctuation 'uint' Keyword.Type ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '1' Literal.Number.Integer ';' Operator '\n\t\t\t' Text.Whitespace 'private' Keyword.Declaration ' ' Text.Whitespace 'static' Keyword.Declaration ' ' Text.Whitespace 'const' Keyword.Declaration ' ' Text.Whitespace 'SONG_DETAIL' Name ':' Punctuation 'uint' Keyword.Type ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '2' Literal.Number.Integer ';' Operator '\n\t\t\t\n\t\t\t' Text.Whitespace 'private' Keyword.Declaration ' ' Text.Whitespace 'var' Keyword.Declaration ' ' Text.Whitespace 'playList' Name ':' Punctuation 'PlayList' Keyword.Type ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'new' Keyword ' ' Text.Whitespace 'PlayList.' Keyword.Type '(' Operator ');' Operator '\n\n\t\t\t' Text.Whitespace 'private' Keyword.Declaration ' ' Text.Whitespace 'function ' Keyword.Declaration 'initApp' Name.Function '(' Operator ')' Operator ':' Operator 'void' Keyword.Type '\n\t\t\t' Text.Whitespace '{' Operator '\n\t\t\t\t' Text.Whitespace '// set the initial state of the song form, for adding a new song\n' Comment.Single '\t\t\t\t' Text.Whitespace 'setFormState' Name '(' Operator 'ADD_SONG' Name ');' Operator '\n\t\t\t\t\n\t\t\t\t' Text.Whitespace '// prepopulate the list with a few songs\n' Comment.Single '\t\t\t\t' Text.Whitespace 'playList' Name '.' Operator 'addSong' Name.Attribute '(' Operator 'new' Keyword ' ' Text.Whitespace 'Song' Keyword.Type '(' Operator '"Nessun Dorma"' Literal.String.Double ',' Operator ' ' Text.Whitespace '"Luciano Pavarotti"' Literal.String.Double ',' Operator ' ' Text.Whitespace '1990' Literal.Number.Integer ',' Operator ' ' Text.Whitespace '"nessundorma.mp3"' Literal.String.Double ',' Operator ' ' Text.Whitespace '[' Operator '"90\'s"' Literal.String.Double ',' Operator ' ' Text.Whitespace '"Opera"' Literal.String.Double ']));' Operator '\n\t\t\t\t' Text.Whitespace 'playList' Name '.' Operator 'addSong' Name.Attribute '(' Operator 'new' Keyword ' ' Text.Whitespace 'Song' Keyword.Type '(' Operator '"Come Undone"' Literal.String.Double ',' Operator ' ' Text.Whitespace '"Duran Duran"' Literal.String.Double ',' Operator ' ' Text.Whitespace '1993' Literal.Number.Integer ',' Operator ' ' Text.Whitespace '"comeundone.mp3"' Literal.String.Double ',' Operator ' ' Text.Whitespace '[' Operator '"90\'s"' Literal.String.Double ',' Operator ' ' Text.Whitespace '"Pop"' Literal.String.Double ']));' Operator '\n\t\t\t\t' Text.Whitespace 'playList' Name '.' Operator 'addSong' Name.Attribute '(' Operator 'new' Keyword ' ' Text.Whitespace 'Song' Keyword.Type '(' Operator '"Think of Me"' Literal.String.Double ',' Operator ' ' Text.Whitespace '"Sarah Brightman"' Literal.String.Double ',' Operator ' ' Text.Whitespace '1987' Literal.Number.Integer ',' Operator ' ' Text.Whitespace '"thinkofme.mp3"' Literal.String.Double ',' Operator ' ' Text.Whitespace '[' Operator '"Showtunes"' Literal.String.Double ']));' Operator '\n\t\t\t\t' Text.Whitespace 'playList' Name '.' Operator 'addSong' Name.Attribute '(' Operator 'new' Keyword ' ' Text.Whitespace 'Song' Keyword.Type '(' Operator '"Unbelievable"' Literal.String.Double ',' Operator ' ' Text.Whitespace '"EMF"' Literal.String.Double ',' Operator ' ' Text.Whitespace '1991' Literal.Number.Integer ',' Operator ' ' Text.Whitespace '"unbelievable.mp3"' Literal.String.Double ',' Operator ' ' Text.Whitespace '[' Operator '"90\'s"' Literal.String.Double ',' Operator ' ' Text.Whitespace '"Pop"' Literal.String.Double ']));' Operator '\n\n\t\t\t\t' Text.Whitespace 'songList' Name '.' Operator 'dataProvider' Name.Attribute ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'playList' Name '.' Operator 'songList' Name.Attribute ';' Operator '\n\t\t\t' Text.Whitespace '}' Operator '\n\n\n\t\t\t' Text.Whitespace 'private' Keyword.Declaration ' ' Text.Whitespace 'function ' Keyword.Declaration 'sortList' Name.Function '(' Operator 'sortField' Name ':' Operator 'SortProperty.' Keyword.Type ')' Operator ':' Operator 'void' Keyword.Type '\n\t\t\t' Text.Whitespace '{' Operator '\n\t\t\t\t' Text.Whitespace '// Make all the sort type buttons enabled.\n' Comment.Single '\t\t\t\t' Text.Whitespace '// The active one will be grayed-out below\n' Comment.Single '\t\t\t\t' Text.Whitespace 'sortByTitle' Name '.' Operator 'selected' Name.Attribute ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'false' Keyword.Constant ';' Operator '\n\t\t\t\t' Text.Whitespace 'sortByArtist' Name '.' Operator 'selected' Name.Attribute ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'false' Keyword.Constant ';' Operator '\n\t\t\t\t' Text.Whitespace 'sortByYear' Name '.' Operator 'selected' Name.Attribute ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'false' Keyword.Constant ';' Operator '\n\n\t\t\t\t' Text.Whitespace 'switch' Keyword ' ' Text.Whitespace '(' Operator 'sortField' Name ')' Operator '\n\t\t\t\t' Text.Whitespace '{' Operator '\n\t\t\t\t\t' Text.Whitespace 'case' Keyword ' ' Text.Whitespace 'SortProperty' Name '.' Operator 'TITLE' Name.Attribute ':' Operator '\n\t\t\t\t\t\t' Text.Whitespace 'sortByTitle' Name '.' Operator 'selected' Name.Attribute ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'true' Keyword.Constant ';' Operator '\n\t\t\t\t\t\t' Text.Whitespace 'break' Keyword ';' Operator '\n\t\t\t\t\t' Text.Whitespace 'case' Keyword ' ' Text.Whitespace 'SortProperty' Name '.' Operator 'ARTIST' Name.Attribute ':' Operator '\n\t\t\t\t\t\t' Text.Whitespace 'sortByArtist' Name '.' Operator 'selected' Name.Attribute ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'true' Keyword.Constant ';' Operator '\n\t\t\t\t\t\t' Text.Whitespace 'break' Keyword ';' Operator '\n\t\t\t\t\t' Text.Whitespace 'case' Keyword ' ' Text.Whitespace 'SortProperty' Name '.' Operator 'YEAR' Name.Attribute ':' Operator '\n\t\t\t\t\t\t' Text.Whitespace 'sortByYear' Name '.' Operator 'selected' Name.Attribute ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'true' Keyword.Constant ';' Operator '\n\t\t\t\t\t\t' Text.Whitespace 'break' Keyword ';' Operator '\n\t\t\t\t' Text.Whitespace '}' Operator '\n\n\t\t\t\t' Text.Whitespace 'playList' Name '.' Operator 'sortList' Name.Attribute '(' Operator 'sortField' Name ');' Operator '\n\t\t\t\t\n\t\t\t\t' Text.Whitespace 'refreshList' Name '();' Operator '\n\t\t\t' Text.Whitespace '}' Operator '\n\n\n\t\t\t' Text.Whitespace 'private' Keyword.Declaration ' ' Text.Whitespace 'function ' Keyword.Declaration 'refreshList' Name.Function '(' Operator ')' Operator ':' Operator 'void' Keyword.Type '\n\t\t\t' Text.Whitespace '{' Operator '\n\t\t\t\t' Text.Whitespace '// remember which song was selected\n' Comment.Single '\t\t\t\t' Text.Whitespace 'var' Keyword.Declaration ' ' Text.Whitespace 'selectedSong' Name ':' Punctuation 'Song' Keyword.Type ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'Song' Name '(' Operator 'songList' Name '.' Operator 'selectedItem' Name.Attribute ');' Operator '\n\t\t\t\t\n\t\t\t\t' Text.Whitespace '// re-assign the song list as the dataprovider to get the newly sorted list\n' Comment.Single '\t\t\t\t' Text.Whitespace '// and force the List control to refresh itself\n' Comment.Single '\t\t\t\t' Text.Whitespace 'songList' Name '.' Operator 'dataProvider' Name.Attribute ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'playList' Name '.' Operator 'songList' Name.Attribute ';' Operator '\n\t\t\t\t\n\t\t\t\t' Text.Whitespace '// reset the song selection\n' Comment.Single '\t\t\t\t' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Operator 'selectedSong' Name ' ' Text.Whitespace '!=' Operator ' ' Text.Whitespace 'null' Keyword.Constant ')' Operator '\n\t\t\t\t' Text.Whitespace '{' Operator '\n\t\t\t\t\t' Text.Whitespace 'songList' Name '.' Operator 'selectedItem' Name.Attribute ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'selectedSong' Name ';' Operator '\n\t\t\t\t' Text.Whitespace '}' Operator '\n\t\t\t' Text.Whitespace '}' Operator '\n\n\n\t\t\t' Text.Whitespace 'private' Keyword.Declaration ' ' Text.Whitespace 'function ' Keyword.Declaration 'songSelectionChange' Name.Function '(' Operator ')' Operator ':' Operator 'void' Keyword.Type '\n\t\t\t' Text.Whitespace '{' Operator '\n\t\t\t\t' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Operator 'songList' Name '.' Operator 'selectedIndex' Name.Attribute ' ' Text.Whitespace '!=' Operator ' ' Text.Whitespace '-' Operator '1' Literal.Number.Integer ')' Operator '\n\t\t\t\t' Text.Whitespace '{' Operator '\n\t\t\t\t\t' Text.Whitespace 'setFormState' Name '(' Operator 'SONG_DETAIL' Name ');' Operator '\n\t\t\t\t' Text.Whitespace '}' Operator '\n\t\t\t\t' Text.Whitespace 'else' Keyword '\n\t\t\t\t' Text.Whitespace '{' Operator '\n\t\t\t\t\t' Text.Whitespace 'setFormState' Name '(' Operator 'ADD_SONG' Name ');' Operator '\n\t\t\t\t' Text.Whitespace '}' Operator '\n\t\t\t' Text.Whitespace '}' Operator '\n\n\n\t\t\t' Text.Whitespace 'private' Keyword.Declaration ' ' Text.Whitespace 'function ' Keyword.Declaration 'addNewSong' Name.Function '(' Operator ')' Operator ':' Operator 'void' Keyword.Type '\n\t\t\t' Text.Whitespace '{' Operator '\n\t\t\t\t' Text.Whitespace '// gather the values from the form and add the new song\n' Comment.Single '\t\t\t\t' Text.Whitespace 'var' Keyword.Declaration ' ' Text.Whitespace 'title' Name ':' Punctuation 'String' Keyword.Type ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'newSongTitle' Name '.' Operator 'text' Name.Attribute ';' Operator '\n\t\t\t\t' Text.Whitespace 'var' Keyword.Declaration ' ' Text.Whitespace 'artist' Name ':' Punctuation 'String' Keyword.Type ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'newSongArtist' Name '.' Operator 'text' Name.Attribute ';' Operator '\n\t\t\t\t' Text.Whitespace 'var' Keyword.Declaration ' ' Text.Whitespace 'year' Name ':' Punctuation 'uint' Keyword.Type ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'newSongYear' Name '.' Operator 'value' Name.Attribute ';' Operator '\n\t\t\t\t' Text.Whitespace 'var' Keyword.Declaration ' ' Text.Whitespace 'filename' Name ':' Punctuation 'String' Keyword.Type ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'newSongFilename' Name '.' Operator 'text' Name.Attribute ';' Operator '\n\t\t\t\t' Text.Whitespace 'var' Keyword.Declaration ' ' Text.Whitespace 'genres' Name ':' Punctuation 'Array' Keyword.Type ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'newSongGenres' Name '.' Operator 'selectedItems' Name.Attribute ';' Operator '\n\n\t\t\t\t' Text.Whitespace 'playList' Name '.' Operator 'addSong' Name.Attribute '(' Operator 'new' Keyword ' ' Text.Whitespace 'Song' Keyword.Type '(' Operator 'title' Name ',' Operator ' ' Text.Whitespace 'artist' Name ',' Operator ' ' Text.Whitespace 'year' Name ',' Operator ' ' Text.Whitespace 'filename' Name ',' Operator ' ' Text.Whitespace 'genres' Name '));' Operator '\n\n\t\t\t\t' Text.Whitespace 'refreshList' Name '();' Operator '\n\t\n\t\t\t\t' Text.Whitespace '// clear out the "add song" form fields\n' Comment.Single '\t\t\t\t' Text.Whitespace 'setFormState' Name '(' Operator 'ADD_SONG' Name ');' Operator '\n\t\t\t' Text.Whitespace '}' Operator '\n\n\n\t\t\t' Text.Whitespace 'private' Keyword.Declaration ' ' Text.Whitespace 'function ' Keyword.Declaration 'songListLabel' Name.Function '(' Operator 'item' Name ':' Operator 'Object' Keyword.Type ')' Operator ':' Operator 'String' Keyword.Type '\n\t\t\t' Text.Whitespace '{' Operator '\n\t\t\t\t' Text.Whitespace 'return' Keyword ' ' Text.Whitespace 'item' Name '.' Operator 'toString' Name.Attribute '();' Operator '\n\t\t\t' Text.Whitespace '}' Operator '\n\n\n\t\t\t' Text.Whitespace 'private' Keyword.Declaration ' ' Text.Whitespace 'function ' Keyword.Declaration 'setFormState' Name.Function '(' Operator 'state' Name ':' Operator 'uint' Keyword.Type ')' Operator ':' Operator 'void' Keyword.Type '\n\t\t\t' Text.Whitespace '{' Operator '\n\t\t\t\t' Text.Whitespace '// set the form title and control state\n' Comment.Single '\t\t\t\t' Text.Whitespace 'switch' Keyword ' ' Text.Whitespace '(' Operator 'state' Name ')' Operator '\n\t\t\t\t' Text.Whitespace '{' Operator '\n\t\t\t\t\t' Text.Whitespace 'case' Keyword ' ' Text.Whitespace 'ADD_SONG' Name ':' Operator '\n\t\t\t\t\t\t' Text.Whitespace 'formTitle' Name '.' Operator 'text' Name.Attribute ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '"Add New Song"' Literal.String.Double ';' Operator '\n\t\t\t\t\t\t' Text.Whitespace '// show the submit button\n' Comment.Single '\t\t\t\t\t\t' Text.Whitespace 'submitSongData' Name '.' Operator 'visible' Name.Attribute ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'true' Keyword.Constant ';' Operator '\n\t\t\t\t\t\t' Text.Whitespace 'showAddControlsBtn' Name '.' Operator 'visible' Name.Attribute ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'false' Keyword.Constant ';' Operator '\n\t\t\t\t\t\t' Text.Whitespace '// clear the form fields\n' Comment.Single '\t\t\t\t\t\t' Text.Whitespace 'newSongTitle' Name '.' Operator 'text' Name.Attribute ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '""' Literal.String.Double ';' Operator '\n\t\t\t\t\t\t' Text.Whitespace 'newSongArtist' Name '.' Operator 'text' Name.Attribute ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '""' Literal.String.Double ';' Operator '\n\t\t\t\t\t\t' Text.Whitespace 'newSongYear' Name '.' Operator 'value' Name.Attribute ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '(' Operator 'new' Keyword ' ' Text.Whitespace 'Date' Keyword.Type '(' Operator ')).' Operator 'fullYear' Name ';' Operator '\n\t\t\t\t\t\t' Text.Whitespace 'newSongFilename' Name '.' Operator 'text' Name.Attribute ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '""' Literal.String.Double ';' Operator '\n\t\t\t\t\t\t' Text.Whitespace 'newSongGenres' Name '.' Operator 'selectedIndex' Name.Attribute ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '-' Operator '1' Literal.Number.Integer ';' Operator '\n\t\t\t\t\t\t' Text.Whitespace '// deselect the currently selected song (if any)\n' Comment.Single '\t\t\t\t\t\t' Text.Whitespace 'songList' Name '.' Operator 'selectedIndex' Name.Attribute ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '-' Operator '1' Literal.Number.Integer ';' Operator '\n\t\t\t\t\t\t' Text.Whitespace 'break' Keyword ';' Operator '\n\t\t\t\t\t\t\n\t\t\t\t\t' Text.Whitespace 'case' Keyword ' ' Text.Whitespace 'SONG_DETAIL' Name ':' Operator '\n\t\t\t\t\t\t' Text.Whitespace 'formTitle' Name '.' Operator 'text' Name.Attribute ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '"Song Details"' Literal.String.Double ';' Operator '\n\t\t\t\t\t\t' Text.Whitespace "// populate the form with the selected item's data\n" Comment.Single '\t\t\t\t\t\t' Text.Whitespace 'var' Keyword.Declaration ' ' Text.Whitespace 'selectedSong' Name ':' Punctuation 'Song' Keyword.Type ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'Song' Name '(' Operator 'songList' Name '.' Operator 'selectedItem' Name.Attribute ');' Operator '\n\t\t\t\t\t\t' Text.Whitespace 'newSongTitle' Name '.' Operator 'text' Name.Attribute ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'selectedSong' Name '.' Operator 'title' Name.Attribute ';' Operator '\n\t\t\t\t\t\t' Text.Whitespace 'newSongArtist' Name '.' Operator 'text' Name.Attribute ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'selectedSong' Name '.' Operator 'artist' Name.Attribute ';' Operator '\n\t\t\t\t\t\t' Text.Whitespace 'newSongYear' Name '.' Operator 'value' Name.Attribute ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'selectedSong' Name '.' Operator 'year' Name.Attribute ';' Operator '\n\t\t\t\t\t\t' Text.Whitespace 'newSongFilename' Name '.' Operator 'text' Name.Attribute ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'selectedSong' Name '.' Operator 'filename' Name.Attribute ';' Operator '\n\t\t\t\t\t\t' Text.Whitespace 'newSongGenres' Name '.' Operator 'selectedItems' Name.Attribute ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'selectedSong' Name '.' Operator 'genres' Name.Attribute ';' Operator '\n\t\t\t\t\t\t' Text.Whitespace '// hide the submit button\n' Comment.Single '\t\t\t\t\t\t' Text.Whitespace 'submitSongData' Name '.' Operator 'visible' Name.Attribute ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'false' Keyword.Constant ';' Operator '\n\t\t\t\t\t\t' Text.Whitespace 'showAddControlsBtn' Name '.' Operator 'visible' Name.Attribute ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'true' Keyword.Constant ';' Operator '\n\t\t\t\t\t\t' Text.Whitespace 'break' Keyword ';' Operator '\n\t\t\t\t' Text.Whitespace '}' Operator '\n\t\t\t' Text.Whitespace '}' Operator '\n' Text.Whitespace