Release Note 024: New Features released on June 13th 2012

 

OpenEdge Version compatibility note

  

This release of the SmartComponent Library has been tested with OpenEdge 10.2B Service Packs 3, 4, 5 and 6 as well as OpenEdge 11.0.0.003. If you are planning to use the SmartComponent Library on OpenEdge 11, please make sure to use at least the Hotfix 003. If you need support obtaining this service pack from Progress Technical Support please let us know!  

We are expecting the release of OpenEdge 11.1 later this month. We will provide a feedback on compatibility with OpenEdge 11.1 soon after the release of OpenEdge 11.1.  

 

New add-ons to the SmartComponent Library

  

Recently we have developed two add-ons to the SmartComponent Library. Together with the framework extension for mobile device development (SmartComponent.Mobile) the SmartComponent Library can now also be used to develop WebSpeed applications (SmartComonents.Web) and provides a very tight integration with OpenEdge BPM/Savvion. Please contact us, when you are interested in exploring the capabilities of those add-ons.  

 

Versions of the Consultingwerk .NET Assemblies contained in this release

  

 

Assembly name

Version

 

Consultingwerk.Design

2.2.0.17550

 

Consultingwerk.SmartComponents.Design

2.2.0.19636

 

Consultingwerk.SmartComponents

2.2.19846 (updated)

 

Consultingwerk.Support

2.2.0.18949

 

Consultingwerk.Utilities.Support

1.10.0.20532 (new Assembly)

 

  

 

List of new features / functionality

  

