Compile Time Changes

Analytics/Statisitics

Moved getMainExtensionPackage(symbol pkg) from cm.core to cm.win. And added statsMainExtensionPackage(symbol pkg) that always returns the package.

// cm/win/eventLogG3.cm
Added: public symbol statsMainExtensionPackage(symbol pkg)
Added: public symbol getMainExtensionPackage(symbol pkg) //moved from cm.core

// cm/core/eventLogFunctions.cm
Removed: public symbol getMainExtensionPackage(symbol pkg) //moved to cm.win

New interface to specify Event manufacturer for Window related events (similar interface to Snapper). You may override this to explicitly specify the event manufacturer (if the default isn't applicable).

// cm/win/window.cm  class Window
extend public G3ManufacturerId statsManufacturer() 

For Layout-driven Props Scheme a.k.a PsLayoutPropsScheme (that are not automatically registered by catalogs, instead registered by your extension), the statistics properties can be specified by either overriding the methods from PropsScheme (recommended if you are already using a custom PsLayoutPropsScheme class), or assigning the PsLayoutStatsCB object into the PsLayoutPropsScheme instance (e.g. when registering).

PsLayoutStatsCB object can be supplied either by extending the PsLayoutStatsCB class to provide your implementation of the methods or construct a PsLayoutStoredStatsCB object that can be initialized with static values for the respective statistics related properties

// cm/core/propsScheme/propsSchemeDialog.cm  class PropsScheme
Added: extend public G3ManufacturerId statsManufacturer()

// cm/core/propsScheme/layout/psLayoutPropsScheme.cm class PsLayoutPropsScheme
Added: public PsLayoutStatsCB statsCB

// cm/core/propsScheme/layout/statistics.cm 
Added: public class PsLayoutStatsCB
Added: public class PsLayoutStoredStatsCB extends PsLayoutStatsCB

For Product Analytics (Part statistics), a new interface in "Part" was added to allow a more convenient way to supply option information for part statistics.

// cm/core/part/part.cm  class Part
Added: extend public (PartEntryOption[])[] statsPartEntryOptions()

With the above interface, cm.abstract.part.ProdPart class now implements this new method instead of the whole toStatsPartEntry method.

// cm/abstract/part/prodPart.cm  class ProdPart
Added: public (PartEntryOption[])[] statsPartEntryOptions()
Removed: public void toStatsPartEntry(Space space, PartEntry entry)

As part of PartEntry, the previously deprecated field have been removed.

// cm/statistics/statsPartsDB.cm  class PartEntry
Removed: public str options