Class MockDataSource

All Implemented Interfaces:
HasHandlers, HasDataChangedHandlers, HasHandleErrorHandlers

public class MockDataSource extends DataSource
A special kind of client-only DataSource that can be configured with "mock data" - a simple text format for table or tree data.

MockDataSources are produced by the Reify Mockup Importer when starting from mockup formats that use the mock data format. The docs for the Reify Mockup Importer explain various steps for converting a MockDataSource to a real DataSource.

MockDataSource is primarily intended as a temporary form of DataSource used during the process of converting a mockup into a real application. Generally, if creating a client-only DataSource in Java, there is no reason to use the mock data format, as the mock data is not especially readable when written as a String literal. The mock data format can be a slightly more compact and readable as compared to declaring DataSource.cacheData in XML.

Note: If a MockDataSource has addGlobalId set to true, it will be made available in global scope.

Unlike other DataSources, if a MockDataSource is created with an ID that is already in use by another DataSource, the existing DataSource will not be destroy()'d and the new MockDataSource will not be available by ID.
Similarly, if a MockDataSource exists and a new DataSource is created with the same ID the MockDataSource will be destroy()'d automatically without logging a warning to the developer console.
This means if application code changes to replace a MockDataSource with a "real" dataSource it will function as expected, without warnings, even if the MockDataSource creation code was not removed, regardless of the order in which the MockDataSource and "real" dataSource are created.

  • Constructor Details

    • MockDataSource

      public MockDataSource()
    • MockDataSource

      public MockDataSource(JavaScriptObject jsObj)
  • Method Details

    • getOrCreateRef

      public static MockDataSource getOrCreateRef(JavaScriptObject jsObj)
    • create

      public JavaScriptObject create()
      Overrides:
      create in class DataSource
    • setMockData

      public MockDataSource setMockData(String mockData) throws IllegalStateException
      Data intended for a ListGrid or TreeGrid, expressed in a simple text format popularized by mockup tools such as balsamiq and now commonly supported in a variety of mockup tools.

      Balsamiq publishes documentation of the grid format here, with a simple example of using tree-specific formatting here.

      MockData can also be provided as XML, CSV or JSON text by setting MockDataFormat to the correct format.

      An alternative format of data consisting of an array of Records can also be provided. In this case the records are converted to "grid" format.

      Parameters:
      mockData - New mockData value. Default value is "md"
      Returns:
      MockDataSource instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the underlying component has been created
    • getMockData

      public String getMockData()
      Data intended for a ListGrid or TreeGrid, expressed in a simple text format popularized by mockup tools such as balsamiq and now commonly supported in a variety of mockup tools.

      Balsamiq publishes documentation of the grid format here, with a simple example of using tree-specific formatting here.

      MockData can also be provided as XML, CSV or JSON text by setting MockDataFormat to the correct format.

      An alternative format of data consisting of an array of Records can also be provided. In this case the records are converted to "grid" format.

      Returns:
      Current mockData value. Default value is "md"
    • setMockData

      public MockDataSource setMockData(Record... mockData) throws IllegalStateException
      Data intended for a ListGrid or TreeGrid, expressed in a simple text format popularized by mockup tools such as balsamiq and now commonly supported in a variety of mockup tools.

      Balsamiq publishes documentation of the grid format here, with a simple example of using tree-specific formatting here.

      MockData can also be provided as XML, CSV or JSON text by setting MockDataFormat to the correct format.

      An alternative format of data consisting of an array of Records can also be provided. In this case the records are converted to "grid" format.

      Parameters:
      mockData - New mockData value. Default value is "md"
      Returns:
      MockDataSource instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the underlying component has been created
    • getMockDataAsRecordArray

      public Record[] getMockDataAsRecordArray()
      Data intended for a ListGrid or TreeGrid, expressed in a simple text format popularized by mockup tools such as balsamiq and now commonly supported in a variety of mockup tools.

      Balsamiq publishes documentation of the grid format here, with a simple example of using tree-specific formatting here.

      MockData can also be provided as XML, CSV or JSON text by setting MockDataFormat to the correct format.

      An alternative format of data consisting of an array of Records can also be provided. In this case the records are converted to "grid" format.

      Returns:
      Current mockData value. Default value is "md"
    • setMockDataFormat

      public MockDataSource setMockDataFormat(MockDataFormat mockDataFormat) throws IllegalStateException
      Format of data provided in mockData. See MockDataFormat.
      Parameters:
      mockDataFormat - New mockDataFormat value. Default value is "mock"
      Returns:
      MockDataSource instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the underlying component has been created
    • getMockDataFormat

      public MockDataFormat getMockDataFormat()
      Format of data provided in mockData. See MockDataFormat.
      Returns:
      Current mockDataFormat value. Default value is "mock"
    • setMockDataPrimaryKey

      public MockDataSource setMockDataPrimaryKey(String mockDataPrimaryKey) throws IllegalStateException
      Name of field in mockData that should be used as the primary key. Otherwise a hidden primary key field will automatically be added with a type of 'sequence'.
      Parameters:
      mockDataPrimaryKey - New mockDataPrimaryKey value. Default value is null
      Returns:
      MockDataSource instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the underlying component has been created
      See Also:
    • getMockDataPrimaryKey

      public String getMockDataPrimaryKey()
      Name of field in mockData that should be used as the primary key. Otherwise a hidden primary key field will automatically be added with a type of 'sequence'.
      Returns:
      Current mockDataPrimaryKey value. Default value is null
      See Also:
    • setMockDataType

      public MockDataSource setMockDataType(MockDataType mockDataType) throws IllegalStateException
      When mockDataFormat is "mock", whether mockData is in the "grid" or "tree" format. See MockDataType.

      If not specified, the type will be detected from the data.

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

      public MockDataType getMockDataType()
      When mockDataFormat is "mock", whether mockData is in the "grid" or "tree" format. See MockDataType.

      If not specified, the type will be detected from the data.

      Returns:
      Current mockDataType value. Default value is null
    • setDefaultProperties

      public static void setDefaultProperties(MockDataSource mockDataSourceProperties)
      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:
      mockDataSourceProperties - properties that should be used as new defaults when instances of this class are created
      See Also:
    • getMockDataAsRecord

      public Record[] getMockDataAsRecord()
      Deprecated.