Below is a list of the key features released today:  

  • Change 21340: RenderedBrowseControl now can re-fetch the DB records based on a unique index (does not need to be primary unique)  

  • Change 21339: MessageFormHelper: Changed the way the Dialog parent/owner is set because at one client using the ShowDialog with the Owner parameter caused this error (likely Progress Bug)  

  • Change 21337: UltraToolbarsHelper: Don't update the Caption with the LABEL of a Radio-set  

  • Change 21336: WidgetHelper:FindChildWidgetsByName  

  • Change 21316: ListHelper:DelimitedListToDictionary  

  • Change 21258: Consultingwerk.Character class for Character comparison  
  • Change 21257: Formatting of Stack-Trace when written to the (client-)logfile  
  • Change 21251: Enum for ClientType  

  • Change 21250: BusinessEntityDesigner / - generator are now able to regenerate the dataset/temp-table definitions without overwriting the rest of the code  

  • Change 21238: Ensure that AppError derived Exception class properly adds the Error Messages to the base  

  • Change 21237: ListHelper:AlternatingListToDictionary  

  • Change 21227: Generic Dictionary implementation  
  • Change 21226: Consultingwerk.Framework.Base.List:ToArray () method  

  • Change 21223: DataTypeHelper:ByteArrayToMemptr  

  • Change 21217: Don't restore DockManagerSettings from the registry, when there is not a stored setting (yet)  

  • Change 21201: New method in the ServiceManager that allows registering of services that have not been started by the ServiceManager. Using that method, for instance session services loaded into the default ServiceContainer could be used by clients for InvokeTask calls  

  • Change 21192: Ability to use alternative ServiceAdapter instances with the SmartBusinessEntityAdapter  

  • Change 21155: Fixed SESSION:REMOTE for WebSpeed  

  • Change 21122: Email utility  
  • Change 21108: Additional LogManager methods  

  • Change 21070: UltraGridSettings: No need to provide Index by ColumnKey  

  • Change 21043: ViewObjectsForm: Additional details about the listed objects  

  • Change 21042: Enhancements to UltraToolbarsHelper:EraseToolbarCollection, now also deletes Ribbon Tabs and Groups  

  • Change 21038: Fixes for Unix/Linux compatibility  
  • Change 21036: Resolved dependnecy to SmartComponents for ttViewerDesign.i File should be removed under Consultingwerk\SmartComponents\Implementation  

  • Change 21033: Win32 API Methods to disable the CloseButton of a Window/Form and disable window repaint  

  • Change 21023: FileHelper:GetFileList with support for non .NET  

  • Change 21020: New property: BaseForm:UseStartupSizeAsMinSize Enforce Form's MinSize during OnLoad  

  • Change 21019: IEmbeddedWindowForm:OverlayControls is now a dictionary with the Handle of the ABL Widget being the Key  

  • Change 20986: Bug 2826: Support for Queries with more than 18 buffers in QueryHelper:RepositionToRowidArray  

  • Change 20983: Bug 2819: FindRowWhere should use QUERY instead of FIND-FIRST  

  • Change 20982: Fixed the way that SetQuerySort in SmartBusinessEntityAdapter is working when BatchSize > 0  

  • Change 20981: SmartDataBrowser: Use fully qualified field name when building QuerySort  

  • Change 20972: BindingSourceHelper:BindingBufferFieldName to resolve a column's field name with and without the UseFullFieldName Attribute of the ProBindingSource (10.2B+5)  

  • Change 20966: New API in DockManagerHelper to store the DockManager settings in the ISettingsService. The file .BusinessEntityDesignerSettings2.xml is obsolete and should be deleted.  

  • Change 20965: DataTypeHelper:ByteArrayToCharacter() and CharacterToByteArray ()  

  • Change 20964: ISettingsService now using LONGCHAR instead of CHARACTER  
  • Change 20962: Generic Assertion class for ABL primitive values  
  • Change 20959: UltraTreeWithSearchControls: Turn off Timer Component in PerformSearch  

  • Change 20958: WidgetHelper:LoadImage to use ImageHelper:MakeTransparent instead of Bitmap's MakeTransparent method.  

  • Change 20957: WidgetHelper:FindAllFrames  

  • Change 20951: WinKit: IToolImageProvider extended for CheckReloadImage method to allow cusotmer implementations of Image Loading also determine if the Image should be reloaded during a refresh of the state  

  • Change 20950: WidgetHelper:CanFindWidgetBelowHeight  

  • Change 20937: WidgetHelper:CanFindWidgetOfType  

  • Change 20936: GLOBAL-DEFINE WinKitActive moved to winkitactive.i for better reuse  

  • Change 20934: UltraToolbarsHelper:LinkButtonsAndTools based on a list of Button handles (in alternative to those methods based on a Frame handle)  

  • Change 20932: WidgetHelper:ReplaceWidgets to recurse nested frames  

  • Change 20929: Handling of errors from Update or Delete Trigger during SAVE-ROW-CHANGES  
  • Change 20907: EventLogHelper class - simplify working with the Windows EventLog  

  • Change 20902: Restrict Data-Relation Identifier to 32 characters (ABL limit)  
  • Change 20898: New API for adding Dataset Callbacks in Consultingwerk.OERA.DataAccess  

  • Change 20897: Business Entity Generator: Generated Temp-Table fields will have the LABEL qualified with :T translation attribute  
  • Change 20896: Error-Handling when getclassnames.p did not return a valid file-name  
  • Change 20886: Display Progress Version in the Business Entity Designer Status  
  • Change 20883: Support for having the same a DB-Table name in more than one database in the Business Entity Designer  
  • Change 20867: Bug 2808: Fix initial value for FetchQueryString  

  • Change 20858: Bug 2808 - Additing INITIAL Value to all Property definitions which will be mapped to [DefaultValue] attributes for the Visual Designer  

  • Change 20857: Bug 2817: Handling of client side query strings with unquoted ? values fixed  
  • Change 20834: Use Column Name when there is no Column Label  
  • Change 20801: Method to return a list of records as EntityTable instances based on a Query/QueryString  

  • Change 20799: Business Entity Designer Settings with activation for the Entity Object Generator Plugin  
  • Change 20797: Traverse child buffers and populate child objects  
  • Change 20796: Generate methods to copy buffer values to and from the Entity Object  
  • Change 20795: Maintenance of Access Mode for Entity Properties from Business Entity Designer  
  • Change 20793: 2820 : Bug in DataAccess:FetchData when using Oracle Dataserver  

  • Change 20786: Generation of Entity Objects  
  • Change 20784: Maintenance of OO relation name, table class name and table package name  
  • Change 20774: Business Entity Designer: Maintenance of Relation cardinality (one/many)  
  • Change 20767: Abstracted the access to the dynamic viewer definition to allow retrieval and storage of the settings from or to custom data sources  
  • Change 20760: Replaced all TAB Characters with four SPACE Characters to preserve formatting of Consulting source code when customers are using more of less spaces for tabs  
  • Change 20758: Avoid Exceptions during Restoring of Ribbon Quick Access Toolbars  
  • Change 20757: [Bug 2810] Check for VALID-HANDLE in FINALLY blocks - first part All packages except the actual Consultingwerk.SmartComponents package reviewed  

  • Change 20756: Added method RefreshButtons now required for Interface IEmbeddedWindowForm  

  • Change 20750: IEmbeddedWindowForm:RefreshButtons  

  • Change 20749: WidgetHelper:ReplaceWidget  

  • Change 20745: WidgetHelper:LeftAlingFields  

  • Change 20741: Double Click event should only call the DEFAULT-ACTION ABL Event, when done on a regular row  
  • Change 20733: UltraToolbarsHelper: Moved the call to add the new item to the Tools collection to before the call to the custom ToolImageProvider class so that this class could - if required - call back to poToolItem:ToolbarsManager:DockedWithinContainer etc.  

  • Change 20722: UltraToolbarsManager:FindToolFromWidgetHandle  

  • Change 20691: ServiceLoader now performs PROPATH lookup to find XML file to read  

  • Change 20685: EmbeddedWindowTabFolderForm:AssignTabLabels  

  • Change 20652: Enum for the Internal Entry Type  
  • Change 20648: Tokenizer class  
  • Change 20637: SmartDatasetAdapter: UpdateRow (logical) Re-Evaluate the parent filter query based on eventually updated parent filter fields when in a GroupCreate situation the parent's key fields are changed on the server  

  • Change 20631: WidgetHelper: Avoid setting the background color to the same color as the foreground.  

  • Change 20609: UltraToolbarsHelper:GetMainMenuToolbar (poToolbarsManager)  

  • Change 20608: Infragistics Translation as a standard framework service (typically loaded once during application startup or when the users language changes)  
  • Change 20607: WinKitDontEmbed Switch in embedwindow.i to allow no to embed a specific window even when the WinKit is enabled by default  

  • Change 20577: Fix for Bug 2807: Verify validity of Dataset handle prior to deleting it.  
  • Change 20574: Automatic saving of the Ribbon Quick Access Toolbar  
  • Change 20571: RibbonBuilder service class  

  • Change 20570: UpdateWindowAttributes in EmbeddedWindowForm for OverlayWidgets  

  • Change 20569: WidgetHelper: New method FindWidgetsInRectangle  

  • Change 20568: UltraToolbarsHelper new methods: GetQuickAccessToolbarTools, RestoreQuickAccessToolbarTools  

  • Change 20565: Added Destructor to the SmartBusinessEntityLookupDialog Form to delete the Data Adpater instance used by the Lookup Dialog.  

  • Change 20559: RenderedBrowseControl:ProcessColorCodingAndCalculatedFields to use NO-LOCK  

  • Change 20553: RenderedBrowseControl:RestoryDynamicBrowseColumns ADD-LIKE-COLUMN should be used with NO-ERROR to suppress error messages, like issues with VALIDATE expressions that do not work in browsers  

  • Change 20552: WidgetHelper:Refresh... routines adopted to the fact that the Tag property may carry additional information  

  • Change 20546: RenderedBrowseControl restores the columns of Dynamic browsers after exchanging the Query handle  

  • Change 20545: PROTECTED Method WidgetHelper:CloseDatePopup renamed to ClosePopup  

  • Change 20544: WidgetHelper: Optionally APPLY CHOOSE or post BM_CLICK when overlay buttons are chosen by the user  

  • Change 20537: RenderedBrowseControl: Support for ROW-DISPLAY on Buffers with NO unique index at all.  

  • Change 20534: An Utility to import Excel files into Temp-Tables  
  • Change 20533: Use the inner exception class name as the title for the Error message and not the title of the outer exception.  
  • Change 20525: Asynchronous Closing of ABL Window widgets from .NET Form  
  • Change 20524: StyleLibraryHelper:LoadFromBlob  

  • Change 20520: Exclude ROW-DISPLAY Trigger from running the triggereind.i code  
  • Change 20508: UltraToolbarsHelper with support for ICustomToolbarWidgetRenderer  

  • Change 20505: MENU-ITEM's with no image should have DisplayStyle TextOnlyAlways  

  • Change 20504: UltraToolbarsHelper:ToolbarButtonMaxDistance Ability to specify a range in which BUTTON's are kept within the same Group  

  • Change 20487: ValueListHelper with support for ABL CharacterList and ListNameValuePair  

  • Change 20484: ICharacterInputValidator, IDateInputValidator, IDecimalInputValidator, IIntegerInputValidator, ILogicalInputValidator and a default implementation.  
  • Change 20467: BeforeRetrieveData Event  

  • Change 20460: Don't explicitly DELETE OBJECT Form's when closing Dialog Forms  
  • Change 20458: Workaround for bug 2774 / OpenEdge bug OE00217383 Consultingwerk.EventArgs inherits from System.EventArgs  

  • Change 20456: Workaround for bug 2774 / OpenEdge bug OE00217383 Consultingwerk.EventArgs inherits from System.EventArgs  

  • Change 20454: RenderedBrowseControl: Default Formatting of calculated columns  

  • Change 20453: RenderedBrowseControl: Fixes to Updatable Browser  

  • Change 20452: DataTypeHelper: map +/- to Logical  

  • Change 20451: Ability to change the order of execution of the APPLY ROW-DISPLAY and the WinKitDisplayFieldsIn hook procedure.  

  • Change 20450: Use of the ProVersionEnum  

  • Change 20448: Support for DB/Temp-Table fields that are (ab)used as calculated fields  
  • Change 20447: Cleanup unused properties from Context object  
  • Change 20446: Integration of ILogMessageHandler into RenderedBrowseControl  

  • Change 20442: Linked ImageList with BE structure TreeView - so that the filter icon is shown in the Tree when a table is filtered  

  • Change 20440: BusinessEntityBrowser  

  • Change 20435: ProVersionEnum  

  • Change 20434: MessageFormHelper: Additional optional parameter for the ParentForm  

  • Change 20431: Use a parameter object for the Constructor of the RenderedBrowseControl class to allow for easier extension  

  • Change 20427: RenderedBrowseControl: Prebuild a list of columns matching the unique indexes of all tables  

  • Change 20425: Bundled definition/access to LockWindowUpdate windows API into Consultingwerk.Windows.API.Win32.cls  

  • Change 20414: RenderedBrowseControl: Centralized Routine to adjust ColorCodedColumnNames property to match BindingSource:UseFullFieldNames setting  

  • Change 20413: FormatHelper to map Progress "z" in the format string to "n" for Infragistics. Digit placeholder. A group of n's can be used to create a numeric section where numbers are entered from right to left. Character must be numeric (0-9) but entry is not required.  

  • Change 20403: Ability to display InnerException in ErrorHelper:ShowErrorMessage  

  • Change 20402: InnerError of Exception as Progress.Lang.Error interface, not ProError implementation.  

  • Change 20399: List classes for ABL primitives  
  • Change 20385: WidgetHelper:FindFramesWithinRectangle  

  • Change 20381: ProcedureHelper:HasInternalEntriesMatching  

  • Change 20377: CompilerHelper: Honor plMD5 parameter  

  • Change 20363: SmartDatasetAdapter: ToString() method override that returns the Business Entity Name, Entity Table and Entity View for logging and Debugging purposes.  

  • Change 20357: NO-ERROR on oClass = Progress.Lang.Class:GetClass (pcFormType)  

  • Change 20318: Actional Instrumentation with the ability to log all fields of a Buffer (useful for SaveChanges)  

  • Change 20291: Fixed ClassHelper:GetClassNamesFromExternalRuntime to work with R-Code only setups  

  • Change 20270: Preparation for WebClient Deployment  

  • Change 20250: AppServer proxy for the Repository Services  

  • Change 20246: BaseForm does no longer use the foreach.i/Iterator when iterating the DependentForms list as this did cause System.InvalidReferenceExeception in .NET  

  • Change 20245: Fixed passing of MessageFields to Actional  

  • Change 20242: Transparency of the seperator between the BindingSource fields and other controls such as the TabFolder in the BindingSourceFieldsControl (Consultingwerk runtime Designer)  

  • Change 20229: A Framework to integrate Actional Instrumentation into the Service Interface (AppServer, OpenEdge 11.0)  

  • Change 20201: Enumerator support for Dictionaries of ABL primitive types  
  • Change 20188: Shared Interface for the Business Entity related Data Adapters to allow accessing the EntityName  

  • Change 20186: SmartBusinessEntityAdapter: FindRowWhere on server only  

  • Change 20175: Interface Consultingwerk.OERA.IDSQueryString to allow custom implementations of the Query manipulatio code  
  • Change 20170: SmartViewerControl: SET of SmartDataSource property does not EvaluateTableIOState when set outside of BeginInit and EndInit  

  • Change 20149: Dictionary classes for ABL Primitives (Consultingwerk.Framework.Collections)  
  • Change 20148: ParameterNullValueException class  

  • Change 20147: InvalidValueException with optional Description attribute  

  • Change 20139: Consultingwerk.CancelableEventArgs INHERITS Consultingwerk.EventArgs, not System.EventArgs  

  • Change 20134: Fixed isse with recursion (nested frames) in WidgetHelper:AddCalendarPopups  

  • Change 20133: foreachABL.i Include file for enumerating an ABL list  
  • Change 20132: ISupportsListChanged event; invalidates ListEnumerator until Reset()  

  • Change 20131: IEnumerator / IEnumerable implementation for the Consultingwerk.Framework.Base.List class  
  • Change 20130: BufferHelper:HasField  

  • Change 20121: WinKit TabFolderCustomizer  

  • Change 20107: Additional constructors to the Exception classes using the InnerException pattern  

  • Change 20106: InvalidReferenceException  

  • Change 20105: SmartTempTableAdapter does not require a method to validate a business entity name (ValidateBusinessEntityName). So this method was removed now.  

  • Change 20103: ListChanged Event on List Classes  

  • Change 20090: CompilerHelper: Supress warning messages during running the COMPILE statements to avoid raising errors from compiler warnings.  

  • Change 20036: Literal widget type added to WidgetTypeEnum.  

  • Change 20032: RenderedBrowseControl: Selection Type set to None, to avoid "partly selected" row after binding source position has changed  

  • Change 19993: ObjectAssert:TypeOf  

  • Change 19940: ServiceLoader: Ability to register more than a single Interface (role) per Service using a comma-delimited list  

  • Change 19926: To workaround the issue described in Bug 2776 all WRITE-XML methods in the SmartComponent Library are now using the optional Formatted parameter set to TRUE  

  • Change 19916: Bug 2775, DesignerFieldsHelper :U, removed ASSIGN keyword to workaround compiler crash  

  • Change 19902: BufferHelper:UniqueFindPredicate: When there is no unique primary index, use the first unique index  

  • Change 19900: SmartBindingSource: When adding fields to a viewer design, use the field name as the label when the field's label is not set.  

  • Change 19859: Dynamic Form Launcher  
  • Change 19857: IGroupCreate Implementation  
  • Change 19856: SmartViewerControl: After an update or creation of a new record is cancelled, the SmartViewerControl now calls the EvaluateTableIOState method to ensure a proper table IO state  

  • Change 19855: An Enumeration that describes ABL data types  
  • Change 19848: SmartViewerControl: Invoke EvaluateTableIOState during EndInit  

  • Change 19847: Ensure that CreateBindignSource is not executed during design time, as the GETter of the BindingSource property will always return ? in the Visual Desginer and that would cause issues with the next call that tries to set properties of the ProBindingSource.  

  • Change 19846: Additional .NET Properties aded to the .NET SmartViewer Interface, to increate reliability of them showing up in the PropertyGrid for new Viewers.  

  • Change 19747: The BusinessEntityGenerator will open the generated source code files in OpenEdge Architect after they have been generated.  

  • Change 19736: Fixed ability to create a new record on the SmartBusinessEntityAdapter before prior call to RetrieveData  

  • Change 19719: Fix ClassLookup when using multiple projects (or SharedAVM) by passing PROPATH as a parameter to the external runtime  

  • Change 19715: GroupCreate Link Interfaces  

  • Change 19706: Support for UseFullFieldNames with RenderedBrowseControl  

  • Change 19688: OpenEdge Architect customization tool that opens the selected program as a debug-listing