Class TileGrid

All Implemented Interfaces:
HasAttachHandlers, HasHandlers, EventListener, HasVisibility, IsWidget, LogicalStructure, DataBoundComponent, HasClearHandlers, HasClickHandlers, HasDoubleClickHandlers, HasDragCompleteHandlers, HasDragMoveHandlers, HasDragRepositionMoveHandlers, HasDragRepositionStartHandlers, HasDragRepositionStopHandlers, HasDragResizeMoveHandlers, HasDragResizeStartHandlers, HasDragResizeStopHandlers, HasDragStartHandlers, HasDragStopHandlers, HasDropCompleteHandlers, HasDropHandlers, HasDropMoveHandlers, HasDropOutHandlers, HasDropOverHandlers, HasFetchDataHandlers, HasFocusChangedHandlers, HasHoverHandlers, HasHoverHiddenHandlers, HasKeyDownHandlers, HasKeyPressHandlers, HasMouseDownHandlers, HasMouseMoveHandlers, HasMouseOutHandlers, HasMouseOverHandlers, HasMouseStillDownHandlers, HasMouseUpHandlers, HasMouseWheelHandlers, HasMovedHandlers, HasParentMovedHandlers, HasResizedHandlers, HasRightMouseDownHandlers, HasRuleContextChangedHandlers, HasScrolledHandlers, HasShowContextMenuHandlers, HasVisibilityChangedHandlers, HasDataArrivedHandlers, HasRecordClickHandlers, HasRecordContextClickHandlers, HasRecordDoubleClickHandlers, HasSelectionChangedHandlers
Direct Known Subclasses:
TilePalette

