Version

igTileManager Overview

Topic Overview

Purpose

This topic provides conceptual information about the igTileManager™ control including its main features, minimum requirements, and user functionality.

Required background

The following topics are prerequisites to understanding this topic:

In this topic

This topic contains the following sections:

Introduction

igTileManager summary

The grid layout of the igTileManager is based on igLayoutManager‘s Grid Layout and the control provides corresponding layout configurations for each tile in terms to position (row and column spans) and dimensions (row and column position). Each tile can be configured to display content according to its state – minimized or maximized. The igTileManager is integrated with the igSplitter control; as a result, tiles are organized (by default) into two panels – Maximized Tile panel and Minimized Tiles panel. The Maximized Tile panel displays one tile at a time (the maximized one) and the Minimized Tiles panel displays the minimized tiles. The Minimized Tiles panel has a scrollbar enabled by default that allows scrolling the minimized tiles.

Users interact with the control by selecting the tile to maximize and scrolling the Minimized Tiles panel. They can also resize the panels relatively to each other with the splitter bar. (For details, refer to User Interactions and Usability.)

Any Ignite UI for jQuery® control can be placed inside those tiles thus enabling moving and resizing of tiles, and changing the state of the tiles at run-time.

igTileManager tile states

igTileManager tiles have two states – minimized and maximized. The tiles are fed with different content for each state.

  • Minimized – this is the “regular” state of the tile. In this state, the tile usually presents its information in summary form. From this state, the tile can go to its Maximized state.
  • Maximized – this is the state which puts the focus on the tile and delivers the entire content that the tile represents. From this state, the tile can back to its Minimized state.

igTileManager operational modes

The mode specifies how maximized tiles are displayed. Initially, the igTileManager renders all tiles as minimized and placed in a single container. When the user selects a tile, it maximizes differently depending on the operational mode set for the control. The following operational modes are supported:

  • Dual Panel mode (default) – the container is split into two panels as described and illustrated in igTileManager summary.
  • Single Panel mode – the container exposes a single panel. At a pre-defined index position in the internal grid, a tile is displayed in its maximized state while all other tiles are in minimized state. (The maximized tile may span over a several rows and columns to better accommodate the maximized content.) When the user selects a tile to maximize, it swaps its position with the previously maximized tile and displays its Maximized state content.

The operational mode is managed with the maximizedTileIndex property. The valid settings for this property are the existing position indexes of the tiles. When the maximizedTileIndex property is not set, igTileManager will maximize tiles in Dual Panel mode. When the maximizedTileIndex property is set, igTileManager will maximize tiles in Single Panel mode using the tile at the specified index position as the location for displaying the maximized tile.

User Interactions and Usability

User interactions summary

The user clicks/taps a minimized tile to maximize it and display its whole content. The maximized tile is sent to the Maximized Tile panel. The previously selected tile is minimized and sent to the Minimized Tiles panel. Users can resize the panels relatively to each other with the splitter bar to enlarge the maximized tile or to show more of the minimized tiles. They can also navigate through the minimized tiles using the scrollbar.

User interactions summary chart

The following table summarizes the user interaction capabilities of the igTileManager control.

The user can… Using… Details Configurable?
Maximize a tile A mouse click on a minimized tile Maximizing can be enabled (default) or disabled with the preventMaximizingSelector property.
Minimize a maximized tile The Minimize button () The minimize button is rendered in the upper right corner of the maximized tile.
Resize the panels The splitter bar The splitter can be disabled and hidden from view by setting the showSplitter option to false.
Scroll the Minimized Tiles panel The scroll bar The scroll bar can be prevented from appearing by setting the showRightPanelScroll option to false.

Main Features

Main features summary

The features of the igTileManager control are a sum of the features of the controls that comprise it: igLayoutManager‘s Grid Layout, and igSplitter specific features plus a few features that are specific to igTileManager only. So igTileManager’s main features can be grouped into the following categories (Follow the links for details.):

Features based on igLayoutManager’s Grid layout

igTileManager is built on top of igLayoutManager grid algorithm – complex absolutely positioned tiles – which allows for merging rows and columns. The picture below demonstrates igTileManager instantiated on the existing markup in a container.

When the igTileManager control in its Dual Panel operational mode, a certain number of columns must be explicitly reserved to accommodate the Maximized Tile panel. For details, see Configurable number of rows and columns in the Minimized Tiles panel.

Features based on igSplitter

