The TileView control was created to replace the default Dashboard view provided by DAW in their WebApplications. The Dashboard view is rather limited in functionality which prompted the creation of this class
Some of the features we had been looking for are
- Dynamic Tiles
Dynamically hiding and showing tiles. When doing so we expect the tile view to reorganize of course
Dynamically adding and removing tiles. We also expect the tile view to reorganize when tiles are removed or added
Dynamically changing content on tiles - Ability to easily change the appearance of tiles (Colors, Font, Font Size, Text location, icon, image, etc)
- Different size tiles
- Tiles with icons
- Tiles with images
- Responsive View
tiles view should reorganize based on size of device
Types of Tiles
We want to support different size tiles. Normal Size (a square tile), small size (also square but smaller, 4 filling the space of one normal tile) and a wide tile (rectangular filling the space of 2 normal tiles)
We also want to support tiles with icons as well as tiles with images
Here is an example of what these tiles look like

Lets take a look at the code that created these tiles
Object oTileView is a cszTileView
Set piColumnSpan to 0
Object oSchedClientTile is a cszTile
Set psID to "1"
Set psBackgroundColor to "#0072c6"
Set psBackgroundImage to "images/icon-schedclients.png"
Set psLabel to "Scheduled Clients"
End_Object
Object oBird1Tile is a cszTile
Set psID to "bird1"
Set psBackgroundColor to ""
Set psBackgroundImage to "images/bird1.png"
Set psLabel to "Bird1"
Set psImageType to "fill"
Set psTextTop to 5
Set psTextAlign to "left"
End_Object
Object oShiftTile is a cszTile
Set psID to "2"
Set psBackgroundColor to "#005899"
Set psBackgroundImage to "images/icon-shifts.png"
Set psLabel to "Shifts"
Set pbShow to False
End_Object
Object oSchedTile is a cszTile
Set psID to "3"
Set psBackgroundColor to "#179bd7"
Set psBackgroundImage to "images/icon-schedule.png"
Set psLabel to "Schedule"
End_Object
Object oTileContainer is a cszTile
Set psID to "cont"
Set psTileType to "container"
Set psBackgroundColor to "#ffffff"
Set psBackgroundImage to ""
Set psLabel to "111"
Set psImageType to "none"
Object oSmallTile is a cszTile
Set psID to "small1"
Set psBackgroundColor to "#179bd7"
Set psBackgroundImage to "images/icon-schedule.png"
Set psLabel to "Small"
Set psTileType to "small"
End_Object
Object oSmallTile2 is a cszTile
Set psID to "small2"
Set psBackgroundColor to "#0065b0"
Set psBackgroundImage to "images/icon-shifts.png"
Set psLabel to "Small"
Set psTileType to "small"
End_Object
Object oSmallTile3 is a cszTile
Set psID to "small3"
Set psBackgroundColor to "#179bd7"
Set psBackgroundImage to "images/bird1.png"
Set psLabel to "Bird1"
Set psImageType to "fill"
Set psTileType to "small"
End_Object
End_Object
Object oWideTile is a cszTile
Set psID to "4"
Set psTileType to "wide"
Set psBackgroundColor to "#4b99ee"
Set psBackgroundImage to "images/icon-schedule.png"
Set psLabel to "Schedule"
End_Object
Object oBirdWide is a cszTile
Set psID to "bird"
Set psTileType to "wide"
Set psBackgroundColor to "#179bd7"
Set psBackgroundImage to "images/bird.png"
Set psLabel to "Schedule"
Set psImageType to "fill"
Set psTextAlign to "left"
End_Object
End_Object
We can also dynamically modify a tile as follows
Procedure UpdateMyTile
// change tile
Set psBackgroundColor of oSchedClientTile to "#379417"
Set psBackgroundImage of oSchedClientTile to "images/icon-schedclients.png"
Set psLabel of oSchedClientTile to "New Test"
// send update to client
Send RequestUpdateTile to oSchedClientTile
End_Procedure
Responsive Tiles
We want our tile view to be responsive and change based on device size or browser size

Hiding and Showing Tiles
We can hide and show Tiles by setting the pbShow property of the tile object
Full Dynamic Tiles
if we want to create tiles fully dynamic we can do that as well
Object oTileView is a cszTileView
Set piColumnSpan to 0
Procedure DoCreateDynamicTiles
Integer hoTile
Send ClearTiles
Get Create (RefClass(cszTileHandler)) to hoTile
Set psID of hoTile to "1"
Set psBackgroundColor of hoTile to "#0072c6"
Set psBackgroundImage of hoTile to "images/icon-schedclients.png"
Set psLabel of hoTile to "Scheduled Clients"
Send SendJsonTile (GetTileJson(hoTile))
Set psID of hoTile to "bird1"
Set psBackgroundColor of hoTile to "#0072c6"
Set psBackgroundImage of hoTile to "images/bird1.png"
Set psLabel of hoTile to "Bird1"
Set psImageType of hoTile to "fill"
Send SendJsonTile (GetTileJson(hoTile))
Set psID of hoTile to "2"
Set psBackgroundColor of hoTile to "#005899"
Set psBackgroundImage of hoTile to "images/icon-shifts.png"
Set psLabel of hoTile to "Shifts"
Set psImageType of hoTile to "icon"
Send SendJsonTile (GetTileJson(hoTile))
Send Destroy to hoTile
Send CreateTileView
End_Procedure
Procedure OnTileClick String sTileID
End_Procedure
End_Object
The above code creates 3 tiles dynamically. We can also use the ClearTiles method to remove all tiles as well as the DeleteTile method to delete a specific tile.
A tile can be hidden or shown using the ShowTile method.
Visually Tiles can be modified in size, color, icon, image and other appearance using properties and/or css classes
This is just one of the many controls StarZen created for the WebApp platform.