A TileGrid is a DataBoundComponent that displays a list of objects as a set of "tiles", where each tile represents one object, and the tiles are laid out in a grid with multiple tiles per row. Each tile displays one or more properties of the object it represents.
  • Constructor Details

    • TileGrid

      public TileGrid()
    • TileGrid

      public TileGrid(JavaScriptObject jsObj)
  • Method Details

    • getOrCreateRef

      public static TileGrid getOrCreateRef(JavaScriptObject jsObj)
    • changeAutoChildDefaults

      public static void changeAutoChildDefaults(String autoChildName, Canvas defaults)
      Changes the defaults for Canvas AutoChildren named autoChildName.
      Parameters:
      autoChildName - name of an AutoChild to customize the defaults for.
      defaults - Canvas defaults to apply. These defaults override any existing properties without destroying or wiping out non-overridden properties. For usage tips on this param, see SGWTProperties.
      See Also:
    • changeAutoChildDefaults

      public static void changeAutoChildDefaults(String autoChildName, FormItem defaults)
      Changes the defaults for FormItem AutoChildren named autoChildName.
      Parameters:
      autoChildName - name of an AutoChild to customize the defaults for.
      defaults - FormItem defaults to apply. These defaults override any existing properties without destroying or wiping out non-overridden properties. For usage tips on this param, see SGWTProperties.
      See Also:
    • create

      protected JavaScriptObject create()
      Overrides:
      create in class TileLayout
    • setAnimateTileChange

      public TileGrid setAnimateTileChange(Boolean animateTileChange)
      If set, when the dataset changes due to filtering, sorting or other actions, any tiles that were showing before and after the change will animate from their old positions to their new positions.

      Note : This is an advanced setting

      Overrides:
      setAnimateTileChange in class TileLayout
      Parameters:
      animateTileChange - New animateTileChange value. Default value is true
      Returns:
      TileGrid instance, for chaining setter calls
      See Also:
    • getAnimateTileChange

      public Boolean getAnimateTileChange()
      If set, when the dataset changes due to filtering, sorting or other actions, any tiles that were showing before and after the change will animate from their old positions to their new positions.
      Overrides:
      getAnimateTileChange in class TileLayout
      Returns:
      Current animateTileChange value. Default value is true
      See Also:
    • setCanAcceptDroppedRecords

      public TileGrid setCanAcceptDroppedRecords(Boolean canAcceptDroppedRecords)
      Indicates whether records can be dropped into this TileGrid.

      If this method is called after the component has been drawn/initialized: Setter for canAcceptDroppedRecords.
      Parameters:
      canAcceptDroppedRecords - New canAcceptDroppedRecords value. Default value is false
      Returns:
      TileGrid instance, for chaining setter calls
      See Also:
    • getCanAcceptDroppedRecords

      public Boolean getCanAcceptDroppedRecords()
      Indicates whether records can be dropped into this TileGrid.
      Returns:
      Current canAcceptDroppedRecords value. Default value is false
      See Also:
    • setCanDragTilesOut

      public TileGrid setCanDragTilesOut(Boolean canDragTilesOut)
      Indicates whether tiles can be dragged from this TileGrid and dropped elsewhere.

      NOTE: If canDragTilesOut is initially enabled or might be dynamically enabled after the grid is created, it may be desirable to disable touch scrolling so that touch-dragging a tile starts a drag operation rather than a scroll. If Canvas.disableTouchScrollingForDrag is set to true, then touch scrolling will be disabled automatically. However, for accessibility reasons, it is recommended to leave touch scrolling enabled and provide an alternative set of controls that can be used to perform drag and drop of tiles out of the grid.

      If this method is called after the component has been drawn/initialized: Setter for canDragTilesOut.

      Parameters:
      canDragTilesOut - New canDragTilesOut value. Default value is false
      Returns:
      TileGrid instance, for chaining setter calls
    • getCanDragTilesOut

      public Boolean getCanDragTilesOut()
      Indicates whether tiles can be dragged from this TileGrid and dropped elsewhere.

      NOTE: If canDragTilesOut is initially enabled or might be dynamically enabled after the grid is created, it may be desirable to disable touch scrolling so that touch-dragging a tile starts a drag operation rather than a scroll. If Canvas.disableTouchScrollingForDrag is set to true, then touch scrolling will be disabled automatically. However, for accessibility reasons, it is recommended to leave touch scrolling enabled and provide an alternative set of controls that can be used to perform drag and drop of tiles out of the grid.

      Returns:
      Current canDragTilesOut value. Default value is false
    • setCanReorderTiles

      public TileGrid setCanReorderTiles(Boolean canReorderTiles)
      Indicates whether tiles can be reordered by dragging within this TileGrid.

      NOTE: If canReorderTiles is initially enabled or might be dynamically enabled after the grid is created, it may be desirable to disable touch scrolling so that touch-dragging a tile starts a reorder operation rather than a scroll. If Canvas.disableTouchScrollingForDrag is set to true, then touch scrolling will be disabled automatically. However, for accessibility reasons, it is recommended to leave touch scrolling enabled and provide an alternative set of controls that can be used to perform drag-reordering of tiles.

      If this method is called after the component has been drawn/initialized: Setter for canReorderTiles.

      Parameters:
      canReorderTiles - New canReorderTiles value. Default value is false
      Returns:
      TileGrid instance, for chaining setter calls
    • getCanReorderTiles

      public Boolean getCanReorderTiles()
      Indicates whether tiles can be reordered by dragging within this TileGrid.

      NOTE: If canReorderTiles is initially enabled or might be dynamically enabled after the grid is created, it may be desirable to disable touch scrolling so that touch-dragging a tile starts a reorder operation rather than a scroll. If Canvas.disableTouchScrollingForDrag is set to true, then touch scrolling will be disabled automatically. However, for accessibility reasons, it is recommended to leave touch scrolling enabled and provide an alternative set of controls that can be used to perform drag-reordering of tiles.

      Returns:
      Current canReorderTiles value. Default value is false
    • setData

      public TileGrid setData(TileRecord... data)
      A List of TileRecord objects, specifying the data to be used to create the tiles.

      This property will typically not be explicitly specified for databound TileGrids, where the data is returned from the server via databound component methods such as fetchData(). In this case the data objects will be set to a resultSet rather than a simple array.

      If this method is called after the component has been drawn/initialized: Provides a new data set to the TileGrid after the grid has been created or drawn. The TileGrid will redraw to show the new data automatically.

      Parameters:
      data - data to show in the list. Default value is null
      Returns:
      TileGrid instance, for chaining setter calls
      See Also:
    • setData

      public TileGrid setData(Record... data)
      A List of TileRecord objects, specifying the data to be used to create the tiles.

      This property will typically not be explicitly specified for databound TileGrids, where the data is returned from the server via databound component methods such as fetchData(). In this case the data objects will be set to a resultSet rather than a simple array.

      If this method is called after the component has been drawn/initialized: Provides a new data set to the TileGrid after the grid has been created or drawn. The TileGrid will redraw to show the new data automatically.

      Parameters:
      data - data to show in the list. Default value is null
      Returns:
      TileGrid instance, for chaining setter calls
      See Also:
    • setData

      public TileGrid setData(RecordList data)
      A List of TileRecord objects, specifying the data to be used to create the tiles.

      This property will typically not be explicitly specified for databound TileGrids, where the data is returned from the server via databound component methods such as fetchData(). In this case the data objects will be set to a resultSet rather than a simple array.

      If this method is called after the component has been drawn/initialized: Provides a new data set to the TileGrid after the grid has been created or drawn. The TileGrid will redraw to show the new data automatically.

      Parameters:
      data - data to show in the list. Default value is null
      Returns:
      TileGrid instance, for chaining setter calls
      See Also:
    • setDataArity

      public TileGrid setDataArity(String dataArity)
      A TileGrid is a dataArity:multiple component.

      Note : This is an advanced setting

      Parameters:
      dataArity - New dataArity value. Default value is "multiple"
      Returns:
      TileGrid instance, for chaining setter calls
      See Also:
    • getDataArity

      public String getDataArity()
      A TileGrid is a dataArity:multiple component.
      Returns:
      Current dataArity value. Default value is "multiple"
      See Also:
    • setDataFetchMode

      public TileGrid setDataFetchMode(FetchMode dataFetchMode)
      How to fetch and manage records retrieve from the server. See FetchMode.

      This setting only applies to the ResultSet automatically created by calling fetchData(). If a pre-existing ResultSet is passed to setData() instead, it's existing setting for ResultSet.fetchMode applies.

      Specified by:
      setDataFetchMode in interface DataBoundComponent
      Parameters:
      dataFetchMode - New dataFetchMode value. Default value is "paged"
      Returns:
      TileGrid instance, for chaining setter calls
      See Also:
    • getDataFetchMode

      public FetchMode getDataFetchMode()
      How to fetch and manage records retrieve from the server. See FetchMode.

      This setting only applies to the ResultSet automatically created by calling fetchData(). If a pre-existing ResultSet is passed to setData() instead, it's existing setting for ResultSet.fetchMode applies.

      Specified by:
      getDataFetchMode in interface DataBoundComponent
      Returns:
      Current dataFetchMode value. Default value is "paged"
      See Also:
    • setDataSource

      public TileGrid setDataSource(DataSource dataSource)
      The DataSource that this component should bind to for default fields and for performing DataSource requests.

      Can be specified as either a DataSource instance or the String ID of a DataSource.

      Specified by:
      setDataSource in interface DataBoundComponent
      Parameters:
      dataSource - New dataSource value. Default value is null
      Returns:
      TileGrid instance, for chaining setter calls
      See Also:
    • setDataSource

      public TileGrid setDataSource(String dataSource)
      The DataSource that this component should bind to for default fields and for performing DataSource requests.

      Can be specified as either a DataSource instance or the String ID of a DataSource.

      Specified by:
      setDataSource in interface DataBoundComponent
      Parameters:
      dataSource - New dataSource value. Default value is null
      Returns:
      TileGrid instance, for chaining setter calls
      See Also:
    • getDetailViewer

      public DetailViewer getDetailViewer() throws IllegalStateException
      Automatically genereated DetailViewer instance used to render the content shown in Tiles by default.

      This detailViewer is never actually drawn or displayed to the user - it is simply used to generate the contents of SimpleTiles as described in getTileHTML().

      This component is an AutoChild named "detailViewer". For an overview of how to use and configure AutoChildren, see Using AutoChildren.

      Returns:
      Current detailViewer value. Default value is null
      Throws:
      IllegalStateException - if this widget has not yet been rendered.
    • setDetailViewerProperties

      public TileGrid setDetailViewerProperties(DetailViewer detailViewerProperties) throws IllegalStateException
      Properties for the DetailViewer that is automatically created to render the contents of tiles by default.
      Parameters:
      detailViewerProperties - New detailViewerProperties value. Default value is null
      Returns:
      TileGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getDetailViewerProperties

      public DetailViewer getDetailViewerProperties()
      Properties for the DetailViewer that is automatically created to render the contents of tiles by default.
      Returns:
      Current detailViewerProperties value. Default value is null
    • setDrawAllMaxTiles

      public TileGrid setDrawAllMaxTiles(Integer drawAllMaxTiles)
      If drawing all tiles would cause no more than drawAllMaxTiles tiles to be rendered, the full dataset will instead be drawn even if showAllRecords is false and incremental rendering would have otherwise been used.

      The drawAllMaxTiles setting prevents incremental rendering from being used in situations where it's really unnecessary, such as a 25 record dataset which happens to be in a grid with a viewport showing only 15 or so tiles. Incremental rendering causes a brief "flash" during scrolling as the visible portion of the dataset is redrawn, and a better scrolling experience can be obtained in this situation by drawing the entire dataset up front, which in this example would have negligible effect on initial draw time.

      drawAllMaxTiles:0 disables this features. You may want to disable this feature if performance is an issue and:

      • you very frequently redraw a grid
      • you do a lot of computation when rendering each tile
      • you are showing many grids on one screen and the user won't scroll most of them

      Note : This is an advanced setting

      Parameters:
      drawAllMaxTiles - New drawAllMaxTiles value. Default value is 25
      Returns:
      TileGrid instance, for chaining setter calls
      See Also:
    • getDrawAllMaxTiles

      public Integer getDrawAllMaxTiles()
      If drawing all tiles would cause no more than drawAllMaxTiles tiles to be rendered, the full dataset will instead be drawn even if showAllRecords is false and incremental rendering would have otherwise been used.

      The drawAllMaxTiles setting prevents incremental rendering from being used in situations where it's really unnecessary, such as a 25 record dataset which happens to be in a grid with a viewport showing only 15 or so tiles. Incremental rendering causes a brief "flash" during scrolling as the visible portion of the dataset is redrawn, and a better scrolling experience can be obtained in this situation by drawing the entire dataset up front, which in this example would have negligible effect on initial draw time.

      drawAllMaxTiles:0 disables this features. You may want to disable this feature if performance is an issue and:

      • you very frequently redraw a grid
      • you do a lot of computation when rendering each tile
      • you are showing many grids on one screen and the user won't scroll most of them
      Returns:
      Current drawAllMaxTiles value. Default value is 25
      See Also:
    • setEditProxyConstructor

      public TileGrid setEditProxyConstructor(String editProxyConstructor) throws IllegalStateException
      Default class used to construct the EditProxy for this component when the component is first placed into edit mode.
      Overrides:
      setEditProxyConstructor in class Canvas
      Parameters:
      editProxyConstructor - New editProxyConstructor value. Default value is "GridEditProxy"
      Returns:
      TileGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getEditProxyConstructor

      public String getEditProxyConstructor()
      Default class used to construct the EditProxy for this component when the component is first placed into edit mode.
      Overrides:
      getEditProxyConstructor in class Canvas
      Returns:
      Current editProxyConstructor value. Default value is "GridEditProxy"
      See Also:
    • setEmptyMessage

      public TileGrid setEmptyMessage(String emptyMessage)
      The string to display in the body of a tileGrid with an empty data array, if showEmptyMessage is true.
      Parameters:
      emptyMessage - New emptyMessage value. Default value is "No tiles to show."
      Returns:
      TileGrid instance, for chaining setter calls
      See Also:
    • getEmptyMessage

      public String getEmptyMessage()
      The string to display in the body of a tileGrid with an empty data array, if showEmptyMessage is true.
      Returns:
      Current emptyMessage value. Default value is "No tiles to show."
      See Also:
    • setEmptyMessageStyle

      public TileGrid setEmptyMessageStyle(String emptyMessageStyle)
      The CSS style name applied to the emptyMessage if displayed.
      Parameters:
      emptyMessageStyle - New emptyMessageStyle value. Default value is "emptyMessage"
      Returns:
      TileGrid instance, for chaining setter calls
      See Also:
    • getEmptyMessageStyle

      public String getEmptyMessageStyle()
      The CSS style name applied to the emptyMessage if displayed.
      Returns:
      Current emptyMessageStyle value. Default value is "emptyMessage"
      See Also:
    • setFetchRequestProperties

      public TileGrid setFetchRequestProperties(DSRequest fetchRequestProperties) throws IllegalStateException
      If autoFetchData is true, this attribute allows the developer to declaratively specify DSRequest properties for the initial fetchData() call.

      Note that any properties governing more specific request attributes for the initial fetch (such as autoFetchTextMatchStyle) will be applied on top of this properties block.

      Parameters:
      fetchRequestProperties - New fetchRequestProperties value. Default value is null
      Returns:
      TileGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getFetchRequestProperties

      public DSRequest getFetchRequestProperties()
      If autoFetchData is true, this attribute allows the developer to declaratively specify DSRequest properties for the initial fetchData() call.

      Note that any properties governing more specific request attributes for the initial fetch (such as autoFetchTextMatchStyle) will be applied on top of this properties block.

      Returns:
      Current fetchRequestProperties value. Default value is null
      See Also:
    • setFields

      public TileGrid setFields(DetailViewerField... fields) throws IllegalStateException
      Array of field definitions to control the default rendering of tiles.

      If not specified, if the DataSource has an iconField, only the iconField and titleField will be shown. Otherwise, all non-hidden non-detail fields will be shown, similar to the default set of fields shown by a ListGrid.

      Only applicable if using the default SimpleTile class for tiles. (See tile for more information).

      For SimpleTiles, it is possible to use DetailViewerField.getCellStyle() and StatefulCanvas.getStateSuffix() to make a single field statefully styled:

        
        
        final TileGrid tileGrid = new TileGrid();
        DetailViewerField animalNameField = new DetailViewerField("countryName");  
        animalNameField.setCellStyleHandler(new CellStyleHandler() {  
            public String execute(Object value, DetailViewerField field, Record record) {
                SimpleTile tile = tileGrid.getCurrentTile();
                if (value == "Tiger") return "tigerStyle" + tile.getStateSuffix();
                else return "nonTigerStyle" + tile.getStateSuffix();
            }  
        });  
        tileGrid.setFields(animalNameField);  
        
        
      Parameters:
      fields - New fields value. Default value is null
      Returns:
      TileGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • setLoadingDataMessage

      public TileGrid setLoadingDataMessage(String loadingDataMessage)
      The string to display in the body of a tileGrid while data is being loaded. Use "${loadingImage}" to include a loading image.
      Parameters:
      loadingDataMessage - New loadingDataMessage value. Default value is "${loadingImage} Loading data..."
      Returns:
      TileGrid instance, for chaining setter calls
      See Also:
    • getLoadingDataMessage

      public String getLoadingDataMessage()
      The string to display in the body of a tileGrid while data is being loaded. Use "${loadingImage}" to include a loading image.
      Returns:
      Current loadingDataMessage value. Default value is "${loadingImage} Loading data..."
      See Also:
    • setLoadingDataMessageStyle

      public TileGrid setLoadingDataMessageStyle(String loadingDataMessageStyle)
      The CSS style name applied to the loadingDataMessage string if displayed.
      Parameters:
      loadingDataMessageStyle - New loadingDataMessageStyle value. Default value is "loadingDataMessage"
      Returns:
      TileGrid instance, for chaining setter calls
      See Also:
    • getLoadingDataMessageStyle

      public String getLoadingDataMessageStyle()
      The CSS style name applied to the loadingDataMessage string if displayed.
      Returns:
      Current loadingDataMessageStyle value. Default value is "loadingDataMessage"
      See Also:
    • setLoadingMessage

      public TileGrid setLoadingMessage(String loadingMessage) throws IllegalStateException
      If you have a databound tileGrid and you scroll out of the currently loaded dataset, by default you will see blank tiles until the server returns the data for those rows. The loadingMessage attribute allows you to specify arbitrary html that will be shown in each such "blank" tile while the data for that tile is loading. (e.g. "<DIV ALIGN='CENTER'>LOADING</DIV>")
      Parameters:
      loadingMessage - New loadingMessage value. Default value is null
      Returns:
      TileGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getLoadingMessage

      public String getLoadingMessage()
      If you have a databound tileGrid and you scroll out of the currently loaded dataset, by default you will see blank tiles until the server returns the data for those rows. The loadingMessage attribute allows you to specify arbitrary html that will be shown in each such "blank" tile while the data for that tile is loading. (e.g. "<DIV ALIGN='CENTER'>LOADING</DIV>")
      Returns:
      Current loadingMessage value. Default value is null
      See Also:
    • setPrintTilesPerLine

      public TileGrid setPrintTilesPerLine(Integer printTilesPerLine) throws IllegalStateException
      How many tiles should be present in a line when printing?
      Parameters:
      printTilesPerLine - New printTilesPerLine value. Default value is null
      Returns:
      TileGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getPrintTilesPerLine

      public Integer getPrintTilesPerLine()
      How many tiles should be present in a line when printing?
      Returns:
      Current printTilesPerLine value. Default value is null
    • setRecycleTiles

      public TileGrid setRecycleTiles(Boolean recycleTiles) throws IllegalStateException
      This property determines whether tiles that are no longer visible (due to scrolling) are recycled, allowing a large number of records to be displayed using a (potentially) much smaller set of tiles.

      Recycling tiles may significantly reduce the number of live tile widgets needed to support a particular TileGrid, but may also result in extra work when the TileGrid is scrolled, as a scroll that brings off-screen tiles into view will require recycling tiles that have left the view, even if the new tiles have been visited before (in previous scrolling).

      Recycling will occur when getTile() is called, unless the supplied record (or record specified by index) is currently bound to an existing tile. Even if recycling is not enabled, the record associated with a given tile may change if the TileGrid data changes.

      For more control over the tile creation and recycling process, see createTile() and updateTile().

      Parameters:
      recycleTiles - New recycleTiles value. Default value is true
      Returns:
      TileGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getRecycleTiles

      public Boolean getRecycleTiles()
      This property determines whether tiles that are no longer visible (due to scrolling) are recycled, allowing a large number of records to be displayed using a (potentially) much smaller set of tiles.

      Recycling tiles may significantly reduce the number of live tile widgets needed to support a particular TileGrid, but may also result in extra work when the TileGrid is scrolled, as a scroll that brings off-screen tiles into view will require recycling tiles that have left the view, even if the new tiles have been visited before (in previous scrolling).

      Recycling will occur when getTile() is called, unless the supplied record (or record specified by index) is currently bound to an existing tile. Even if recycling is not enabled, the record associated with a given tile may change if the TileGrid data changes.

      For more control over the tile creation and recycling process, see createTile() and updateTile().

      Returns:
      Current recycleTiles value. Default value is true
    • setReselectOnUpdate

      public TileGrid setReselectOnUpdate(boolean reselectOnUpdate) throws IllegalStateException
      If true, when an update operation occurs on a selected tile's record in a databound tileGrid, ensure the updated tile is re-selected when the operation completes. The reselectOnUpdateNotifications attributes governs whether selectionUpdated() and CubeGrid.selectionChanged() will fire when this occurs.

      Note : This is an advanced setting

      Parameters:
      reselectOnUpdate - New reselectOnUpdate value. Default value is true
      Returns:
      TileGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getReselectOnUpdate

      public boolean getReselectOnUpdate()
      If true, when an update operation occurs on a selected tile's record in a databound tileGrid, ensure the updated tile is re-selected when the operation completes. The reselectOnUpdateNotifications attributes governs whether selectionUpdated() and CubeGrid.selectionChanged() will fire when this occurs.
      Returns:
      Current reselectOnUpdate value. Default value is true
    • setReselectOnUpdateNotifications

      public TileGrid setReselectOnUpdateNotifications(SelectionNotificationType reselectOnUpdateNotifications)
      if reselectOnUpdate is true, this property governs what selection changed notifications should be triggered when a selected tile's record is edited then automatically reselected when the edited data is merged into the data set.

      Note : This is an advanced setting

      Parameters:
      reselectOnUpdateNotifications - New reselectOnUpdateNotifications value. Default value is "selectionChanged"
      Returns:
      TileGrid instance, for chaining setter calls
    • getReselectOnUpdateNotifications

      public SelectionNotificationType getReselectOnUpdateNotifications()
      if reselectOnUpdate is true, this property governs what selection changed notifications should be triggered when a selected tile's record is edited then automatically reselected when the edited data is merged into the data set.
      Returns:
      Current reselectOnUpdateNotifications value. Default value is "selectionChanged"
    • setSelectionType

      public TileGrid setSelectionType(SelectionStyle selectionType)
      Defines a tileGrid's clickable-selection behavior.
      Parameters:
      selectionType - New selectionType value. Default value is Selection.MULTIPLE
      Returns:
      TileGrid instance, for chaining setter calls
      See Also:
    • getSelectionType

      public SelectionStyle getSelectionType()
      Defines a tileGrid's clickable-selection behavior.
      Returns:
      Current selectionType value. Default value is Selection.MULTIPLE
      See Also:
    • setShowAllRecords

      public TileGrid setShowAllRecords(Boolean showAllRecords) throws IllegalStateException
      Whether tiles are created and drawn for all records, or only for those currently visible.

      This setting is incompatible with dataFetchMode: "paged" as it requires all records matching the criteria to be fetched from the server at once.

      Parameters:
      showAllRecords - New showAllRecords value. Default value is false
      Returns:
      TileGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getShowAllRecords

      public Boolean getShowAllRecords()
      Whether tiles are created and drawn for all records, or only for those currently visible.

      This setting is incompatible with dataFetchMode: "paged" as it requires all records matching the criteria to be fetched from the server at once.

      Returns:
      Current showAllRecords value. Default value is false
    • setShowDetailFields

      public TileGrid setShowDetailFields(Boolean showDetailFields) throws IllegalStateException
      By default, TileGrids will not show fields marked detail:true in the DataSource. See also fields.
      Specified by:
      setShowDetailFields in interface DataBoundComponent
      Parameters:
      showDetailFields - New showDetailFields value. Default value is false
      Returns:
      TileGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getShowDetailFields

      public Boolean getShowDetailFields()
      By default, TileGrids will not show fields marked detail:true in the DataSource. See also fields.
      Specified by:
      getShowDetailFields in interface DataBoundComponent
      Returns:
      Current showDetailFields value. Default value is false
    • setShowEmptyMessage

      public TileGrid setShowEmptyMessage(Boolean showEmptyMessage)
      Indicates whether the text of the emptyMessage property should be displayed if no data is available.
      Parameters:
      showEmptyMessage - New showEmptyMessage value. Default value is true
      Returns:
      TileGrid instance, for chaining setter calls
      See Also:
    • getShowEmptyMessage

      public Boolean getShowEmptyMessage()
      Indicates whether the text of the emptyMessage property should be displayed if no data is available.
      Returns:
      Current showEmptyMessage value. Default value is true
      See Also:
    • setStyleName

      public void setStyleName(String styleName) throws IllegalStateException
      Style for the overall TileGrid component.
      Overrides:
      setStyleName in class Canvas
      Parameters:
      styleName - New styleName value. Default value is "tileGrid"
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getStyleName

      public String getStyleName()
      Style for the overall TileGrid component.
      Overrides:
      getStyleName in class Canvas
      Returns:
      Current styleName value. Default value is "tileGrid"
      See Also:
    • getTile

      public SimpleTile getTile()
      Note : This API is non-functional (always returns null) and exists only to make you aware that this MultiAutoChild exists. See Using AutoChildren for details.

      A TileGrid automatically creates one tile per record in the dataset, via the com.smartgwt.client.types.AutoChild pattern.

      By default, the SimpleTile class will be used. This class automatically invokes getTileHTML() on the tileGrid to generate its content. The standard getTileHTML() method uses a detailViewer to render html for the tile's record, based on the provided fields (or on the default set of fields).

      To create a completely different appearance set tileConstructor to custom Canvas class name. You can use SmartGWT classes too with help of Reflection. For example, you can extend a DynamicForm with any layout:

          public class CarTile extends DynamicForm {
            public CarTile() {
              StaticTextItem name = new StaticTextItem("name");
              name.setShowTitle(false);
              StaticTextItem price = new StaticTextItem("price");
              price.setShowTitle(false);
              this.setFields(pictureItem, name, price);
            }
          }
        
      Register the class factory and use it by passing it's class to tileConstructor
          public interface CarTileMetaFactory extends BeanFactory.MetaFactory {
            BeanFactory getCarTileFactory();
          }
          public void onModuleLoad() {
            GWT.create(CarTileMetaFactory.class);
            TileGrid tileGrid = new TileGrid();
            tileGrid.setTileConstructor(CarTile.class.getName());
            tileGrid.draw();
          }
        
      Returns:
      null
    • setTileConstructor

      public TileGrid setTileConstructor(String tileConstructor)
      Class-name of a Smart GWT component to use for each tile rendered by this TileGrid. Tiles are created by the com.smartgwt.client.types.AutoChild pattern; see tile.

      Any subclass of Canvas is allowed, but typically any custom class will derive from SimpleTile.

      When using a custom component for tileConstructor, DataBoundComponents that display multiple Records (ListGrid, DetailViewer) will have data provided via ListGrid.setData(), and components that display a single Record (DynamicForm) will have DynamicForm.setValues() called on them.

      If the component is not a recognized DataBoundComponent subclass, the Record can be accessed via this.getAttributeAsRecord("record").

      If you implement particularly simple or particularly complex tile interfaces, you may wish to adjust the property drawAllMaxTiles.

      Parameters:
      tileConstructor - New tileConstructor value. Default value is "SimpleTile"
      Returns:
      TileGrid instance, for chaining setter calls
      See Also:
    • getTileConstructor

      public String getTileConstructor()
      Class-name of a Smart GWT component to use for each tile rendered by this TileGrid. Tiles are created by the com.smartgwt.client.types.AutoChild pattern; see tile.

      Any subclass of Canvas is allowed, but typically any custom class will derive from SimpleTile.

      When using a custom component for tileConstructor, DataBoundComponents that display multiple Records (ListGrid, DetailViewer) will have data provided via ListGrid.setData(), and components that display a single Record (DynamicForm) will have DynamicForm.setValues() called on them.

      If the component is not a recognized DataBoundComponent subclass, the Record can be accessed via this.getAttributeAsRecord("record").

      If you implement particularly simple or particularly complex tile interfaces, you may wish to adjust the property drawAllMaxTiles.

      Returns:
      Current tileConstructor value. Default value is "SimpleTile"
      See Also:
    • setTileDragAppearance

      public TileGrid setTileDragAppearance(DragAppearance tileDragAppearance)
      Visual appearance to show when the tile is being dragged.

      Note : This is an advanced setting

      Parameters:
      tileDragAppearance - New tileDragAppearance value. Default value is EventHandler.TRACKER
      Returns:
      TileGrid instance, for chaining setter calls
      See Also:
    • getTileDragAppearance

      public DragAppearance getTileDragAppearance()
      Visual appearance to show when the tile is being dragged.
      Returns:
      Current tileDragAppearance value. Default value is EventHandler.TRACKER
      See Also:
    • setTileProperties

      public TileGrid setTileProperties(Canvas tileProperties)
      Common properties to use when creating every tile.
      Parameters:
      tileProperties - New tileProperties value. Default value is null
      Returns:
      TileGrid instance, for chaining setter calls
      See Also:
    • getTileProperties

      public Canvas getTileProperties()
      Common properties to use when creating every tile.
      Returns:
      Current tileProperties value. Default value is null
    • setTiles

      public TileGrid setTiles(Canvas... tiles) throws IllegalStateException
      List of tiles that may be used by the TileGrid to show its current data set. Note that the Smart GWT framework manages this array for optimal performance, and not all tiles in the array are necessarily visible or assigned a record. This is true regardless of whether recycleTiles is set or not.

      The number of records in the TileGrid's current data set may be determined by calling getLength() on it.

      Overrides:
      setTiles in class TileLayout
      Parameters:
      tiles - New tiles value. Default value is null
      Returns:
      TileGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getTiles

      public Canvas[] getTiles()
      List of tiles that may be used by the TileGrid to show its current data set. Note that the Smart GWT framework manages this array for optimal performance, and not all tiles in the array are necessarily visible or assigned a record. This is true regardless of whether recycleTiles is set or not.

      The number of records in the TileGrid's current data set may be determined by calling getLength() on it.

      Returns:
      Current tiles value. Default value is null
      See Also:
    • setTileScreen

      public TileGrid setTileScreen(String tileScreen) throws IllegalStateException
      Screen to create (via createScreen()) for the tile in lieu of calling getTile().

      If this grid has a dataSource, the created screen is provided with a Canvas.dataContext that includes the record being expanded. Be sure the tile screen meets these requirements to utilize the dataContext.

      Parameters:
      tileScreen - New tileScreen value. Default value is null
      Returns:
      TileGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getTileScreen

      public String getTileScreen()
      Screen to create (via createScreen()) for the tile in lieu of calling getTile().

      If this grid has a dataSource, the created screen is provided with a Canvas.dataContext that includes the record being expanded. Be sure the tile screen meets these requirements to utilize the dataContext.

      Returns:
      Current tileScreen value. Default value is null
    • setTileValueAlign

      public TileGrid setTileValueAlign(String tileValueAlign) throws IllegalStateException
      Horizontal alignment for tile values: "left", "right" or "center".
      Parameters:
      tileValueAlign - New tileValueAlign value. Default value is "center"
      Returns:
      TileGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getTileValueAlign

      public String getTileValueAlign()
      Horizontal alignment for tile values: "left", "right" or "center".
      Returns:
      Current tileValueAlign value. Default value is "center"
    • setTileValueStyle

      public TileGrid setTileValueStyle(String tileValueStyle) throws IllegalStateException
      When using the default SimpleTile, CSS style for each value shown within a tile.
      Parameters:
      tileValueStyle - New tileValueStyle value. Default value is "tileValue"
      Returns:
      TileGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getTileValueStyle

      public String getTileValueStyle()
      When using the default SimpleTile, CSS style for each value shown within a tile.
      Returns:
      Current tileValueStyle value. Default value is "tileValue"
      See Also:
    • setValuesShowDown

      public TileGrid setValuesShowDown(boolean valuesShowDown) throws IllegalStateException
      Should tile values change state when the mouse goes down on them?
      Parameters:
      valuesShowDown - New valuesShowDown value. Default value is false
      Returns:
      TileGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getValuesShowDown

      public boolean getValuesShowDown()
      Should tile values change state when the mouse goes down on them?
      Returns:
      Current valuesShowDown value. Default value is false
    • setValuesShowRollOver

      public TileGrid setValuesShowRollOver(boolean valuesShowRollOver) throws IllegalStateException
      Should tile values change state when the mouse goes over them?
      Parameters:
      valuesShowRollOver - New valuesShowRollOver value. Default value is false
      Returns:
      TileGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getValuesShowRollOver

      public boolean getValuesShowRollOver()
      Should tile values change state when the mouse goes over them?
      Returns:
      Current valuesShowRollOver value. Default value is false
    • setValuesShowSelected

      public TileGrid setValuesShowSelected(boolean valuesShowSelected) throws IllegalStateException
      Should tile values change state when they are selected?
      Parameters:
      valuesShowSelected - New valuesShowSelected value. Default value is true
      Returns:
      TileGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getValuesShowSelected

      public boolean getValuesShowSelected()
      Should tile values change state when they are selected?
      Returns:
      Current valuesShowSelected value. Default value is true
    • setWrapValues

      public TileGrid setWrapValues(Boolean wrapValues) throws IllegalStateException
      Whether values should be allowed to wrap by default, or should be shown on one line regardless of length.
      Parameters:
      wrapValues - New wrapValues value. Default value is false
      Returns:
      TileGrid instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getWrapValues

      public Boolean getWrapValues()
      Whether values should be allowed to wrap by default, or should be shown on one line regardless of length.
      Returns:
      Current wrapValues value. Default value is false
    • addData

      public void addData(Record newRecord)
      Perform a DataSource "add" operation to add new records to this component's DataSource.
      Parameters:
      newRecord - new record
      See Also:
    • addData

      public void addData(Record newRecord, DSCallback callback)
      See Also:
    • addData

      public void addData(Record newRecord, DSCallback callback, DSRequest requestProperties)
      Perform a DataSource "add" operation to add new records to this component's DataSource.
      Parameters:
      newRecord - new record
      callback - method to call on operation completion
      requestProperties - additional properties to set on the DSRequest that will be issued
      See Also:
    • addTile

      public void addTile()
      This is not allowed for tileGrid. Instead, use addData().
    • addDataArrivedHandler

      public HandlerRegistration addDataArrivedHandler(DataArrivedHandler handler)
      Add a dataArrived handler.

      Notification method fired when new data arrives from the server to be displayed in this tileGrid, (for example in response to the user scrolling a new set of tiles into view). Only applies to databound tileGrid where the data attribute is a ResultSet. This method is fired directly in response to dataArrived() firing on the data object.

      Specified by:
      addDataArrivedHandler in interface HasDataArrivedHandlers
      Parameters:
      handler - the dataArrived handler
      Returns:
      HandlerRegistration used to remove this handler
    • deselectRange

      public void deselectRange(int startRow, int endRow)
      Deselect a contiguous range of records by index.

      This is a synonym for selectRange(startRow, endRow, false);

      Parameters:
      startRow - start of selection range
      endRow - end of selection range (non-inclusive)
      See Also:
    • getCurrentTile

      public SimpleTile getCurrentTile()
      Returns the tile currently under the mouse.
      Returns:
      the tile currently under the mouse
    • getDragTrackerTitle

      public String getDragTrackerTitle(ListGridRecord record, int rowNum)
      Return "title" HTML to display as a drag tracker when the user drags some record.
      Default implementation will display the cell value for the title field (see ListGrid.getTitleField()) for the record(s) being dragged (including any icons / custom formatting / styling, etc).

      Note: Only called if ListGrid.dragTrackerMode is set to "title".

      Parameters:
      record - First selected record being dragged
      rowNum - row index of first record being dragged
      Returns:
      Title for the row. Default implementation looks at the value of the title-field cell for the row.
    • getDropIndex

      public int getDropIndex()
      Returns the record index of the tile that would currently be dropped on by the drag in process. Returns one beyond the last valid index to indicate a drop after all records. Except for that special case, a non-null index returned by this method may be passed to getTile() to get the corresponding visible tile.
      Overrides:
      getDropIndex in class TileLayout
      Returns:
      record index of tile that would currently be dropped on, or the record count for a drop after all records
      See Also:
    • getFieldState

      public String getFieldState()
      Returns a snapshot of the current presentation of this grid's fields as a ListGridFieldState object.

      This object can be passed to setFieldState() to reset this grid's fields to the current state.

      Note that the information stored includes the current width and visibility of each of this grid's fields.

      The optional sparse parameter governs whether the returned field state should omit state information for hidden fields. If this parameter is not passed explicitly, field state will be sparse if DataBoundComponent.sparseFieldState is true.
      When applying sparse field state to a component via setFieldState(), any explicitly defined fields on the component that were not captured in the stored state object will be hidden.

      Returns:
      current state of this grid's fields. See ListGridFieldState
      See Also:
    • getFieldState

      public String getFieldState(Boolean sparse)
      Returns a snapshot of the current presentation of this grid's fields as a ListGridFieldState object.

      This object can be passed to setFieldState() to reset this grid's fields to the current state.

      Note that the information stored includes the current width and visibility of each of this grid's fields.

      The optional sparse parameter governs whether the returned field state should omit state information for hidden fields. If this parameter is not passed explicitly, field state will be sparse if DataBoundComponent.sparseFieldState is true.
      When applying sparse field state to a component via setFieldState(), any explicitly defined fields on the component that were not captured in the stored state object will be hidden.

      Parameters:
      sparse - If true, field state will be ommitted for hidden fields.
      Returns:
      current state of this grid's fields. See ListGridFieldState
      See Also:
    • getSelectedRecord

      public TileRecord getSelectedRecord()
      Returns the first selected record in this component.

      NOTE: If a record is returned, it should be treated as read-only and not modified.

      Returns:
      first selected record, or null if nothing selected
      See Also:
    • getTileIndex

      public int getTileIndex(Canvas tile)
      Returns the index of the specified tile.
      Parameters:
      tile - Tile you want to get the index for
      Returns:
      index of the tile in this tileGrid. Will return -1 if the specified tile is not displayed within this grid.
    • getTileRecord

      public TileRecord getTileRecord(Canvas tile)
      Given a tile within this this tile-grid, this method will return the associated record.
      Parameters:
      tile - Tile you want to get the record for
      Returns:
      Record associated with the specified tile
    • loadAllRecords

      public Boolean loadAllRecords()
      Loads all records that match this grid's current filter-criteria, optionally firing a callback when the data arrives.

      If the length of the data is not known, or is greater than the passed maxRecords, this call returns false. No fetch is issued and the callback, if passed, is not fired.

      If all data is already loaded, no fetch is issued and this call returns true. The callback, if passed, will be fired, but its parameters will be null, since there was no fetch to provide the values from.

      In all other cases, this call returns true and a fetch is issued for all necessary records. When the data arrives, the callback is fired.

      Returns:
      true if a fetch was made or was not needed - false otherwise
      See Also:
    • loadAllRecords

      public Boolean loadAllRecords(Integer maxRecords)
      See Also:
    • loadAllRecords

      public Boolean loadAllRecords(Integer maxRecords, DSCallback callback)
      Loads all records that match this grid's current filter-criteria, optionally firing a callback when the data arrives.

      If the length of the data is not known, or is greater than the passed maxRecords, this call returns false. No fetch is issued and the callback, if passed, is not fired.

      If all data is already loaded, no fetch is issued and this call returns true. The callback, if passed, will be fired, but its parameters will be null, since there was no fetch to provide the values from.

      In all other cases, this call returns true and a fetch is issued for all necessary records. When the data arrives, the callback is fired.

      Parameters:
      maxRecords - optional maximum record count - if passed, no fetch takes place if maxRecords is below the known length of the data
      callback - callback to fire if a fetch is issued - if all data was already loaded, the callback is fired with no parameters
      Returns:
      true if a fetch was made or was not needed - false otherwise
      See Also:
    • addRecordClickHandler

      public HandlerRegistration addRecordClickHandler(RecordClickHandler handler)
      Add a recordClick handler.

      Executed when the tileGrid receives a 'click' event on a tile. The default implementation does nothing -- override to perform some action when any record is clicked.
      A record event handler can be specified either as a function to execute, or as a string of script to evaluate. If the handler is defined as a string of script, all the parameters below will be available as variables for use in the script.
      If you want to cancel the click based on the parameters, Call com.smartgwt.client.widgets.tile.events.RecordClickEvent#cancel() from within RecordClickHandler.onRecordClick(com.smartgwt.client.widgets.tile.events.RecordClickEvent). Otherwise, return true so that the click event be registered with the tile.

      Specified by:
      addRecordClickHandler in interface HasRecordClickHandlers
      Parameters:
      handler - the recordClick handler
      Returns:
      HandlerRegistration used to remove this handler
    • addRecordContextClickHandler

      public HandlerRegistration addRecordContextClickHandler(RecordContextClickHandler handler)
      Add a recordContextClick handler.

      Executed when the tileGrid receives a context-click (right mouse button) event on a tile. The default implementation does nothing -- override to perform some action when any record is right-clicked.
      Cancel the event to suppress the native browser context menu.

      A record event handler can be specified either as a function to execute, or as a string of script to evaluate. If the handler is defined as a string of script, all the parameters below will be available as variables for use in the script.
      If you want to cancel the click based on the parameters, Call RecordContextClickEvent.cancel() from within RecordContextClickHandler.onRecordContextClick(com.smartgwt.client.widgets.tile.events.RecordContextClickEvent). Otherwise, return true so that the click event be registered with the tile.

      Specified by:
      addRecordContextClickHandler in interface HasRecordContextClickHandlers
      Parameters:
      handler - the recordContextClick handler
      Returns:
      HandlerRegistration used to remove this handler
    • addRecordDoubleClickHandler

      public HandlerRegistration addRecordDoubleClickHandler(RecordDoubleClickHandler handler)
      Add a recordDoubleClick handler.

      Executed when the tileGrid receives a 'doubleclick' event on a tile. The default implementation does nothing -- override to perform some action when any record is doubleclicked.
      A record event handler can be specified either as a function to execute, or as a string of script to evaluate. If the handler is defined as a string of script, all the parameters below will be available as variables for use in the script.
      If you want to cancel the doubleclick based on the parameters, Call com.smartgwt.client.widgets.tile.events.RecordDoubleClickEvent#cancel() from within RecordDoubleClickHandler.onRecordDoubleClick(com.smartgwt.client.widgets.tile.events.RecordDoubleClickEvent). Otherwise, return true so that the doubleclick event be registered with the tile.

      Specified by:
      addRecordDoubleClickHandler in interface HasRecordDoubleClickHandlers
      Parameters:
      handler - the recordDoubleClick handler
      Returns:
      HandlerRegistration used to remove this handler
    • removeData

      public void removeData(Record data)
      Perform a DataSource "remove" operation to remove records from this component's DataSource.
      Parameters:
      data - primary key values of record to delete, (or complete record)
      See Also:
    • removeData

      public void removeData(Record data, DSCallback callback)
      See Also:
    • removeData

      public void removeData(Record data, DSCallback callback, DSRequest requestProperties)
      Perform a DataSource "remove" operation to remove records from this component's DataSource.
      Parameters:
      data - primary key values of record to delete, (or complete record)
      callback - method to call on operation completion
      requestProperties - additional properties to set on the DSRequest that will be issued
      See Also:
    • removeTile

      public boolean removeTile(Canvas tileID)
      This is not allowed for tileGrid. Instead, use removeData().
      Overrides:
      removeTile in class TileLayout
      Parameters:
      tileID - index or String ID of the tile
      Returns:
      whether a tile was found and removed
    • removeTile

      public boolean removeTile(int tileID)
      This is not allowed for tileGrid. Instead, use removeData().
      Overrides:
      removeTile in class TileLayout
      Parameters:
      tileID - index or String ID of the tile
      Returns:
      whether a tile was found and removed
    • removeTile

      public boolean removeTile(String tileID)
      This is not allowed for tileGrid. Instead, use removeData().
      Overrides:
      removeTile in class TileLayout
      Parameters:
      tileID - index or String ID of the tile
      Returns:
      whether a tile was found and removed
    • addSelectionChangedHandler

      public HandlerRegistration addSelectionChangedHandler(SelectionChangedHandler handler)
      Add a selectionChanged handler.

      Called when selection changes within this tileGrid. Note this method fires for each record for which selection is modified - so when a user clicks inside a tileGrid this method will typically fire twice (once for the old record being deselected, and once for the new record being selected).

      Specified by:
      addSelectionChangedHandler in interface HasSelectionChangedHandlers
      Parameters:
      handler - the selectionChanged handler
      Returns:
      HandlerRegistration used to remove this handler
    • selectRange

      public void selectRange(int startRow, int endRow)
      Select a contiguous range of records by index
      Parameters:
      startRow - start of selection range
      endRow - end of selection range (non-inclusive)
      See Also:
    • selectRange

      public void selectRange(int startRow, int endRow, boolean newState)
      Select a contiguous range of records by index
      Parameters:
      startRow - start of selection range
      endRow - end of selection range (non-inclusive)
      newState - new selection state (if null, defaults to true)
      See Also:
    • setFieldState

      public void setFieldState(String fieldState)
      Sets some presentation properties (visibility, width, userFormula and userSummary) of the grid fields based on the ListGridFieldState object passed in.
      Used to restore previous state retrieved from the grid by a call to getFieldState().

      The optional isSparse parameter may be passed to indicate whether the fieldState object is "sparse" - whether it includes explicit state information for hidden fields. In this case any fields defined on the component not explicitly included in the fieldState object will be hidden.
      If isSparse is not explicitly passed as a parameter, sparseness will be assumed if DataBoundComponent.sparseFieldState is true.

      Parameters:
      fieldState - state to apply to the grid's fields. See ListGridFieldState
      See Also:
    • setFieldState

      public void setFieldState(String fieldState, Boolean isSparse)
      Sets some presentation properties (visibility, width, userFormula and userSummary) of the grid fields based on the ListGridFieldState object passed in.
      Used to restore previous state retrieved from the grid by a call to getFieldState().

      The optional isSparse parameter may be passed to indicate whether the fieldState object is "sparse" - whether it includes explicit state information for hidden fields. In this case any fields defined on the component not explicitly included in the fieldState object will be hidden.
      If isSparse is not explicitly passed as a parameter, sparseness will be assumed if DataBoundComponent.sparseFieldState is true.

      Parameters:
      fieldState - state to apply to the grid's fields. See ListGridFieldState
      isSparse - If true, the fieldState passed in is assumed to be "sparse". Any fields defined on this component without explicit field state values will be hidden.
      See Also:
    • viewSelectedData

      public void viewSelectedData(ListGrid selectionComponent)
      Displays the currently selected record(s) of the selectionComponent widget (typically a listGrid) in this component.

      For a DynamicForm the first record of the selection is shown after the form is placed into read-only mode. A subsequent call to DynamicForm.editRecord() or similar will return the form to editability.

      Note that since field-level canEdit:true settings override the form-level canEdit setting the automatic change to read-only may not change every field.

      Parameters:
      selectionComponent - the ListGrid or TileGrid or ID of a ListGrid/TileGrid whose currently selected record(s) is/are to be viewed
      See Also:
    • viewSelectedData

      public void viewSelectedData(TileGrid selectionComponent)
      Displays the currently selected record(s) of the selectionComponent widget (typically a listGrid) in this component.

      For a DynamicForm the first record of the selection is shown after the form is placed into read-only mode. A subsequent call to DynamicForm.editRecord() or similar will return the form to editability.

      Note that since field-level canEdit:true settings override the form-level canEdit setting the automatic change to read-only may not change every field.

      Parameters:
      selectionComponent - the ListGrid or TileGrid or ID of a ListGrid/TileGrid whose currently selected record(s) is/are to be viewed
      See Also:
    • viewSelectedData

      public void viewSelectedData(String selectionComponent)
      Displays the currently selected record(s) of the selectionComponent widget (typically a listGrid) in this component.

      For a DynamicForm the first record of the selection is shown after the form is placed into read-only mode. A subsequent call to DynamicForm.editRecord() or similar will return the form to editability.

      Note that since field-level canEdit:true settings override the form-level canEdit setting the automatic change to read-only may not change every field.

      Parameters:
      selectionComponent - the ListGrid or TileGrid or ID of a ListGrid/TileGrid whose currently selected record(s) is/are to be viewed
      See Also:
    • setDefaultProperties

      public static void setDefaultProperties(TileGrid tileGridProperties)
      Class level method to set the default properties of this class. If set, then all existing and subsequently created instances of this class will automatically have default properties corresponding to the properties set on the SmartGWT class instance passed to this function before its underlying SmartClient JS object was created. This is a powerful feature that eliminates the need for users to create a separate hierarchy of subclasses that only alter the default properties of this class. Can also be used for skinning / styling purposes.

      Note: This method is intended for setting default attributes only and will affect all instances of the underlying class (including those automatically generated in JavaScript). This method should not be used to apply standard EventHandlers or override methods for a class - use a custom subclass instead. Calling this method after instances have been created can result in undefined behavior, since it bypasses any setters and a class instance may have already examined a particular property and not be expecting any changes through this route.

      Parameters:
      tileGridProperties - properties that should be used as new defaults when instances of this class are created
      See Also:
    • onInit

      protected void onInit()
      Overrides:
      onInit in class Canvas
    • onInit_TileGrid

      protected void onInit_TileGrid()
    • getTileHTML

      protected String getTileHTML(Record record)
      This method provides the HTML to be displayed within each tile. See tile.

      This is an override point.

      Parameters:
      record - the tile for which HTML should be retrieved
      Returns:
      HTML contents for the tile, as a String
    • getTile

      public Canvas getTile(Record record)
      Returns the tile for the passed record or record index.

      Note that this method may be overridden but developers should be aware that this method may be called repeatedly for the same record each time the TileGrid refreshes that row. If you override this API, you will need to cache and re-use the same tile objects per record. Typically this would be achieved by storing a pool of Tile objects that are re-used if a Record with the same primaryKey is passed to getTile().

      When calling this method directly, if {@link com.smartgwt.client.widgets.tile.TileGrid@showAllRecords} is false, this may return null for records that are not currently visible.

      Parameters:
      tile - (TileRecord) record
      Returns:
      (Canvas) tile for this record
    • getTile

      public Canvas getTile(int recordNum)
      Returns the tile for the passed record or record index.

      Note that this method may be overridden but developers should be aware that this method may be called repeatedly for the same record each time the TileGrid refreshes that row. If you override this API, you will need to cache and re-use the same tile objects per record. Typically this would be achieved by storing a pool of Tile objects that are re-used if a Record with the same primaryKey is passed to getTile().

      When calling this method directly, if +link{showAllRecords} is false, this may return null for records that are not currently visible.

      This is an override point

      Overrides:
      getTile in class TileLayout
      Parameters:
      tile - (int) index of record in this.data
      Returns:
      (Canvas) tile for this record
    • getDataAsRecordList

      public RecordList getDataAsRecordList()
      Return the tileGrid data as a RecordList. If the component is bound to a DataSource, the actual type of the RecordList instance will be a ResultSet.
      Returns:
      the data
    • sortByProperty

      public void sortByProperty(String property, boolean ascending)
      Sort data by property.
      Parameters:
      property - property
      ascending - direction
    • removeSelectedData

      public void removeSelectedData()
      Remove the currently selected records from this component. If this is a databound grid, the records will be removed directly from the DataSource.

      If no records are selected, no action is taken. The grid will automatically be updated if the record deletion succeeds.

    • getSelection

      public Record[] getSelection()
      Returns all selected records, as an Array.
      Returns:
      list of records, empty list if nothing selected
    • setDataSource

      public void setDataSource(DataSource dataSource, DetailViewerField... fields)
      Bind to a DataSource.

      Binding to a DataSource means that the component will use the DataSource to provide default data for its fields.

      When binding to a new DataSource, if the component has any existing "fields" or has a dataset, these will be discarded by default, since it is assumed the new DataSource may represent a completely unrelated set of objects. If the old "fields" are still relevant, pass them to setDataSource().

      Parameters:
      dataSource -
      fields -
    • setCreateTileCustomizer

      public void setCreateTileCustomizer(CreateTileCustomizer customizer)
      Set customizer that defines createTile. That method will be called when a new tile is required.
      Parameters:
      CreateTileCustomizer - customizer
      See Also:
    • setUpdateTileCustomizer

      public void setUpdateTileCustomizer(UpdateTileCustomizer customizer)
      Set customizer that defines updateTile. If both that method and createTile have been defined and recycleTiles is true, this customizer method will be called when the framework needs to recycle a tile to be used with a new record. This notification provides an opportunity to update any widget properties that depend on the specifics of the record.
      Parameters:
      UpdateTileCustomizer - customizer
      See Also:
    • getData

      public Record[] getData()
      A List of TileRecord objects, specifying the data to be used to create the tiles.

      This property will typically not be explicitly specified for databound TileGrids, where the data is returned from the server via databound component methods such as fetchData(). In this case the data objects will be set to a resultSet rather than a simple array.

      Returns:
      Current data value. Default value is null
      See Also:
    • setDataPageSize

      public TileGrid setDataPageSize(int dataPageSize)
      Description copied from interface: DataBoundComponent
      When using data paging, how many records to fetch at a time. If set to a positive integer, dataPageSize will override the default resultSize for ResultSets automatically created when you call fetchData() (and similarly for the resultSize of ResultTrees). The default of 0 means to just use the default page size of the data container.

      Note that regardless of the dataPageSize setting, a component will always fetch all of data that it needs to draw. Settings such as showAllRecords:true, drawAllMaxCells and drawAheadRatio can cause more rows than the configured dataPageSize to be fetched.

      Specified by:
      setDataPageSize in interface DataBoundComponent
      Parameters:
      dataPageSize - dataPageSize Default value is 0
      Returns:
      DataBoundComponent instance, for chaining setter calls
      See Also:
    • getDataPageSize

      public int getDataPageSize()
      Description copied from interface: DataBoundComponent
      When using data paging, how many records to fetch at a time. If set to a positive integer, dataPageSize will override the default resultSize for ResultSets automatically created when you call fetchData() (and similarly for the resultSize of ResultTrees). The default of 0 means to just use the default page size of the data container.

      Note that regardless of the dataPageSize setting, a component will always fetch all of data that it needs to draw. Settings such as showAllRecords:true, drawAllMaxCells and drawAheadRatio can cause more rows than the configured dataPageSize to be fetched.

      Specified by:
      getDataPageSize in interface DataBoundComponent
      Returns:
      int
      See Also:
    • setUseAllDataSourceFields

      public TileGrid setUseAllDataSourceFields(Boolean useAllDataSourceFields)
      Description copied from interface: DataBoundComponent
      If true, the set of fields given by the "default binding" (see &#010 fields) is used, with any fields specified in&#010 component.fields acting as overrides that can suppress or modify the&#010 display of individual fields, without having to list the entire set of fields that&#010 should be shown.&#010

      &#010 If component.fields contains fields that are not found in the DataSource,&#010 they will be shown after the most recently referred to DataSource field. If the new&#010 fields appear first, they will be shown first.

      Specified by:
      setUseAllDataSourceFields in interface DataBoundComponent
      Parameters:
      useAllDataSourceFields - useAllDataSourceFields Default value is false
      Returns:
      DataBoundComponent instance, for chaining setter calls
    • getUseAllDataSourceFields

      public Boolean getUseAllDataSourceFields()
      Description copied from interface: DataBoundComponent
      If true, the set of fields given by the "default binding" (see &#010 fields) is used, with any fields specified in&#010 component.fields acting as overrides that can suppress or modify the&#010 display of individual fields, without having to list the entire set of fields that&#010 should be shown.&#010

      &#010 If component.fields contains fields that are not found in the DataSource,&#010 they will be shown after the most recently referred to DataSource field. If the new&#010 fields appear first, they will be shown first.

      Specified by:
      getUseAllDataSourceFields in interface DataBoundComponent
      Returns:
      Boolean
    • setSparseFieldState

      public TileGrid setSparseFieldState(Boolean sparseFieldState)
      Description copied from interface: DataBoundComponent
      If true, ListGrid.getFieldState() and ListGrid.setFieldState(java.lang.String) will omit state information for hidden fields by default.
      Specified by:
      setSparseFieldState in interface DataBoundComponent
      Parameters:
      sparseFieldState - sparseFieldState Default value is false
      Returns:
      DataBoundComponent instance, for chaining setter calls
    • getSparseFieldState

      public Boolean getSparseFieldState()
      Description copied from interface: DataBoundComponent
      If true, ListGrid.getFieldState() and ListGrid.setFieldState(java.lang.String) will omit state information for hidden fields by default.
      Specified by:
      getSparseFieldState in interface DataBoundComponent
      Returns:
      Boolean
    • setShowHiddenFields

      public TileGrid setShowHiddenFields(Boolean showHiddenFields)
      Description copied from interface: DataBoundComponent
      Whether to show fields marked hidden:true when a DataBoundComponent is given a&#010 DataSource but no component.fields.&#010

      &#010 The hidden property is used on DataSource fields to mark fields that are&#010 never of meaning to an end user.

      Specified by:
      setShowHiddenFields in interface DataBoundComponent
      Parameters:
      showHiddenFields - showHiddenFields Default value is false
      Returns:
      DataBoundComponent instance, for chaining setter calls
    • getShowHiddenFields

      public Boolean getShowHiddenFields()
      Description copied from interface: DataBoundComponent
      Whether to show fields marked hidden:true when a DataBoundComponent is given a&#010 DataSource but no component.fields.&#010

      &#010 The hidden property is used on DataSource fields to mark fields that are&#010 never of meaning to an end user.

      Specified by:
      getShowHiddenFields in interface DataBoundComponent
      Returns:
      Boolean
    • setShowComplexFields

      public TileGrid setShowComplexFields(Boolean showComplexFields)
      Description copied from interface: DataBoundComponent
      Whether to show fields of non-atomic types when a DataBoundComponent is given a&#010 DataSource but no component.fields.&#010

      &#010 If true, the component will show fields that declare a complex type, for example, a&#010 field 'shippingAddress' that declares type 'Address', where 'Address' is the ID of a&#010 DataSource that declares the fields of a shipping address (city, street name, etc).&#010

      &#010 Such fields may need custom formatters or editors in order to create a usable interface,&#010 for example, an Address field in a ListGrid might use a custom formatter to combine the&#010 relevant fields of an address into one column, and might use a pop-up dialog for&#010 editing.

      Note : This is an advanced setting

      Specified by:
      setShowComplexFields in interface DataBoundComponent
      Parameters:
      showComplexFields - showComplexFields Default value is true
      Returns:
      DataBoundComponent instance, for chaining setter calls
    • getShowComplexFields

      public Boolean getShowComplexFields()
      Description copied from interface: DataBoundComponent
      Whether to show fields of non-atomic types when a DataBoundComponent is given a&#010 DataSource but no component.fields.&#010

      &#010 If true, the component will show fields that declare a complex type, for example, a&#010 field 'shippingAddress' that declares type 'Address', where 'Address' is the ID of a&#010 DataSource that declares the fields of a shipping address (city, street name, etc).&#010

      &#010 Such fields may need custom formatters or editors in order to create a usable interface,&#010 for example, an Address field in a ListGrid might use a custom formatter to combine the&#010 relevant fields of an address into one column, and might use a pop-up dialog for&#010 editing.

      Specified by:
      getShowComplexFields in interface DataBoundComponent
      Returns:
      Boolean
    • setFetchOperation

      public TileGrid setFetchOperation(String fetchOperation)
      Description copied from interface: DataBoundComponent
      Operation ID this component should use when performing fetch operations.
      Specified by:
      setFetchOperation in interface DataBoundComponent
      Parameters:
      fetchOperation - fetchOperation Default value is null
      Returns:
      DataBoundComponent instance, for chaining setter calls
    • getFetchOperation

      public String getFetchOperation()
      Description copied from interface: DataBoundComponent
      Operation ID this component should use when performing fetch operations.
      Specified by:
      getFetchOperation in interface DataBoundComponent
      Returns:
      String
    • setUpdateOperation

      public TileGrid setUpdateOperation(String updateOperation)
      Description copied from interface: DataBoundComponent
      operationId this component should use when performing update operations.
      Specified by:
      setUpdateOperation in interface DataBoundComponent
      Parameters:
      updateOperation - Default value is null
      Returns:
      DataBoundComponent instance, for chaining setter calls
      See Also:
    • getUpdateOperation

      public String getUpdateOperation()
      Description copied from interface: DataBoundComponent
      operationId this component should use when performing update operations.
      Specified by:
      getUpdateOperation in interface DataBoundComponent
      Returns:
      String
      See Also:
    • setAddOperation

      public TileGrid setAddOperation(String addOperation)
      Description copied from interface: DataBoundComponent
      operationId this component should use when performing add operations.
      Specified by:
      setAddOperation in interface DataBoundComponent
      Parameters:
      addOperation - Default value is null
      Returns:
      DataBoundComponent instance, for chaining setter calls
      See Also:
    • getAddOperation

      public String getAddOperation()
      Description copied from interface: DataBoundComponent
      operationId this component should use when performing add operations.
      Specified by:
      getAddOperation in interface DataBoundComponent
      Returns:
      String
      See Also:
    • setRemoveOperation

      public TileGrid setRemoveOperation(String removeOperation)
      Description copied from interface: DataBoundComponent
      operationId this component should use when performing remove operations.
      Specified by:
      setRemoveOperation in interface DataBoundComponent
      Parameters:
      removeOperation - Default value is null
      Returns:
      DataBoundComponent instance, for chaining setter calls
      See Also:
    • getRemoveOperation

      public String getRemoveOperation()
      Description copied from interface: DataBoundComponent
      operationId this component should use when performing remove operations.
      Specified by:
      getRemoveOperation in interface DataBoundComponent
      Returns:
      String
      See Also:
    • setExportFields

      public TileGrid setExportFields(String[] exportFields)
      Description copied from interface: DataBoundComponent
      The list of field-names to export. If provided, the field-list in the exported output is &#010 limited and sorted as per the list.&#010

      &#010 If exportFields is not provided, the exported output includes all visible fields &#010 from this component, sorted as they appear.

      Specified by:
      setExportFields in interface DataBoundComponent
      Parameters:
      exportFields - exportFields Default value is null
      Returns:
      DataBoundComponent instance, for chaining setter calls
    • getExportFields

      public String[] getExportFields()
      Description copied from interface: DataBoundComponent
      The list of field-names to export. If provided, the field-list in the exported output is &#010 limited and sorted as per the list.&#010

      &#010 If exportFields is not provided, the exported output includes all visible fields &#010 from this component, sorted as they appear.

      Specified by:
      getExportFields in interface DataBoundComponent
      Returns:
      the list of field-names to export.
    • setExportAll

      public TileGrid setExportAll(Boolean exportAll)
      Description copied from interface: DataBoundComponent
      Setting exportAll to true prevents the component from passing its list of fields to the &#010 export call. The result is the export of all visible fields from fields.&#010

      &#010 If exportAll is false, an export operation will first consider &#010 exportFields, if it's set, and fall back on all visible fields from&#010 fields otherwise.

      Specified by:
      setExportAll in interface DataBoundComponent
      Parameters:
      exportAll - exportAll Default value is false
      Returns:
      DataBoundComponent instance, for chaining setter calls
    • getExportAll

      public Boolean getExportAll()
      Description copied from interface: DataBoundComponent
      Setting exportAll to true prevents the component from passing its list of fields to the &#010 export call. The result is the export of all visible fields from fields.&#010

      &#010 If exportAll is false, an export operation will first consider &#010 exportFields, if it's set, and fall back on all visible fields from&#010 fields otherwise.

      Specified by:
      getExportAll in interface DataBoundComponent
      Returns:
      Boolean
    • setExportIncludeSummaries

      public TileGrid setExportIncludeSummaries(Boolean exportIncludeSummaries)
      Description copied from interface: DataBoundComponent
      If Summary rows exist for this component, whether to include them when exporting client data. Defaults to true if not set
      Specified by:
      setExportIncludeSummaries in interface DataBoundComponent
      Parameters:
      exportIncludeSummaries - exportIncludeSummaries Default value is true
      Returns:
      DataBoundComponent instance, for chaining setter calls
    • getExportIncludeSummaries

      public Boolean getExportIncludeSummaries()
      Description copied from interface: DataBoundComponent
      If Summary rows exist for this component, whether to include them when exporting client data. Defaults to true if not set
      Specified by:
      getExportIncludeSummaries in interface DataBoundComponent
      Returns:
      Boolean
    • setPreventDuplicates

      public TileGrid setPreventDuplicates(Boolean preventDuplicates) throws IllegalStateException
      Description copied from interface: DataBoundComponent
      If set, detect and prevent duplicate records from being transferred to this component, either via&#010 drag and drop or via DataBoundComponent.transferSelectedData(com.smartgwt.client.widgets.DataBoundComponent). When a duplicate transfer is detected,&#010 a dialog will appear showing the duplicateDragMessage.&#010

      &#010 If the component either does not have a DataSource or has a DataSource with no&#010 primaryKey declared, duplicate checking is off by&#010 default. If duplicate checking is enabled, it looks for an existing record in the dataset&#010 that has all of the properties of the dragged record, and considers that a duplicate.&#010

      &#010 For DragDataAction:"copy" where the target DataSource is related to the source&#010 DataSource by foreignKey, a duplicate means that the target list, as filtered by the current&#010 criteria, already has a record whose value for the foreignKey field matches the&#010 primaryKey of the record being transferred.&#010

      &#010 For example, consider dragging "employees" to "teams", where "teams" has a field&#010 "teams.employeeId" which is a foreignKey pointing to "employees.id", and the target&#010 grid has search criteria causing it to show all the members of one team. A duplicate -&#010 adding an employee to the same team twice - is when the target grid's dataset contains an&#010 record with "employeeId" matching the "id" field of the dropped employee.

      Specified by:
      setPreventDuplicates in interface DataBoundComponent
      Parameters:
      preventDuplicates - preventDuplicates Default value is null
      Returns:
      DataBoundComponent instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getPreventDuplicates

      public Boolean getPreventDuplicates()
      Description copied from interface: DataBoundComponent
      If set, detect and prevent duplicate records from being transferred to this component, either via&#010 drag and drop or via DataBoundComponent.transferSelectedData(com.smartgwt.client.widgets.DataBoundComponent). When a duplicate transfer is detected,&#010 a dialog will appear showing the duplicateDragMessage.&#010

      &#010 If the component either does not have a DataSource or has a DataSource with no&#010 primaryKey declared, duplicate checking is off by&#010 default. If duplicate checking is enabled, it looks for an existing record in the dataset&#010 that has all of the properties of the dragged record, and considers that a duplicate.&#010

      &#010 For DragDataAction:"copy" where the target DataSource is related to the source&#010 DataSource by foreignKey, a duplicate means that the target list, as filtered by the current&#010 criteria, already has a record whose value for the foreignKey field matches the&#010 primaryKey of the record being transferred.&#010

      &#010 For example, consider dragging "employees" to "teams", where "teams" has a field&#010 "teams.employeeId" which is a foreignKey pointing to "employees.id", and the target&#010 grid has search criteria causing it to show all the members of one team. A duplicate -&#010 adding an employee to the same team twice - is when the target grid's dataset contains an&#010 record with "employeeId" matching the "id" field of the dropped employee.

      Specified by:
      getPreventDuplicates in interface DataBoundComponent
      Returns:
      Boolean
    • setDuplicateDragMessage

      public TileGrid setDuplicateDragMessage(String duplicateDragMessage) throws IllegalStateException
      Description copied from interface: DataBoundComponent
      Message to show when a user attempts to transfer duplicate records into this component, and&#010 preventDuplicates is enabled. If set to null, duplicates will not be reported and the dragged duplicates will not be saved.
      Specified by:
      setDuplicateDragMessage in interface DataBoundComponent
      Parameters:
      duplicateDragMessage - duplicateDragMessage Default value is "Duplicates not allowed"
      Returns:
      DataBoundComponent instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getDuplicateDragMessage

      public String getDuplicateDragMessage()
      Description copied from interface: DataBoundComponent
      Message to show when a user attempts to transfer duplicate records into this component, and&#010 preventDuplicates is enabled. If set to null, duplicates will not be reported and the dragged duplicates will not be saved.
      Specified by:
      getDuplicateDragMessage in interface DataBoundComponent
      Returns:
      String
    • setAddDropValues

      public TileGrid setAddDropValues(Boolean addDropValues)
      Description copied from interface: DataBoundComponent
      Indicates whether to add "drop values" to items dropped on this component, if both the source and target widgets are databound, either to the same DataSource or to different DataSources that are related via a foreign key. "Drop values" are properties of the dropped item that you wish to change (and persist) as a result of the item being dropped on this grid.

      If this value is true and this component is databound, DataBoundComponent.getDropValues() will be called for every databound item dropped on this grid, and an update performed on the item

      Specified by:
      setAddDropValues in interface DataBoundComponent
      Parameters:
      addDropValues - addDropValues Default value is true
      Returns:
      DataBoundComponent instance, for chaining setter calls
    • getAddDropValues

      public Boolean getAddDropValues()
      Description copied from interface: DataBoundComponent
      Indicates whether to add "drop values" to items dropped on this component, if both the source and target widgets are databound, either to the same DataSource or to different DataSources that are related via a foreign key. "Drop values" are properties of the dropped item that you wish to change (and persist) as a result of the item being dropped on this grid.

      If this value is true and this component is databound, DataBoundComponent.getDropValues() will be called for every databound item dropped on this grid, and an update performed on the item

      Specified by:
      getAddDropValues in interface DataBoundComponent
      Returns:
      Boolean
    • setDropValues

      public TileGrid setDropValues(Map dropValues)
      Description copied from interface: DataBoundComponent
      When an item is dropped on this component, and addDropValues is true and both the source and target widgets are databound, either to the same DataSource or to different DataSources that are related via a foreign key, this object provides the "drop values" that Smart GWT will apply to the dropped object before updating it.

      If this property is not defined, Smart GWT defaults to returning the selection criteria currently in place for this component. Thus, any databound items (for example, rows from other grids bound to the same DataSource) dropped on the grid will, by default, be subjected to an update that makes them conform to the grid's current filter criteria.

      Note : This is an advanced setting

      Specified by:
      setDropValues in interface DataBoundComponent
      Parameters:
      dropValues - dropValues Default value is null
      Returns:
      DataBoundComponent instance, for chaining setter calls
    • getDropValues

      public Map getDropValues()
      Description copied from interface: DataBoundComponent
      When an item is dropped on this component, and addDropValues is true and both the source and target widgets are databound, either to the same DataSource or to different DataSources that are related via a foreign key, this object provides the "drop values" that Smart GWT will apply to the dropped object before updating it.

      If this property is not defined, Smart GWT defaults to returning the selection criteria currently in place for this component. Thus, any databound items (for example, rows from other grids bound to the same DataSource) dropped on the grid will, by default, be subjected to an update that makes them conform to the grid's current filter criteria.

      Note : This is an advanced setting

      Specified by:
      getDropValues in interface DataBoundComponent
      Returns:
      Returns the "drop values" to apply to a record dropped on this component prior to update. Only&#010 applicable to databound components - see dropValues for more details. If multiple records &#010 are being dropped, this method is called for each of them in turn.&#010

      &#010 This method returns the following:&#010

        &#010
      • Nothing, if addDropValues is false
      • &#010
      • dropValues, if that property is set. If the component's criteria object is applicable (as explained&#010 in the next item), it is merged into dropValues, with properties in dropValues taking precedence.
      • &#010
      • The component's criteria object, if the most recent textMatchStyle for the component was "exact" &#010 and it is simple criteria (ie, not an AdvancedCriteria object)
      • &#010
      • Otherwise nothing
      • &#010
      &#010

      &#010 You can override this method if you need more complex setting of drop values than can be &#010 provided by simply supplying a dropValues object.&#010 &#010

    • setProgressiveLoading

      public TileGrid setProgressiveLoading(Boolean progressiveLoading)
      Indicates whether or not this component will load its data progressively
      Parameters:
      progressiveLoading -
      Returns:
      DataBoundComponent instance, for chaining setter calls
      See Also:
    • getProgressiveLoading

      public Boolean getProgressiveLoading()
      Indicates whether or not this component will load its data progressively
      Returns:
      See Also:
    • setUseFlatFields

      public TileGrid setUseFlatFields(Boolean useFlatFields) throws IllegalStateException
      Description copied from interface: DataBoundComponent
      The useFlatFields flag causes all simple type fields anywhere in a nested&#010 set of DataSources to be exposed as a flat list for form binding. &#010

      &#010 useFlatFields is typically used with imported metadata, such as &#010 XMLTools.loadXMLSchema(java.lang.String, com.smartgwt.client.data.XSDLoadCallback) from a &#010 XMLTools.loadWSDL(java.lang.String, com.smartgwt.client.data.WSDLLoadCallback), as a means of eliminating levels of XML&#010 nesting that aren't meaningful in a user interface, without the cumbersome and fragile&#010 process of mapping form fields to XML structures.&#010

      &#010 For example, having called WebService.getInputDS(java.lang.String) to retrieve the input message&#010 schema for a web service operation whose input message looks like this:&#010

      &#010 <FindServices>&#010     <searchFor>search text</searchFor>&#010     <Options>&#010         <caseSensitive>false</caseSensitive>&#010     </Options>&#010     <IncludeInSearch>&#010         <serviceName>true</serviceName>&#010         <documentation>true</documentation>&#010         <keywords>true</keywords>&#010     </IncludeInSearch>&#010 </FindServices>&#010 
      &#010 Setting useFlatFields on a DynamicForm that is bound to this input&#010 message schema would result in 5 FormItem reflecting the 5 simple type&#010 fields in the message.&#010

      &#010 For this form, the result of DynamicForm.getValues() might look&#010 like:&#010

      &#010

      {&#010    searchFor: "search text",&#010    caseSensitive: false,&#010    serviceName: true,&#010    documentation : true,&#010    keywords : true&#010 }
      &#010 When contacting a WebService, these values can be automatically&#010 mapped to the structure of the input message for a web service operation by setting&#010 {@link com.smartgwt.client..WSRequest#getUseFlatFields useFlatFields} (for use with WebService.callOperation(java.lang.String, java.util.Map, java.lang.String, com.smartgwt.client.data.WebServiceCallback)) or by setting&#010 useFlatFields (for use with a DataSource that is&#010 'bound to a WSDL web service' via&#010 wsOperation). &#010

      &#010 Using these two facilities in conjunction (component.useFlatFields and&#010 request.useFlatFields) allows gratuitous nesting to be consistently bypassed in both the user&#010 presentation and when providing the data for XML messages.&#010

      &#010 You can also set useFlatFields to automatically enable &#010 "flattened" XML serialization (request.useFlatFields) for all DataSource requests of a&#010 particular operationType.&#010

      &#010 Note that useFlatFields is not generally recommended for use with structures&#010 where multiple simple type fields exist with the same name, however if used with such a&#010 structure, the first field to use a given name wins. "first" means the first field&#010 encountered in a depth first search. "wins" means only the first field will be present as a&#010 field when data binding.

      Specified by:
      setUseFlatFields in interface DataBoundComponent
      Parameters:
      useFlatFields - useFlatFields Default value is null
      Returns:
      DataBoundComponent instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getUseFlatFields

      public Boolean getUseFlatFields()
      Description copied from interface: DataBoundComponent
      The useFlatFields flag causes all simple type fields anywhere in a nested&#010 set of DataSources to be exposed as a flat list for form binding. &#010

      &#010 useFlatFields is typically used with imported metadata, such as &#010 XMLTools.loadXMLSchema(java.lang.String, com.smartgwt.client.data.XSDLoadCallback) from a &#010 XMLTools.loadWSDL(java.lang.String, com.smartgwt.client.data.WSDLLoadCallback), as a means of eliminating levels of XML&#010 nesting that aren't meaningful in a user interface, without the cumbersome and fragile&#010 process of mapping form fields to XML structures.&#010

      &#010 For example, having called WebService.getInputDS(java.lang.String) to retrieve the input message&#010 schema for a web service operation whose input message looks like this:&#010

      &#010 <FindServices>&#010     <searchFor>search text</searchFor>&#010     <Options>&#010         <caseSensitive>false</caseSensitive>&#010     </Options>&#010     <IncludeInSearch>&#010         <serviceName>true</serviceName>&#010         <documentation>true</documentation>&#010         <keywords>true</keywords>&#010     </IncludeInSearch>&#010 </FindServices>&#010 
      &#010 Setting useFlatFields on a DynamicForm that is bound to this input&#010 message schema would result in 5 FormItem reflecting the 5 simple type&#010 fields in the message.&#010

      &#010 For this form, the result of DynamicForm.getValues() might look&#010 like:&#010

      &#010

      {&#010    searchFor: "search text",&#010    caseSensitive: false,&#010    serviceName: true,&#010    documentation : true,&#010    keywords : true&#010 }
      &#010 When contacting a WebService, these values can be automatically&#010 mapped to the structure of the input message for a web service operation by setting&#010 {@link com.smartgwt.client..WSRequest#getUseFlatFields useFlatFields} (for use with WebService.callOperation(java.lang.String, java.util.Map, java.lang.String, com.smartgwt.client.data.WebServiceCallback)) or by setting&#010 useFlatFields (for use with a DataSource that is&#010 'bound to a WSDL web service' via&#010 wsOperation). &#010

      &#010 Using these two facilities in conjunction (component.useFlatFields and&#010 request.useFlatFields) allows gratuitous nesting to be consistently bypassed in both the user&#010 presentation and when providing the data for XML messages.&#010

      &#010 You can also set useFlatFields to automatically enable &#010 "flattened" XML serialization (request.useFlatFields) for all DataSource requests of a&#010 particular operationType.&#010

      &#010 Note that useFlatFields is not generally recommended for use with structures&#010 where multiple simple type fields exist with the same name, however if used with such a&#010 structure, the first field to use a given name wins. "first" means the first field&#010 encountered in a depth first search. "wins" means only the first field will be present as a&#010 field when data binding.

      Specified by:
      getUseFlatFields in interface DataBoundComponent
      Returns:
      Boolean
    • setHiliteProperty

      public TileGrid setHiliteProperty(String hiliteProperty)
      Description copied from interface: DataBoundComponent
      Marker that can be set on a record to flag that record as hilited. Should be set to a value&#010 that matches {@link com.smartgwt.client..Hilite#getId id} for a hilite defined on this component.
      Specified by:
      setHiliteProperty in interface DataBoundComponent
      Parameters:
      hiliteProperty - hiliteProperty Default value is "_hilite"
      Returns:
      DataBoundComponent instance, for chaining setter calls
    • getHiliteProperty

      public String getHiliteProperty()
      Description copied from interface: DataBoundComponent
      Marker that can be set on a record to flag that record as hilited. Should be set to a value&#010 that matches {@link com.smartgwt.client..Hilite#getId id} for a hilite defined on this component.
      Specified by:
      getHiliteProperty in interface DataBoundComponent
      Returns:
      String
    • editFields

      public void editFields()
      Shows a FieldPicker interface allowing end-users to rearrange the order and visibiility of the fields in the associated DataBoundComponent.
    • editHilites

      public void editHilites()
      Description copied from interface: DataBoundComponent
      Shows a HiliteEditor interface allowing end-users to edit the data-hilites currently in use by this DataBoundComponent.
      Specified by:
      editHilites in interface DataBoundComponent
    • getHiliteState

      public String getHiliteState()
      Description copied from interface: DataBoundComponent
      Get the current hilites encoded as a String, for saving.
      Specified by:
      getHiliteState in interface DataBoundComponent
      Returns:
      the hilite state
    • setHiliteState

      public TileGrid setHiliteState(String hiliteState)
      Description copied from interface: DataBoundComponent
      Set the current hilites based on a hiliteState String previously returned from getHilitesState.
      Specified by:
      setHiliteState in interface DataBoundComponent
      Parameters:
      hiliteState - hilites state encoded as a String
      Returns:
      DataBoundComponent instance, for chaining setter calls
    • setHilites

      public TileGrid setHilites(Hilite[] hilites)
      Description copied from interface: DataBoundComponent
      Accepts an array of hilite objects and applies them to this DataBoundComponent. See also getHilites for a method of retrieving the hilite array for storage, including hilites manually added by the user.

      NOTE: This is only supported on ListGrid for now.

      Specified by:
      setHilites in interface DataBoundComponent
      Parameters:
      hilites - array of hilite objects
      Returns:
      DataBoundComponent instance, for chaining setter calls
    • getHilites

      public Hilite[] getHilites()
      Description copied from interface: DataBoundComponent
      Return the set of hilite-objects currently applied to this DataBoundComponent. These can be saved for storage and then restored to a component later via setHilites().
      Specified by:
      getHilites in interface DataBoundComponent
      Returns:
      array of hilite objects
    • setDragDataAction

      public TileGrid setDragDataAction(DragDataAction dragDataAction)
      Description copied from class: TileLayout
      Indicates what to do with data dragged into another DataBoundComponent. See DragDataAction type for details.
      Specified by:
      setDragDataAction in interface DataBoundComponent
      Overrides:
      setDragDataAction in class TileLayout
      Parameters:
      dragDataAction - New dragDataAction value. Default value is Canvas.MOVE
      Returns:
      TileLayout instance, for chaining setter calls
      See Also:
    • getDragDataAction

      public DragDataAction getDragDataAction()
      Description copied from class: TileLayout
      Indicates what to do with data dragged into another DataBoundComponent. See DragDataAction type for details.
      Specified by:
      getDragDataAction in interface DataBoundComponent
      Overrides:
      getDragDataAction in class TileLayout
      Returns:
      Current dragDataAction value. Default value is Canvas.MOVE
      See Also:
    • setDragTrackerStyle

      public TileGrid setDragTrackerStyle(String dragTrackerStyle)
      Description copied from interface: DataBoundComponent
      CSS Style to apply to the drag tracker when dragging occurs on this component.
      Specified by:
      setDragTrackerStyle in interface DataBoundComponent
      Parameters:
      dragTrackerStyle - dragTrackerStyle Default value is "gridDragTracker"
      Returns:
      DataBoundComponent instance, for chaining setter calls
    • getDragTrackerStyle

      public String getDragTrackerStyle()
      Description copied from interface: DataBoundComponent
      CSS Style to apply to the drag tracker when dragging occurs on this component.
      Specified by:
      getDragTrackerStyle in interface DataBoundComponent
      Returns:
      String
    • setCanAddFormulaFields

      public TileGrid setCanAddFormulaFields(Boolean canAddFormulaFields)
      Description copied from interface: DataBoundComponent
      Adds an item to the header context menu allowing users to launch a dialog to define a new&#010 field based on values present in other fields, using the {@link com.smartgwt.client..FormulaBuilder}.&#010

      &#010 User-added formula fields can be persisted via ListGrid.getFieldState() and &#010 ListGrid.setFieldState(java.lang.String).

      Specified by:
      setCanAddFormulaFields in interface DataBoundComponent
      Parameters:
      canAddFormulaFields - canAddFormulaFields Default value is false
      Returns:
      DataBoundComponent instance, for chaining setter calls
    • addSummaryField

      public void addSummaryField()
      Description copied from interface: DataBoundComponent
      Convenience method to display a {@link com.smartgwt.client..SummaryBuilder} to create a new Summary Field. This &#010 is equivalent to calling DataBoundComponentGen#editSummaryField with &#010 no parameter.&#010&#010
      Specified by:
      addSummaryField in interface DataBoundComponent
    • addFormulaField

      public void addFormulaField()
      Description copied from interface: DataBoundComponent
      Convenience method to display a {@link com.smartgwt.client..FormulaBuilder} to create a new Formula Field. This &#010 is equivalent to calling DataBoundComponentGen#editFormulaField with &#010 no parameter.&#010&#010
      Specified by:
      addFormulaField in interface DataBoundComponent
    • getCanAddFormulaFields

      public Boolean getCanAddFormulaFields()
      Description copied from interface: DataBoundComponent
      Adds an item to the header context menu allowing users to launch a dialog to define a new&#010 field based on values present in other fields, using the {@link com.smartgwt.client..FormulaBuilder}.&#010

      &#010 User-added formula fields can be persisted via ListGrid.getFieldState() and &#010 ListGrid.setFieldState(java.lang.String).

      Specified by:
      getCanAddFormulaFields in interface DataBoundComponent
      Returns:
      Boolean
    • setAddFormulaFieldText

      public TileGrid setAddFormulaFieldText(String addFormulaFieldText)
      Description copied from interface: DataBoundComponent
      Text for a menu item allowing users to add a formula field
      Specified by:
      setAddFormulaFieldText in interface DataBoundComponent
      Parameters:
      addFormulaFieldText - addFormulaFieldText Default value is "Add formula column..."
      Returns:
      DataBoundComponent instance, for chaining setter calls
    • getAddFormulaFieldText

      public String getAddFormulaFieldText()
      Description copied from interface: DataBoundComponent
      Text for a menu item allowing users to add a formula field
      Specified by:
      getAddFormulaFieldText in interface DataBoundComponent
      Returns:
      String
    • setEditFormulaFieldText

      public TileGrid setEditFormulaFieldText(String editFormulaFieldText)
      Description copied from interface: DataBoundComponent
      Text for a menu item allowing users to edit a formula field
      Specified by:
      setEditFormulaFieldText in interface DataBoundComponent
      Parameters:
      editFormulaFieldText - editFormulaFieldText Default value is "Edit formula..."
      Returns:
      DataBoundComponent instance, for chaining setter calls
    • getEditFormulaFieldText

      public String getEditFormulaFieldText()
      Description copied from interface: DataBoundComponent
      Text for a menu item allowing users to edit a formula field
      Specified by:
      getEditFormulaFieldText in interface DataBoundComponent
      Returns:
      String
    • setCanAddSummaryFields

      public TileGrid setCanAddSummaryFields(Boolean canAddSummaryFields)
      Description copied from interface: DataBoundComponent
      Adds an item to the header context menu allowing users to launch a dialog to define a new&#010 text field that can contain both user-defined text and the formatted values present in other &#010 fields, using the {@link com.smartgwt.client..SummaryBuilder}.&#010

      &#010 User-added summary fields can be persisted via ListGrid.getFieldState() and &#010 ListGrid.setFieldState(java.lang.String).

      Specified by:
      setCanAddSummaryFields in interface DataBoundComponent
      Parameters:
      canAddSummaryFields - canAddSummaryFields Default value is false
      Returns:
      DataBoundComponent instance, for chaining setter calls
    • getCanAddSummaryFields

      public Boolean getCanAddSummaryFields()
      Description copied from interface: DataBoundComponent
      Adds an item to the header context menu allowing users to launch a dialog to define a new&#010 text field that can contain both user-defined text and the formatted values present in other &#010 fields, using the {@link com.smartgwt.client..SummaryBuilder}.&#010

      &#010 User-added summary fields can be persisted via ListGrid.getFieldState() and &#010 ListGrid.setFieldState(java.lang.String).

      Specified by:
      getCanAddSummaryFields in interface DataBoundComponent
      Returns:
      Boolean
    • setAddSummaryFieldText

      public TileGrid setAddSummaryFieldText(String addSummaryFieldText)
      Description copied from interface: DataBoundComponent
      Text for a menu item allowing users to add a formula field
      Specified by:
      setAddSummaryFieldText in interface DataBoundComponent
      Parameters:
      addSummaryFieldText - addSummaryFieldText Default value is "Add summary column..."
      Returns:
      DataBoundComponent instance, for chaining setter calls
    • getAddSummaryFieldText

      public String getAddSummaryFieldText()
      Description copied from interface: DataBoundComponent
      Text for a menu item allowing users to add a formula field
      Specified by:
      getAddSummaryFieldText in interface DataBoundComponent
      Returns:
      String
    • setEditSummaryFieldText

      public TileGrid setEditSummaryFieldText(String editSummaryFieldText)
      Description copied from interface: DataBoundComponent
      Text for a menu item allowing users to edit the formatter for a field
      Specified by:
      setEditSummaryFieldText in interface DataBoundComponent
      Parameters:
      editSummaryFieldText - editSummaryFieldText Default value is "Edit summary format..."
      Returns:
      DataBoundComponent instance, for chaining setter calls
    • getEditSummaryFieldText

      public String getEditSummaryFieldText()
      Description copied from interface: DataBoundComponent
      Text for a menu item allowing users to edit the formatter for a field
      Specified by:
      getEditSummaryFieldText in interface DataBoundComponent
      Returns:
      String
    • setSavedSearchId

      public TileGrid setSavedSearchId(String savedSearchId)
      Description copied from interface: DataBoundComponent
      Optional identifier for saved searches that should be applied to this component.

      By default SavedSearches are associated with a component via its local ID and DataSource ID. This property allows developers to override this behavior and explicitly associate a component with a set of saved searches. This can provide a couple of benefits:
      Firstly this ensures that saved searches will be unambiguously associated with the particular component even if the page changes such that a stored minimal locator would no longer applied to the component, without requiring an explicit Canvas.ID.
      Secondly this allows the same set of saved searches to be applied to more than one component on a page. This may be valueable for cases where the same information from the same dataSource is presented to users in multiple places.

      Note: This is an advanced setting.

      Specified by:
      setSavedSearchId in interface DataBoundComponent
      Parameters:
      savedSearchId - New savedSearchId value. Default value is null
      Returns:
      DataBoundComponent instance, for chaining setter calls
    • getSavedSearchId

      public String getSavedSearchId()
      Description copied from interface: DataBoundComponent
      Optional identifier for saved searches that should be applied to this component.

      By default SavedSearches are associated with a component via its local ID and DataSource ID. This property allows developers to override this behavior and explicitly associate a component with a set of saved searches. This can provide a couple of benefits:
      Firstly this ensures that saved searches will be unambiguously associated with the particular component even if the page changes such that a stored minimal locator would no longer applied to the component, without requiring an explicit Canvas.ID.
      Secondly this allows the same set of saved searches to be applied to more than one component on a page. This may be valueable for cases where the same information from the same dataSource is presented to users in multiple places.

      Specified by:
      getSavedSearchId in interface DataBoundComponent
      Returns:
      Current savedSearchId value. Default value is null
    • setShowSavedSearchesByDS

      public TileGrid setShowSavedSearchesByDS(boolean showSavedSearchesByDS) throws IllegalStateException
      Description copied from interface: DataBoundComponent
      Whether to associate saved searches by default with the current DataSource of a component when a savedSearchId is not provided. If this property is true, then when the DataSource is changed, existing saved searches will disappear and only be available if the DataSource is set back to its original value.

      If this property is false, saved searches will persist across DataSource changes so that searches that aren't applicable to the current DataSource might still be shown.

      Note: This is an advanced setting

      Specified by:
      setShowSavedSearchesByDS in interface DataBoundComponent
      Parameters:
      showSavedSearchesByDS - New showSavedSearchesByDS value. Default value is true
      Returns:
      DataBoundComponent instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getShowSavedSearchesByDS

      public boolean getShowSavedSearchesByDS()
      Description copied from interface: DataBoundComponent
      Whether to associate saved searches by default with the current DataSource of a component when a savedSearchId is not provided. If this property is true, then when the DataSource is changed, existing saved searches will disappear and only be available if the DataSource is set back to its original value.

      If this property is false, saved searches will persist across DataSource changes so that searches that aren't applicable to the current DataSource might still be shown.

      Specified by:
      getShowSavedSearchesByDS in interface DataBoundComponent
      Returns:
      Current showSavedSearchesByDS value. Default value is true
    • findAll

      public Record[] findAll(AdvancedCriteria adCriteria)
      Filters all objects according to the AdvancedCriteria passed
      Parameters:
      adCriteria - AdvancedCriteria to use to filter results
      Returns:
      all matching Objects or null if none found
    • find

      public Record find(AdvancedCriteria adCriteria)
      Filters all objects according to the AdvancedCriteria passed and returns the first matching object or null if not found
      Parameters:
      adCriteria - AdvancedCriteria to use to filter results
      Returns:
      first matching object or null if not found
    • findIndex

      public int findIndex(AdvancedCriteria adCriteria)
      Finds the index of the first Record that matches with the AdvacendCriteria passed.
      Parameters:
      adCriteria - AdvancedCriteria to use to filter results
      Returns:
      index of the first matching Record or -1 if not found
    • findNextIndex

      public int findNextIndex(int startIndex, AdvancedCriteria adCriteria, int endIndex)
      Like RecordList.findIndex(java.util.Map), but considering the startIndex and endIndex parameters.
      Parameters:
      startIndex - first index to consider
      adCriteria - AdvancedCriteria to use to filter results
      endIndex - last index to consider
      Returns:
      index of the first matching Record or -1 if not found
    • findNextIndex

      public int findNextIndex(int startIndex, AdvancedCriteria adCriteria)
      Like RecordList.findIndex(java.util.Map), but considering the startIndex parameter.
      Parameters:
      startIndex - first index to consider
      adCriteria - AdvancedCriteria to use to filter results
      Returns:
      index of the first matching Record or -1 if not found
    • selectRecord

      public void selectRecord(Record record)
      Description copied from interface: DataBoundComponent
      Select/deselect a Record passed in explicitly, or by index.
      Specified by:
      selectRecord in interface DataBoundComponent
      Parameters:
      record - record (or row number) to select
    • selectRecord

      public void selectRecord(int record)
      Description copied from interface: DataBoundComponent
      Select/deselect a Record passed in explicitly, or by index.
      Specified by:
      selectRecord in interface DataBoundComponent
      Parameters:
      record - record (or row number) to select
    • selectRecord

      public void selectRecord(int record, boolean newState)
      Description copied from interface: DataBoundComponent
      Select/deselect a Record passed in explicitly, or by index.
      Specified by:
      selectRecord in interface DataBoundComponent
      Parameters:
      record - record (or row number) to select
      newState - new selection state (if null, defaults to true)
    • selectRecord

      public void selectRecord(Record record, boolean newState)
      Description copied from interface: DataBoundComponent
      Select/deselect a Record passed in explicitly, or by index.
      Specified by:
      selectRecord in interface DataBoundComponent
      Parameters:
      record - record (or row number) to select
      newState - new selection state (if null, defaults to true)
    • selectRecords

      public void selectRecords(int[] records)
      Description copied from interface: DataBoundComponent
      Select/deselect a list of Records passed in explicitly, or by index.
      Specified by:
      selectRecords in interface DataBoundComponent
      Parameters:
      records - records (or row numbers) to select
    • selectRecords

      public void selectRecords(int[] records, boolean newState)
      Description copied from interface: DataBoundComponent
      Select/deselect a list of Records passed in explicitly, or by index.
      Specified by:
      selectRecords in interface DataBoundComponent
      Parameters:
      records - records (or row numbers) to select
      newState - new selection state
    • selectRecords

      public void selectRecords(Record[] records)
      Description copied from interface: DataBoundComponent
      Select/deselect a list of Records passed in explicitly, or by index.
      Specified by:
      selectRecords in interface DataBoundComponent
      Parameters:
      records - records (or row numbers) to select
    • selectRecords

      public void selectRecords(Record[] records, boolean newState)
      Description copied from interface: DataBoundComponent
      Select/deselect a list of Records passed in explicitly, or by index.
      Specified by:
      selectRecords in interface DataBoundComponent
      Parameters:
      records - records (or row numbers) to select
      newState - new selection state (if null, defaults to true)
    • deselectRecord

      public void deselectRecord(Record record)
      Description copied from interface: DataBoundComponent
      Deselect a Record passed in explicitly, or by index.

      Synonym for selectRecord(record, false)

      Specified by:
      deselectRecord in interface DataBoundComponent
      Parameters:
      record - record (or row number) to deselect
    • deselectRecord

      public void deselectRecord(int record)
      Description copied from interface: DataBoundComponent
      Deselect a Record passed in explicitly, or by index.

      Synonym for selectRecord(record, false)

      Specified by:
      deselectRecord in interface DataBoundComponent
      Parameters:
      record - record (or row number) to deselect
    • deselectRecords

      public void deselectRecords(int[] records)
      Description copied from interface: DataBoundComponent
      Deselect a list of Records passed in explicitly, or by index.

      Synonym for selectRecords(records, false)

      Specified by:
      deselectRecords in interface DataBoundComponent
      Parameters:
      records - records (or row numbers) to deselect
    • deselectRecords

      public void deselectRecords(Record[] records)
      Description copied from interface: DataBoundComponent
      Deselect a list of Records passed in explicitly, or by index.

      Synonym for selectRecords(records, false)

      Specified by:
      deselectRecords in interface DataBoundComponent
      Parameters:
      records - records (or row numbers) to deselect
    • selectAllRecords

      public void selectAllRecords()
      Description copied from interface: DataBoundComponent
      Select all records&#010&#010
      Specified by:
      selectAllRecords in interface DataBoundComponent
    • deselectAllRecords

      public void deselectAllRecords()
      Description copied from interface: DataBoundComponent
      &#010 Deselect all records&#010&#010
      Specified by:
      deselectAllRecords in interface DataBoundComponent
    • anySelected

      public Boolean anySelected()
      Description copied from interface: DataBoundComponent
      Whether at least one item is selected&#010
      Specified by:
      anySelected in interface DataBoundComponent
      Returns:
      true == at least one item is selected false == nothing at all is selected
    • enableHilite

      public void enableHilite(String hiliteID)
      Description copied from interface: DataBoundComponent
      Enable / disable a hilites&#010&#010
      Specified by:
      enableHilite in interface DataBoundComponent
      Parameters:
      hiliteID - ID of hilite to enable
    • enableHilite

      public void enableHilite(String hiliteID, boolean enable)
      Description copied from interface: DataBoundComponent
      Enable / disable a hilites&#010&#010
      Specified by:
      enableHilite in interface DataBoundComponent
      Parameters:
      hiliteID - ID of hilite to enable
      enable - new enabled state to apply - if null, defaults to true
    • disableHilite

      public void disableHilite(String hiliteID)
      Description copied from interface: DataBoundComponent
      Disable a hilite&#010&#010
      Specified by:
      disableHilite in interface DataBoundComponent
      Parameters:
      hiliteID - ID of hilite to disable
    • enableHiliting

      public void enableHiliting()
      Description copied from interface: DataBoundComponent
      Enable all hilites.&#010&#010
      Specified by:
      enableHiliting in interface DataBoundComponent
    • enableHiliting

      public void enableHiliting(boolean enable)
      Description copied from interface: DataBoundComponent
      Enable all hilites.&#010&#010
      Specified by:
      enableHiliting in interface DataBoundComponent
      Parameters:
      enable - new enabled state to apply - if null, defaults to true
    • disableHiliting

      public void disableHiliting()
      Description copied from interface: DataBoundComponent
      Disable all hilites.&#010&#010
      Specified by:
      disableHiliting in interface DataBoundComponent
    • getDragData

      public Record[] getDragData()
      Description copied from interface: DataBoundComponent
      During a drag-and-drop interaction, this method returns the set of records being dragged out of the component. In the default implementation, this is the list of currently selected records.

      This method is consulted by&#010 ListGrid.willAcceptDrop().

      Specified by:
      getDragData in interface DataBoundComponent
      Returns:
      Array of Records that are currently selected.
    • transferSelectedData

      public void transferSelectedData(DataBoundComponent source)
      Description copied from interface: DataBoundComponent
      Simulates a drag / drop type transfer of the selected records in some other component to this component, without requiring any user interaction. This method acts on the dropped records exactly as if they had been dropped in an actual drag / drop interaction, including any special databound behavior invoked by calling DataBoundComponent.getDropValues() for each dropped record.

      To transfer all data in, for example, a ListGrid, call grid.selection.selectAll() first.

      Note that drag/drop type transfers of records between components are asynchronous operations: Smart GWT may need to perform server turnarounds to establish whether dropped records already exist in the target component. Therefore, it is possible to issue a call to transferSelectedData() and/or the drop() method of a databound component whilst a transfer is still active. When this happens, Smart GWT adds the second and subsequent transfer requests to a queue and runs them one after the other. If you want to be notified when a transfer process has actually completed, use HasDropCompleteHandlers.addDropCompleteHandler(com.smartgwt.client.widgets.events.DropCompleteHandler). See the Dragging documentation for an overview of list grid drag/drop data transfer.

      Specified by:
      transferSelectedData in interface DataBoundComponent
      Parameters:
      source - source component from which the records will be tranferred
    • transferSelectedData

      public void transferSelectedData(DataBoundComponent source, int index)
      Description copied from interface: DataBoundComponent
      Simulates a drag / drop type transfer of the selected records in some other component to this component, without requiring any user interaction. This method acts on the dropped records exactly as if they had been dropped in an actual drag / drop interaction, including any special databound behavior invoked by calling DataBoundComponent.getDropValues() for each dropped record.

      To transfer all data in, for example, a ListGrid, call grid.selection.selectAll() first.

      Note that drag/drop type transfers of records between components are asynchronous operations: Smart GWT may need to perform server turnarounds to establish whether dropped records already exist in the target component. Therefore, it is possible to issue a call to transferSelectedData() and/or the drop() method of a databound component whilst a transfer is still active. When this happens, Smart GWT adds the second and subsequent transfer requests to a queue and runs them one after the other. If you want to be notified when a transfer process has actually completed, use HasDropCompleteHandlers.addDropCompleteHandler(com.smartgwt.client.widgets.events.DropCompleteHandler). See the Dragging documentation for an overview of list grid drag/drop data transfer.

      Specified by:
      transferSelectedData in interface DataBoundComponent
      Parameters:
      source - source component from which the records will be transferred
      index - target index (drop position) of the rows within this grid.
    • getRecordIndex

      public int getRecordIndex(Record record)
      Description copied from interface: DataBoundComponent
      Get the index of the provided record.&#010

      &#010 Override in subclasses to provide more specific behaviour, for instance, when data holds a&#010 large number of records&#010&#010

      Specified by:
      getRecordIndex in interface DataBoundComponent
      Parameters:
      record - the record whose index is to be retrieved
      Returns:
      indexindex of the record, or -1 if not found
    • getTitleFieldValue

      public String getTitleFieldValue(Record record)
      Description copied from interface: DataBoundComponent
      Get the value of the titleField for the passed record&#010

      &#010 Override in subclasses &#010&#010

      Specified by:
      getTitleFieldValue in interface DataBoundComponent
      Parameters:
      record - the record whose index is to be retrieved
      Returns:
      valuethe value of the titleField for the passed record
    • setTitleField

      public TileGrid setTitleField(String titleField)
      Description copied from interface: DataBoundComponent
      Sets the best field to use for a user-visible title for an individual record from this component.
      Specified by:
      setTitleField in interface DataBoundComponent
      Returns:
      DataBoundComponent instance, for chaining setter calls
    • getTitleField

      public String getTitleField()
      Description copied from interface: DataBoundComponent
      Method to return the fieldName which represents the "title" for records in this&#010 Component.
      &#010 If this.titleField is explicitly specified it will always be used.&#010 Otherwise, default implementation will check titleField for databound&#010 components.
      &#010 For non databound components returns the first defined field name of "title", &#010 "name", or "id". If we dont find any field-names that match these&#010 titles, the first field in the component will be used instead.&#010
      Specified by:
      getTitleField in interface DataBoundComponent
      Returns:
      fieldName the title field for this component.
    • getDataSource

      public DataSource getDataSource()
      Description copied from interface: DataBoundComponent
      The DataSource that this component should bind to for default fields and for performing DataSource requests.
      Specified by:
      getDataSource in interface DataBoundComponent
      Returns:
      DataSource
    • setAutoFetchData

      public TileGrid setAutoFetchData(Boolean autoFetchData) throws IllegalStateException
      Description copied from interface: DataBoundComponent
      If true, when this component is first drawn, automatically call DataBoundComponent.fetchData() or DataBoundComponent.filterData() depending on DataBoundComponent.getAutoFetchAsFilter() . Criteria for this fetch may be picked up from initialCriteria and textMatchStyle may be specified via DataBoundComponent.getAutoFetchTextMatchStyle().

      NOTE: If autoFetchData is set, calling ListGrid.fetchData() before draw will cause two requests to be issued, one from the manual call to fetchData() and one from the autoFetchData setting. The second request will use only initialCriteria and not any other criteria or settings from the first request. Generally, turn off autoFetchData if you are going to manually call fetchData() at any time.

      Specified by:
      setAutoFetchData in interface DataBoundComponent
      Parameters:
      autoFetchData - autoFetchData
      Returns:
      DataBoundComponent instance, for chaining setter calls
      Throws:
      IllegalStateException
    • getAutoFetchData

      public Boolean getAutoFetchData()
      Description copied from interface: DataBoundComponent
      If true, when this component is first drawn, automatically call DataBoundComponent.fetchData() or DataBoundComponent.filterData() depending on DataBoundComponent.getAutoFetchAsFilter() . Criteria for this fetch may be picked up from initialCriteria and textMatchStyle may be specified via DataBoundComponent.getAutoFetchTextMatchStyle().

      NOTE: If autoFetchData is set, calling ListGrid.fetchData() before draw will cause two requests to be issued, one from the manual call to fetchData() and one from the autoFetchData setting. The second request will use only initialCriteria and not any other criteria or settings from the first request. Generally, turn off autoFetchData if you are going to manually call fetchData() at any time.

      Specified by:
      getAutoFetchData in interface DataBoundComponent
      Returns:
      autoFetchData autoFetchData
    • setAutoFetchTextMatchStyle

      public TileGrid setAutoFetchTextMatchStyle(TextMatchStyle autoFetchTextMatchStyle) throws IllegalStateException
      Description copied from interface: DataBoundComponent
      If autoFetchData is true, this attribute allows the developer to specify a textMatchStyle for the initial DataBoundComponent.fetchData() call.
      Specified by:
      setAutoFetchTextMatchStyle in interface DataBoundComponent
      Returns:
      DataBoundComponent instance, for chaining setter calls
      Throws:
      IllegalStateException
    • getAutoFetchTextMatchStyle

      public TextMatchStyle getAutoFetchTextMatchStyle()
      Description copied from interface: DataBoundComponent
      If autoFetchData is true, this attribute allows the developer to specify a textMatchStyle for the initial DataBoundComponent.fetchData() call.
      Specified by:
      getAutoFetchTextMatchStyle in interface DataBoundComponent
      Returns:
      autoFetchTextMatchStyle autoFetchTextMatchStyle
    • setAutoFetchAsFilter

      public TileGrid setAutoFetchAsFilter(Boolean autoFetchAsFilter) throws IllegalStateException
      Description copied from interface: DataBoundComponent
      If DataBoundComponent.setAutoFetchData(Boolean) is true, this attribute determines whether the initial fetch operation should be performed via DataBoundComponent.fetchData() or DataBoundComponent.filterData()
      Specified by:
      setAutoFetchAsFilter in interface DataBoundComponent
      Parameters:
      autoFetchAsFilter - autoFetchAsFilter
      Returns:
      DataBoundComponent instance, for chaining setter calls
      Throws:
      IllegalStateException
    • getAutoFetchAsFilter

      public Boolean getAutoFetchAsFilter()
      Description copied from interface: DataBoundComponent
      If DataBoundComponent.setAutoFetchData(Boolean) is true, this attribute determines whether the initial fetch operation should be performed via DataBoundComponent.fetchData() or DataBoundComponent.filterData()
      Specified by:
      getAutoFetchAsFilter in interface DataBoundComponent
      Returns:
      auto fetch as filter
    • setInitialCriteria

      public TileGrid setInitialCriteria(Criteria initialCriteria) throws IllegalStateException
      Description copied from interface: DataBoundComponent
      Criteria to use when DataBoundComponent.setAutoFetchData(Boolean) is used.
      Specified by:
      setInitialCriteria in interface DataBoundComponent
      Parameters:
      initialCriteria - the initial criteria
      Returns:
      DataBoundComponent instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getInitialCriteria

      public Criteria getInitialCriteria()
      Description copied from interface: DataBoundComponent
      Criteria to use when DataBoundComponent.setAutoFetchData(Boolean) is used.
      Specified by:
      getInitialCriteria in interface DataBoundComponent
      Returns:
      the criteria
    • setImplicitCriteria

      public TileGrid setImplicitCriteria(Criteria implicitCriteria)
      Description copied from interface: DataBoundComponent
      Criteria that are never shown to or edited by the user and are cumulative with any criteria provided via DataBoundComponent.initialCriteria, DataBoundComponent.setCriteria() etc.
      Specified by:
      setImplicitCriteria in interface DataBoundComponent
      Parameters:
      implicitCriteria - New implicitCriteria value. Default value is null
      Returns:
      DataBoundComponent instance, for chaining setter calls
    • setImplicitCriteria

      public Boolean setImplicitCriteria(Criteria implicitCriteria, DSCallback callback)
    • setImplicitCriteria

      public Boolean setImplicitCriteria(Criteria criteria, DSCallback callback, Boolean initialFetch)
    • getImplicitCriteria

      public Criteria getImplicitCriteria()
      Description copied from interface: DataBoundComponent
      Criteria that are never shown to or edited by the user and are cumulative with any criteria provided via DataBoundComponent.initialCriteria, DataBoundComponent.setCriteria() etc.
      Specified by:
      getImplicitCriteria in interface DataBoundComponent
      Returns:
      Current implicitCriteria value. Default value is null
    • fetchData

      public void fetchData()
      Description copied from interface: DataBoundComponent
      Retrieves data from the DataSource that matches the specified criteria.

      When fetchData() is first called, if data has not already been provided via setData(), this method will create a ResultSet, which will be configured based on component settings such as fetchOperation and dataPageSize, as well as the general purpose dataProperties. The created ResultSet will automatically send a DSRequest to retrieve data from the dataSource, and from then on will automatically manage paging through large datasets, as well as performing filtering and sorting operations inside the browser when possible - see the ResultSet docs for details.

      NOTE: do not use both autoFetchData and a call to fetchData() - this may result in two DSRequests to fetch data. Use either autoFetchData and setAutoFetchCriteria() or a manual call to fetchData() passing criteria.

      Whether a ResultSet was automatically created or provided via setData(), subsequent calls to fetchData() will simply call resultSet.setCriteria().

      Changes to criteria may or may not result in a DSRequest to the server due to client-side filtering. You can call willFetchData(criteria) to determine if new criteria will result in a server fetch.

      If you need to force data to be re-fetched, you can call invalidateCache() and new data will automatically be fetched from the server using the current criteria and sort direction. NOTE: when using invalidateCache() there is no need to also call fetchData() and in fact this could produce unexpected results.

      This method takes an optional callback parameter (set to a DSCallback) to fire when the fetch completes. Note that this callback will not fire if no server fetch is performed. In this case the data is updated synchronously, so as soon as this method completes you can interact with the new data. If necessary, you can use resultSet.willFetchData() to determine whether or not a server fetch will occur when fetchData() is called with new criteria.

      In addition to the callback parameter for this method, developers can use resultSet.addDataArrivedHandler to be notified every time data is loaded.

      Specified by:
      fetchData in interface DataBoundComponent
    • fetchData

      public void fetchData(Criteria criteria)
      Description copied from interface: DataBoundComponent
      Retrieves data from the DataSource that matches the specified criteria.

      When fetchData() is first called, if data has not already been provided via setData(), this method will create a ResultSet, which will be configured based on component settings such as fetchOperation and dataPageSize, as well as the general purpose dataProperties. The created ResultSet will automatically send a DSRequest to retrieve data from the dataSource, and from then on will automatically manage paging through large datasets, as well as performing filtering and sorting operations inside the browser when possible - see the ResultSet docs for details.

      NOTE: do not use both autoFetchData and a call to fetchData() - this may result in two DSRequests to fetch data. Use either autoFetchData and setAutoFetchCriteria() or a manual call to fetchData() passing criteria.

      Whether a ResultSet was automatically created or provided via setData(), subsequent calls to fetchData() will simply call resultSet.setCriteria().

      Changes to criteria may or may not result in a DSRequest to the server due to client-side filtering. You can call willFetchData(criteria) to determine if new criteria will result in a server fetch.

      If you need to force data to be re-fetched, you can call invalidateCache() and new data will automatically be fetched from the server using the current criteria and sort direction. NOTE: when using invalidateCache() there is no need to also call fetchData() and in fact this could produce unexpected results.

      This method takes an optional callback parameter (set to a DSCallback) to fire when the fetch completes. Note that this callback will not fire if no server fetch is performed. In this case the data is updated synchronously, so as soon as this method completes you can interact with the new data. If necessary, you can use resultSet.willFetchData() to determine whether or not a server fetch will occur when fetchData() is called with new criteria.

      In addition to the callback parameter for this method, developers can use resultSet.addDataArrivedHandler to be notified every time data is loaded.

      Specified by:
      fetchData in interface DataBoundComponent
      Parameters:
      criteria - Search criteria. If a DynamicForm is passed in as this argument instead of a raw criteria object, will be derived by calling DynamicForm.getValuesAsCriteria()
    • fetchData

      public void fetchData(Criteria criteria, DSCallback callback)
      Description copied from interface: DataBoundComponent
      Retrieves data from the DataSource that matches the specified criteria.

      When fetchData() is first called, if data has not already been provided via setData(), this method will create a ResultSet, which will be configured based on component settings such as fetchOperation and dataPageSize, as well as the general purpose dataProperties. The created ResultSet will automatically send a DSRequest to retrieve data from the dataSource, and from then on will automatically manage paging through large datasets, as well as performing filtering and sorting operations inside the browser when possible - see the ResultSet docs for details.

      NOTE: do not use both autoFetchData and a call to fetchData() - this may result in two DSRequests to fetch data. Use either autoFetchData and setAutoFetchCriteria() or a manual call to fetchData() passing criteria.

      Whether a ResultSet was automatically created or provided via setData(), subsequent calls to fetchData() will simply call resultSet.setCriteria().

      Changes to criteria may or may not result in a DSRequest to the server due to client-side filtering. You can call willFetchData(criteria) to determine if new criteria will result in a server fetch.

      If you need to force data to be re-fetched, you can call invalidateCache() and new data will automatically be fetched from the server using the current criteria and sort direction. NOTE: when using invalidateCache() there is no need to also call fetchData() and in fact this could produce unexpected results.

      This method takes an optional callback parameter (set to a DSCallback) to fire when the fetch completes. Note that this callback will not fire if no server fetch is performed. In this case the data is updated synchronously, so as soon as this method completes you can interact with the new data. If necessary, you can use resultSet.willFetchData() to determine whether or not a server fetch will occur when fetchData() is called with new criteria.

      In addition to the callback parameter for this method, developers can use resultSet.addDataArrivedHandler to be notified every time data is loaded.

      Specified by:
      fetchData in interface DataBoundComponent
      Parameters:
      criteria - Search criteria. If a DynamicForm is passed in as this argument instead of a raw criteria object, will be derived by calling DynamicForm.getValuesAsCriteria()
      callback - callback to invoke when a fetch is complete. Fires only if server contact was required
    • fetchData

      public void fetchData(Criteria criteria, DSCallback callback, DSRequest requestProperties)
      Description copied from interface: DataBoundComponent
      Retrieves data from the DataSource that matches the specified criteria.

      When fetchData() is first called, if data has not already been provided via setData(), this method will create a ResultSet, which will be configured based on component settings such as fetchOperation and dataPageSize, as well as the general purpose dataProperties. The created ResultSet will automatically send a DSRequest to retrieve data from the dataSource, and from then on will automatically manage paging through large datasets, as well as performing filtering and sorting operations inside the browser when possible - see the ResultSet docs for details.

      NOTE: do not use both autoFetchData and a call to fetchData() - this may result in two DSRequests to fetch data. Use either autoFetchData and setAutoFetchCriteria() or a manual call to fetchData() passing criteria.

      Whether a ResultSet was automatically created or provided via setData(), subsequent calls to fetchData() will simply call resultSet.setCriteria().

      Changes to criteria may or may not result in a DSRequest to the server due to client-side filtering. You can call willFetchData(criteria) to determine if new criteria will result in a server fetch.

      If you need to force data to be re-fetched, you can call invalidateCache() and new data will automatically be fetched from the server using the current criteria and sort direction. NOTE: when using invalidateCache() there is no need to also call fetchData() and in fact this could produce unexpected results.

      This method takes an optional callback parameter (set to a DSCallback) to fire when the fetch completes. Note that this callback will not fire if no server fetch is performed. In this case the data is updated synchronously, so as soon as this method completes you can interact with the new data. If necessary, you can use resultSet.willFetchData() to determine whether or not a server fetch will occur when fetchData() is called with new criteria.

      In addition to the callback parameter for this method, developers can use resultSet.addDataArrivedHandler to be notified every time data is loaded.

      Specified by:
      fetchData in interface DataBoundComponent
      Parameters:
      criteria - Search criteria. If a DynamicForm is passed in as this argument instead of a raw criteria object, will be derived by calling DynamicForm.getValuesAsCriteria()
      callback - callback to invoke when a fetch is complete. Fires only if server contact was required
      requestProperties - additional properties to set on the DSRequest that will be issued
    • filterData

      public void filterData()
      Description copied from interface: DataBoundComponent
      Retrieves data that matches the provided criteria and displays the matching data in this component.

      This method behaves exactly like ListGrid.fetchData() except that textMatchStyle is automatically set to "substring" so that String-valued fields are matched by case-insensitive substring comparison.

      Specified by:
      filterData in interface DataBoundComponent
    • filterData

      public void filterData(Criteria criteria)
      Description copied from interface: DataBoundComponent
      Retrieves data that matches the provided criteria and displays the matching data in this component.

      This method behaves exactly like ListGrid.fetchData() except that textMatchStyle is automatically set to "substring" so that String-valued fields are matched by case-insensitive substring comparison.

      Specified by:
      filterData in interface DataBoundComponent
      Parameters:
      criteria - Search criteria. If a DynamicForm is passed in as this argument instead of a raw criteria object, will be derived by calling DynamicForm.getValuesAsCriteria()
    • filterData

      public void filterData(Criteria criteria, DSCallback callback)
      Description copied from interface: DataBoundComponent
      Retrieves data that matches the provided criteria and displays the matching data in this component.

      This method behaves exactly like ListGrid.fetchData() except that textMatchStyle is automatically set to "substring" so that String-valued fields are matched by case-insensitive substring comparison.

      Specified by:
      filterData in interface DataBoundComponent
      Parameters:
      criteria - Search criteria. If a DynamicForm is passed in as this argument instead of a raw criteria object, will be derived by calling DynamicForm.getValuesAsCriteria()
      callback - callback to invoke when a fetch is complete. Fires only if server contact was required; see DataBoundComponent.fetchData() for details
    • filterData

      public void filterData(Criteria criteria, DSCallback callback, DSRequest requestProperties)
      Description copied from interface: DataBoundComponent
      Retrieves data that matches the provided criteria and displays the matching data in this component.

      This method behaves exactly like ListGrid.fetchData() except that textMatchStyle is automatically set to "substring" so that String-valued fields are matched by case-insensitive substring comparison.

      Specified by:
      filterData in interface DataBoundComponent
      Parameters:
      criteria - Search criteria. If a DynamicForm is passed in as this argument instead of a raw criteria object, will be derived by calling DynamicForm.getValuesAsCriteria()
      callback - callback to invoke when a fetch is complete. Fires only if server contact was required; see DataBoundComponent.fetchData() for details
      requestProperties - for databound components only - optional additional properties to set on the DSRequest that will be issued
    • invalidateCache

      public void invalidateCache()
      Description copied from interface: DataBoundComponent
      Invalidate the current data cache for this databound component via a call to the dataset's invalidateCache() method, for example, ResultSet.invalidateCache().

      NOTE: there is no need to call invalidateCache() when a save operation is performed on a DataSource. Automatic cache synchronization features will automatically update caches - see ResultSet for details. If automatic cache synchronization isn't working, troubleshoot the problem using the steps suggested in the FAQ rather than just calling invalidateCache(). Calling invalidateCache() unnecessarily causes extra server load and added code complexity.

      Calling invalidateCache() will automatically cause a new fetch to be performed with the current set of criteria if data had been previously fetched and the component is currently drawn with data visible - there is no need to manually call fetchData() after invalidateCache() and this could result in duplicate fetches.

      While data is being re-loaded after a call to invalidateCache(), the widget is in a state similar to initial data load - it doesn't know the total length of the dataset and any APIs that act on records or row indices will necessarily fail and should not be called. To detect that the widget is in this state, call ResultSet.lengthIsKnown().

      invalidateCache() only has an effect if this component's dataset is a data manager class that manages a cache (eg ResultSet or ResultTree). If data was provided as a simple Array or List, invalidateCache() does nothing.

      Specified by:
      invalidateCache in interface DataBoundComponent
      See Also:
    • getResultSet

      public ResultSet getResultSet()
      Description copied from interface: DataBoundComponent
      Return the underlying data of this DataBoundComponent as a ResultSet.

      Note that this method should only be called after initial data has been fetched by this DataBoundComponent.

      Specified by:
      getResultSet in interface DataBoundComponent
      Returns:
      ResultSet, or null if the underlying data is not a ResultSet
      See Also:
    • getRecordList

      public RecordList getRecordList()
      Description copied from interface: DataBoundComponent
      Return the underlying data of this DataBoundComponent as a RecordList.

      Depending on the component configuration, the actual JavaScript instance of the returned RecordList may be one of several types:

      • If the component is not bound to a DataSource, the instance is generally an Array of Record.
      • If the component is bound to a DataSource, the instance is a ResultSet.
      • If the component is a grouped ListGrid, the instance is a Tree. To access the ungrouped record list regardless of grouping status, use
        isGrouped() ? getOriginalRecordList() : getRecordList()
      • If the component is a TreeGrid, the instance is a ResultTree.
      The underlying type determines the structure of the returned data. An Array or ResultSet represents a list of records, but a Tree or ResultTree represents a list of open rows in the tree, including groups or other nodes which contain no records.
      Specified by:
      getRecordList in interface DataBoundComponent
      Returns:
      the RecordList
    • getDataAsJSList

      public JavaScriptObject getDataAsJSList()
      Specified by:
      getDataAsJSList in interface DataBoundComponent
    • exportData

      public void exportData()
      Description copied from interface: DataBoundComponent
      Specified by:
      exportData in interface DataBoundComponent
    • exportData

      public void exportData(DSRequest requestProperties)
      Description copied from interface: DataBoundComponent
      Specified by:
      exportData in interface DataBoundComponent
    • exportData

      public void exportData(DSRequest requestProperties, RPCCallback callback)
      Description copied from interface: DataBoundComponent
      Uses a "fetch" operation on the current DataSource to retrieve data that matches the current filter and sort criteria for this component, then exports the resulting data to a file or window in the requested format.

      A variety of DSRequest settings, such as exportAs and exportFilename, affect the exporting process: see exportResults for further detail.

      Note that data exported via this method does not include any client-side formatting and relies on both the Smart GWT server and server-side DataSources. To export client-data with formatters applied, see exportClientData, which still requires the Smart GWT server but does not rely on server-side DataSources.

      For more information on exporting data, see DataSource.exportData.

      Specified by:
      exportData in interface DataBoundComponent
      Parameters:
      requestProperties - additional properties to set on DSRequest that will be issued
      callback - Optional callback. Note that this parameter only applies if you specify exportToClient: false in the request properties, because file downloads don't provide ordinary framework callbacks
      See Also:
    • addFetchDataHandler

      public HandlerRegistration addFetchDataHandler(FetchDataHandler handler)
      Add a fetchData handler.

      Notification function fired on fetchData() or filterData()

      Specified by:
      addFetchDataHandler in interface HasFetchDataHandlers
      Parameters:
      handler - the filterData handler
      Returns:
      HandlerRegistration used to remove this handler
    • addDropCompleteHandler

      public HandlerRegistration addDropCompleteHandler(DropCompleteHandler handler)
      Add a com.smartgwt.client.widgets.DropCompleteHandler. See that class's documentation for a definition of "drop complete", and how it differs from "drag complete" (com.smartgwt.client.widgets.DragCompleteHandler).
      Specified by:
      addDropCompleteHandler in interface HasDropCompleteHandlers
      Parameters:
      handler - the DropCompleteHandler
      Returns:
      HandlerRegistration used to remove this handler
    • addDragCompleteHandler

      public HandlerRegistration addDragCompleteHandler(DragCompleteHandler handler)
      Add a com.smartgwt.client.widgets.DragCompleteHandler. See that class's documentation for a definition of "drag complete", and how it differs from "drop complete" (com.smartgwt.client.widgets.DropCompleteHandler).
      Specified by:
      addDragCompleteHandler in interface HasDragCompleteHandlers
      Parameters:
      handler - the DropCompleteHandler
      Returns:
      HandlerRegistration used to remove this handler
    • getFieldAlignments

      public Alignment[] getFieldAlignments()
      Description copied from interface: DataBoundComponent
      Returna an array of field alignments for this grid
      Specified by:
      getFieldAlignments in interface DataBoundComponent
      Returns:
      array of Alignments
    • getDeepCloneOnEdit

      public Boolean getDeepCloneOnEdit()
      Description copied from interface: DataBoundComponent
      Before we start editing values in this DataBoundComponent, should we perform a deep clone of the underlying values. See DataSource.getDeepCloneOnEdit() for details of what this means.

      If this value is not explicitly set, it defaults to the DataSource deepCloneOnEdit value. This value can also be overridden per-field with DataSourceField.setDeepCloneOnEdit(java.lang.Boolean).

      Like the other deepCloneOnEdit settings, this flag only has an effect if you are editing a values object that contains nested objects or arrays, using Canvas.setDataPath(java.lang.String)

      Specified by:
      getDeepCloneOnEdit in interface DataBoundComponent
    • setDeepCloneOnEdit

      public TileGrid setDeepCloneOnEdit(Boolean deepCloneOnEdit)
      Description copied from interface: DataBoundComponent
      Before we start editing values in this DataBoundComponent, should we perform a deep clone of the underlying values. See DataSource.getDeepCloneOnEdit() for details of what this means.

      If this value is not explicitly set, it defaults to the DataSource deepCloneOnEdit value. This value can also be overridden per-field with DataSourceField.setDeepCloneOnEdit(java.lang.Boolean).

      Like the other deepCloneOnEdit settings, this flag only has an effect if you are editing a values object that contains nested objects or arrays, using Canvas.setDataPath(java.lang.String)

      Specified by:
      setDeepCloneOnEdit in interface DataBoundComponent
      Returns:
      DataBoundComponent instance, for chaining setter calls
    • setFields

      public TileGrid setFields(JavaScriptObject... fields)
      Description copied from interface: DataBoundComponent
      Field setter variant (alternative to setFields(FormItem...), setFields(ListGridField...), etc.) that will accept an array of JavaScriptObject, rather than an array of SmartGWT Java wrappers of the field class type (e.g. FormItem, ListGridField, etc.) This is an advanced method and only for cases where you have the JavaScriptObject for each field but want to avoid having to create each associated SmartGWT Java wrapper.

      Note: use toArray() to create a Java array of JavaScriptObject if you only have the array itself as a single JavaScriptObject.

      Specified by:
      setFields in interface DataBoundComponent
      Parameters:
      fields - the component fields
      Returns:
      DataBoundComponent instance, for chaining setter calls
    • getFieldsAsJavaScriptObjects

      public JavaScriptObject[] getFieldsAsJavaScriptObjects()
      Description copied from interface: DataBoundComponent
      Return the fields as JavaScriptObjects rather than as SmartGWT Java wrappers of the field class type (e.g. FormItem, ListGridField, etc.) This avoids building the SmartGWT Java wrappers for the fields in situations where they aren't needed - and for FormItems in particular - where there may not be enough information to determine the correct subclass, such as before the SmartClient instance underlying the DynamicForm has been created.
      Specified by:
      getFieldsAsJavaScriptObjects in interface DataBoundComponent
      Returns:
      the component fields
    • getFieldCount

      public int getFieldCount()
      Description copied from interface: DataBoundComponent
      Return the number of fields.
      Specified by:
      getFieldCount in interface DataBoundComponent
      Returns:
      the number of fields
    • transferRecords

      public void transferRecords(Record[] records, Record targetRecord, Integer index, Canvas sourceWidget, TransferRecordsCallback callback)
      Description copied from interface: DataBoundComponent
      Transfer a list of Records from another component (does not have to be a databound component) into this component. This method is only applicable to list-type components, such as ListGrid or com.smartgwt.client.widgets.tile.TileGridTileGrid. Notably, it does not apply to TreeGrid; the equivalent for treeGrids is transferNodes.

      This method implements the automatic drag-copy and drag-move behaviors of components like ListGrid, and calling it is equivalent to completing a drag and drop of the dropRecords (the default record drop behavior is simply to call transferRecords(), passing in the dropped nodes)

      Note that this method is asynchronous - it may need to perform server turnarounds to prevent duplicates in the target component's data. If you wish to be notified when the transfer process has completed, you can either pass a non-null callback to this method or add a DropCompleteHandler to this component.

      See also transferSelectedData()

      Specified by:
      transferRecords in interface DataBoundComponent
      Parameters:
      records - Recordss to transfer to this component
      targetRecord - The target record (eg, of a drop interaction), for context
      index - Insert point relative to the target record for the transferred records
      sourceWidget - The databound or non-databound component from which the records are to be transferred.
      callback - optional TransferRecordsCallback to be fired when the transfer process has completed (pass null if your code does not need to be called back). The callback will be passed the list of records actually transferred to this component
    • setDragDataCustomizer

      public TileGrid setDragDataCustomizer(DragDataCustomizer customizer)
      During a drag-and-drop interaction, this method returns the set of records being dragged out of the component. In the default implementation, this is the list of currently selected records.

      This method is consulted by willAcceptDrop().

      Parameters:
      DragDataCustomizer - customizer
      Returns:
      DataBoundComponent instance, for chaining setter calls
    • getSort

      public SortSpecifier[] getSort()
      Description copied from interface: DataBoundComponent
      Returns the current SortSpecifiers for this component. Will return null if this component has never been sorted, or the underlying SmartClient widget does not exist.
      Specified by:
      getSort in interface DataBoundComponent
      Returns:
      current sort specifiers for this component (null if unsorted or no SC widget)
    • setSort

      public TileGrid setSort(SortSpecifier... sortSpecifiers)
      Description copied from interface: DataBoundComponent
      Sort the component on one or more fields.

      Pass in an array of SortSpecifiers to have the component's data sorted by the fields in each specifier.property and in the directions specified. The component can be sorted by any combination of fields, including fields specified in the fields array and unused fields from the underlying dataSource, if there is one.

      If setSort() is called on a component which doesn't yet have a SmartClient widget, the widget will be created. If autoFetchData is set and a DataSource has been set, this will result in data being fetched.

      Specified by:
      setSort in interface DataBoundComponent
      Parameters:
      sortSpecifiers - Array of SortSpecifier objects
    • setLogicalStructure

      public LogicalStructureObject setLogicalStructure(TileGridLogicalStructure s)
      Setter implementing the LogicalStructure interface, which supports Eclipse's logical structure debugging facility.
    • getLogicalStructure

      public LogicalStructureObject getLogicalStructure()
      Getter implementing the LogicalStructure interface, which supports Eclipse's logical structure debugging facility.
      Specified by:
      getLogicalStructure in interface LogicalStructure
      Overrides:
      getLogicalStructure in class TileLayout