The two-panel layout exposed by igTileManager in its Dual Panel operational mode and the features related to that layout are based entirely on the igSplitter control. The following table summarizes the igSplitter features that are specific to the igTileManager control. Further details about the base control are available in the igSplitter group of topics.

Feature Description
Two-panel layout The igSplitter control provides two-panel layout for igTileManager – one for the maximized (selected) tile and one for the minimized ones.
Resizable panels The panels are resizable relative to each other by moving the splitter bar within the splitter control. When the splitter bar is shifted in the direction of one of the panels, this sizes the panel down accordingly and the other panel sizes up accordingly. By default, the panels are resizable. When the panels are resized, the minimized tiles in the Minimized Tiles panel are re-arranged to fill the panel. The maximized tile in the Maximized Tile panel is enlarged or shrunk, depending on the resizing. Panels resizing can be disabled by setting the showSplitter option to false.
Drag support for panel resizing By default, the igSplitter control supports mouse dragging for resizing panels. Users can resize the panels by dragging the splitter bar. Releasing the mouse button after the drag movement resizes the panels according to the new position of the splitter bar.

igTileManager specific features

The following table summarizes the main features of the igTileManager control.

Data binding

When connected to a data source, the igTileManager automatically displays it in a series of tiles.

States

A tile displays different content depending on whether it is minimized and maximized. That is why each of these two states is configured individually using the minimizedState and maximizedState properties respectively. These properties take selectors as their value and the tile displays the content of the corresponding elements when in the respective state.

  • The Minimized state is the state of the tile when it is minimized and resides in the Minimized Tiles panel.
  • The Maximized state displays the full content of the selected tile and would show the entire content of the tile.

Minimized state viewport (All tiles are in minimized state.)

Maximized state viewport (One of the tiles is maximized and all the others are in minimized state.)

Fluid design

The igTileManager control exposes fluid design when column width of the grid is defined in percentages. In this case, the tiles resize to fit the available space dictated by the user's screen resolution. Thus the tiles retain their positions no matter what the size of the container is.

Responsive web design

The igTileManager control exposes fluid design when column width of the grid is defined in pixels. In this case, the tiles re-arrange when their container is resized to fit best in the space. Such rearranging occurs every time a tile is maximized or when the panels are resized with the splitter bar or the orientation of the device changes.

Animated transitions

The transition of a tile from one state to another is animated with a swap effect: when a tile is maximized and the user clicks any of the minimized tiles, the clicked tile and the maximized one are seemingly swapping their places.

Animation can be disabled by setting the animationDuration option to 0. In this case, the clicked minimized tile will just appear in the Maximized Tile panel as maximized.

Related topic:

Scrollable Minimized Tiles panel

The scroll bar of the Minimized Tiles panel allows users to navigate to the minimized tiles that are not visible. Such scrolling can be disabled by setting the showRightPanelScroll option to false. If the scrollbar is disabled, users will only see only as much minimized tiles as the current size of the Minimized Tiles panel can accommodate. The only way to show more minimized tiles in this case would be to enlarge the Minimized Tiles panel using the splitter.

Configurable tile sizes and positions

The internal grid that contains the tiles can be configured to have a certain number of rows and columns using the cols and rows options. This way the size and the positions of the tiles will be automatically calculated for placement in the desired number of rows and columns.

Related topic:

Configurable initially maximized tile

It is possible to specify which tile to be initially maximized when the igTileManager control is rendered. This is done by providing the index number of the tile to be maximized as the value of the maximizedTileIndex option.

Note: If you set an initially maximized tile, no Minimized Tiles panel will be rendered to host the minimized tiles and the control will operate in Single Panel mode.

Configurable number of rows and columns in the Minimized Tiles panel

The rows and columns of the internal grid in the Minimized Tiles panel can be pre-defined using the rightPanelCols option. This option has effect only in Dual Panel mode.

Related topic:

Configurable tile margins

The margins of the minimized tiles define the space around each tile in the grid. The top and the left margin of the minimized tiles are configurable thus forming an outset between the tiles. Tiles’ margins are configured with the marginTop and marginLeft options.

Touch Support

For touch-enabled devices, special classes are added to the tile manager and touch events are handled. On touch-enabled devices, the splitter bar is a bit wider (16 pixels of width) than it is on standard devices (6 pixels) to allow for easier user interaction with the splitter bar in the touch environment. For details, refer to Touch Support for Ignite UI for jQuery Controls.

Default Configuration

With its default settings, the igTileManager control renders tiles with items from markup and without left and top margin. All tiles fit in the container in equal number of columns and rows depending on the number of the tiles. The default configuration does not include any margins.

Requirements

The igTileManager control is a jQuery UI widget and, therefore, depends on the jQuery and jQuery UI libraries. The Modernizr library is also needed because the igSplitter depends on it. References to these resources are needed nevertheless, in spite of the use of pure jQuery or Ignite UI for MVC. The Infragistics.Web.Mvc assembly is required when the control is used in the context of ASP.NET MVC.

The CSS files for the igTileManager, igLayoutManager, igSplitter and should be referenced in your page for the correct rendering of the control.

Width and height should be defined for the <div> element that will contain the control.

For the igTileManager to display data, you should provide some data to the control or bind it to a data source.

For the full requirements listing, refer to the Adding igTileManager topic.

igTileManager Configuration Overview

igTileManager configuration summary

The main configurable aspects of the igTileManager control are the:

  • Number of rows and columns
  • Individual columns
  • Item position and span
  • Tile states
  • Minimized Tiles panel
  • Animated transitions’ duration
  • User interaction

Each of these aspects is explained in Configuring igTileManager.

igTileManager configuration summary chart

The following table lists the configurable aspects of the igTileManager control. Further details about most of the aspects are available in the sections following this summary table.

Configurable aspect Details JavaScript properties ASP.NET MVC properties
Number of rows and columns Number of rows The number of rows and columns to be rendered in the tile grid is configurable.
Number of columns
Individual columns Column height The width and height of each individual column in the tile grid are configurable.
Column width
Tile left margin The top and left margins for each tile in the tile grid are configurable.
Tile top margin
Operational mode Number of panels and placement of the maximized tile You can specify whether to display the maximized tile in a separate panel or in the same panel together with the minimized tiles. In the latter case, the position of the maximized tile inside the panel is configurable.
Item position and span Item position The position of an item in the tile grid can be configured be specifying the row and indexes of the desired position.
Item size Items can be configured to span over several rows and columns to accommodate larger items.
Tile states Minimized state Tile state is configured individually for each state.
Maximized state
Tiles’ margins Top margin The top and the left margin of the minimized tiles are configurable thus forming an outset between the tiles.
Left margin
Minimized Tiles panel Number of columns The number of columns to be rendered in the Minimized Tiles panel is configurable.
Minimized tiles’ width The width of the tiles in the Minimized Tiles panel is configurable.
Minimized tiles’ height The height of the tiles in the Minimized Tiles panel is configurable.
Scrollbar You can specify whether the Minimized Tiles panel should expose a scrollbar if the tiles are overflowing. When the scrollbar is disabled, the user might need to move the splitter to display the tiles that are out of sight.
Splitter bar visibility You can specify whether the splitter to be shown or not. By default, the splitter bar is visible.
Animated transitions’ duration Transition duration upon container re-size The duration of the animated transitions, upon both container re-sizing and changing the tile state (minimizing/maximizing) is configured with the animationDuration option and, consequently, always have same durations.
Transition duration upon tile minimizing/maximizing
User interaction Maximization trigger You can specify elements of a minimized tile that will not trigger maximizing. By default, clicking on <a> and <input> tags does not trigger maximizing.

Related Content

Topics

The following topics provide additional information related to this topic.

  • Adding igTileManager: This topic demonstrates, with code examples, how to add the igTileManager control to an HTML page in either JavaScript or ASP.NET MVC. This topic covers initializing igTileManager on the HTML markup.

  • Binding igTileManager to Data: This topic explains how to bind the igTileManager control to a JavaScript array, XML data, strongly typed MVC View, and to a JSON response from a remote service.

  • Configuring igTileManager: This topic explains how to configure the features and behavior of the igTileManager control.

  • Handling Events (igTileManager): This topic explains, with code examples, how to attach event handlers to the igTileManager control.

  • Accessibility Compliance (igTileManager): This topic explains the accessibility features of the igTileManager control and provides information on how to achieve accessibility compliance for pages containing this control.

  • Known Issues and Limitations (igTileManager): This topic provides information about the known issues and limitations of the igTileManager control and the available workarounds for them.

  • jQuery and MVC API Links (igTileManager): This topic lists the links to the API reference documentation for jQuery and its ASP.NET MVC helper class for the igTileManager control.

Samples

The following samples provide additional information related to this topic.

View on GitHub