Wisej Release Notes

1.4.80

 

General

 

We have drastically reduced the size of Wisej.web.dll basically cutting in half by zipping embedded qooxdoo resources.

Additionally we added a new layer of caching that optimizes startup time and overall performance since it also applies to images in buttons, etc.

RightToLeft support preview is included in this release. It is 90% complete.  See http://wisej.com/docs/html/RightToLeft.htm for more information.

Wisej 1.4 is an important update. It implements a much lighter and more granular locking pattern and has changed the synchronization of requests coming into the server eliminating completely the risk of deadlocks. For more information see the Concepts/Synchronization topic at http://wisej.com/docs.

This release also significantly increased the designer performance and accuracy by using IE11 when available, and removed all remaining potential client-side and server-side component leaks.

Please note that all themes have been updated.

 

Roadmap

 

We have added a new section in the release notes to keep track of the features roadmap. Here it is, in loose order of priority:

OpenFileDialog

ColorPicker Control

RightToLeft Support (90% Complete)

Nested Rows Support in the DataGridView (Complete)

ToolBar Additional Panels

Additional Data Bound Controls

Standard Collection Editor for the PropertyGrid

DataGridView  AutoResize and Selection models

  

Fixed Bugs / Enhancements

Item

Type

Title

Resolution

WJ-8864

Regression

DateTime values are passed to the client in 12h format losing the PM information.

Complete

WJ-8859

Bug

Edge keeps spinning when the Application.Title or Page.Text or Desktop.Text are "".

Complete

WJ-8858

Bug

Enter on Form activates AcceptButton set on Page and then AcceptButton set on Form

Complete

WJ-8855

Bug

When clicking on a radio button that is not checked, it gets checked correctly but it's not focused.

Complete

WJ-8854

Bug

Self hosting in single exe defaults to Default.json when the configuration file is not present on disk.

Complete

WJ-8849

Enhancement

Add support for storing the session cookie id in window.sessionStorage to allow multiple sessions in different tabs without cookieless.

Complete

WJ-8848

Enhancement

Detect keyboard modifiers state in MouseDown, MouseUp, and MouseClick events.

Complete

WJ-8847

Enhancement

Add support for WebSocket connections closed by the browser when the OS puts the browser in the background.

Complete

WJ-8846

Bug

Multiple modifiers pressed at the same time result in e.Modifiers = None.

Complete

WJ-8843

Enhancement

Add an EditMask to DateTimePicker

Complete

WJ-8842

Bug

A touch event on an Ipad2 can raise a RuntimeBinderException.

Complete

WJ-8841

Bug

Localization breaks TableLayoutPanel

Complete

WJ-8839

Bug

OnLeave in a DateTimePicker sets its text preventing a proper validation

Complete

WJ-8836

Bug

MdiChildren Activate() doesn't change ActiveMdiChild

Complete

WJ-8835

Bug

Can´t load image source from a resource when its name contains blanks

Complete

WJ-8834

Bug

A client not supporting websocket compression could disable it for the complete application

Complete

WJ-8833

Bug

Cannot navigate between MessageBox buttons using the Tab key

Complete

WJ-8830

Enhancement

Add DataGridView.ColumnFillWeightChanged event.

Complete

WJ-8829

Enhancement

Add PropertyGrid.NameFillWeight property and Added PropertyGrid.NameFillWeightChanged event.

Complete

WJ-8828

Enhancement

Add ApplicationBase.BrowserSizeChanged event

Complete

WJ-8827

Bug

ToolBar overflow: pushed Button is always shown as not pushed

Complete

WJ-8826

Enhancement

Automatically clear the client when a session expires (works with WebSocket connections only).

Complete

WJ-8825

Enhancement

Changed session id generator from Guid to RNG (Cryptographic Random Number Generator).

Complete

WJ-8821

Bug

Under certain rare conditions a modal dialog may become a zombie widget disposed on the server bit still visible on the client and stops responding to event.

Complete

WJ-8819

Bug

The calendar icon in DateTimePicker is truncated at the bottom in Edge.

Complete

WJ-8818

Bug

Creating a Form with WindowStyle=Maximized doesn't fire the Load even if attached in InitializeComponent.

Complete

WJ-8817

New Feature

Add public static JSON class to provide JSON serialization and parsing to applications.

Complete

WJ-8816

Bug

Validation doesn't use the value of ContainerControl.AutoValidate and Control.CausesValidation.

Complete

WJ-8815

Bug

Clicking a Control with Focusable = false removes the focus from the active control.

Complete

WJ-8814

Bug

Toolbar buttons, menu items remove the focus from the active control.

Complete

WJ-8813

Bug

Opening a Wisej project in design mode on a PC with a different DPI scaling renders the designer incorrectly.

Complete

WJ-8812

Bug

Font autoscaling is not working correctly and may scale child containers twice.

Complete

WJ-8811

Enhancement

Support local caching for wisej resources using the Last-Modified and If-Modified-Since headers.

Complete

WJ-8809

New Feature

Support automatic polling to emulate push updates without WebSocket.

Complete

WJ-8808

Bug

When IE sets "localhost" in compatibility view the Wisej designer fails.

Complete

WJ-8807

New Feature

Add ListControl.IconMember to show icons in ComboBox and ListBox items.

Complete

WJ-8806

Bug

Assigning a text to a ComboBox control that doesn't match an item in the list also clears the text. It should keep the text if the ComboBox is editable.

Complete

WJ-8805

Enhancement

Prevent the Desktop.TaskBar from hiding when it contains TaskBarItems.

Complete

WJ-8804

Enhancement

Add MouseEventArgs.OriginalTarget to determine the target control of a pointer event that bubbled up.

Complete

WJ-8803

New Feature

Add the Control.Anonymous property to make controls invisible to pointer events without having to disable the controls.

Complete

WJ-8798

Bug

TextBox Focus on Page doesn't focus

Complete

WJ-8795

Enhancement

ApplicationBase.Configuration.KeepAliveInterval expose actual value used on the client side

Complete

WJ-8794

Enhancement

ApplicationBase.Configuration.SessionTimeout expose actual value used on the client side

Complete

WJ-8793

Enhancement

Add keepAliveInterval to json file

Complete

WJ-8791

Bug

Multilevel child controls do not show in the designer

Complete

WJ-8788

Bug

Cannot reset/remove a DGV tooltip

Complete

WJ-8784

Bug

Updates to the NumericUpDown control can fail while editing when there is an active timer.

Complete

WJ-8782

Enhancement

Customize form tools container in the theme definition.

Complete

WJ-8781

Bug

Resizing the scrollbars in the theme doesn't scale the image of the scroll grip.

Complete

WJ-8777

Bug

StatusBar: grip should show on the right side.

Complete

WJ-8776

Bug

TopMost windows show behind modal dialogs, they should be on top of every window.

Complete

WJ-8775

Bug

Set AcceptButton is ignored if target button is invisible.

Complete

WJ-8773

Bug

TaskBar shouldn't hide when there are open (but minimized) windows.

Complete

WJ-8767

Bug

DataGridViewDatePickerColumn.Format = DateTimePickerFormat.DateTime is not serialized at design time.

Complete

WJ-8765

Bug

Deleting all the items in a ListBox before the widget is created on the client causes an IndexOutOfRange exception

Complete

WJ-8764

Bug

TabMdiView shows the close button when Form.ShowClose is false

Complete

WJ-8763

Bug

Form.DisableMergedMenu is not visible to the designer serialization.

Complete

WJ-8762

Bug

TreeNodes don´t inherit the ForeColor from the TreeView (in the Themes)

Complete

WJ-8760

Bug

Menu separator in a MainMenu or MenuBar is missing from the themes and shows as a gray box

Complete

WJ-8758

Regression

MenuItem doesn't use the theme's TextColor.

Complete

WJ-8757

Enhancement

Added LowercaseUrl to default.json

Complete

WJ-8755

Bug

A new form that is created during validation of an input control does not gain the focus

Complete

WJ-8754

Enhancement

Add an option to only handle mousewheel events in a NumberControl when it has the focus

Complete

WJ-8752

Bug

PropertyGrid custom DropDownEditor height of the dropdown does not use the height of the custom control.

Complete

WJ-8751

Bug

Window z order issue when programmatically restoring minimized windows.

Complete

WJ-8748

Bug

ToolBar should show overflowing separators

Complete

WJ-8747

Enhancement

Added SplitButton.Orientation property to place the arrow below the text.

Complete

WJ-8746

Bug

SplitButton does not consider BackColor

Complete

WJ-8743

Enhancement

Ensure that maxWidth of MessageBoxes does not exceed the Browser.

Complete

WJ-8742

Enhancement

Add right click support for DayClick in FullCalendar

Complete

WJ-8741

Enhancement

Add watermark/placeholder to Combobox with DropDownList type

Complete

WJ-8740

Enhancement

Added support for custom rendering of ComboBox and ListBox item properties

Complete

WJ-8739

Regression

Error when adding a new item to a List/ComboBox and directly changing it.

Complete

WJ-8734

Enhancement

Update tooltip widget text while it is being shown

Complete

WJ-8733

Bug

Changing height of an invisible DGV row can make it visible

Complete

WJ-8731

Bug

Switching a theme removes Menu Items checked icon.

Complete

WJ-8722

Bug

Application.RightToLeft is overwritten by the CurrentCulture.

Complete

WJ-8721

Bug

IsCurrentCellInEditMode returns true in CellEndEdit event

Complete

WJ-8720

Regression

Setting DataGridView.CurrentCell to null or RowCount to 0 doesn't set the CurrentCellAddress to 0,0 instead of -1,-1.

Complete

WJ-8719

Bug

IE 10 and IE 11 lose controls inside DataGridViewCell

Complete

WJ-8718

Bug

Firefox latest version can raise an unsupported client warning in the console

Complete

WJ-8712

Bug

Using a UserComboBox custom editor in a DataGridView cell doesn't work.

Complete

WJ-8711

Enhancement

Set default of ToolBar.ShowTooltips property to TRUE

Complete

WJ-8710

Enhancement

Add RTL support to MessageBox buttons alignment and make it themeable.

Complete

WJ-8709

Bug

TextBox AutoComplete = FALSE can fail on Chrome

Complete

WJ-8708

Bug

Exception is thrown when closing a form while a DataGridView is in EditMode

Complete

WJ-8706

New Feature

Add Click event to StatusBarPanel

Complete

WJ-8703

Bug

Project template filename error on Web User Control

Complete

WJ-8699

Bug

ToolBarButton doesn't show tooltip

Complete

WJ-8690

Bug

On Window/Page with AcceptButon, pressing Enter should trigger Validation

Complete

WJ-8688

Bug

Clicking outside of a modal dialog disables keyboard events on the modal dialog.

Complete

WJ-8687

Bug

RTL Application.RightToLeft reset to false

Complete

WJ-8685

Bug

Deleting a parent DataGridViewRow doesn't delete the children.

Complete

WJ-8684

Bug

RTL - MenuBar always displays as RightToLeft

Complete

WJ-8683

Bug

RTL - MainMenu always displays as RightToLeft

Complete

WJ-8682

Bug

Setting DataGridView.RowCount to 0 or calling Rows.Clear() doesn't fire the RowRemoved event.

Complete

WJ-8677

Bug

RTL - ToolBar - designer error when adding menu do DropDownMenu button

Complete

WJ-8675

Enhancement

DoubleBuffered obsolete property is removed automatically at design time.

Complete

WJ-8674

Bug

ToolBar RightToLeft option doesn't show on designer property grid

Complete

WJ-8671

Enhancement

Added support for wrapped control at design time: DesktopItemControl, RibbonBarItemControl.

Complete

WJ-8669

Enhancement

DataGridViewColumn.ReadOnly now is NOT serialized at design time when inherited from the parent DataGridView (unlike winforms).

Complete

WJ-8668

Bug

ListView item labels wrap in Safari.

Complete

WJ-8667

Bug

Updated background-size for icons in themes to fix issues in older safari browsers.

Complete

WJ-8666

Bug

Updates to the TextBox or MaskedTextBox can fail while editing when there is an active timer.

Complete

WJ-8664

Bug

When using WebSockets and an exception is not handled while showing a Dialog can cause an application to hang

Complete

WJ-8663

Enhancement

Add ColumnHeader.BackColor and ColumnHeader.ForeColor to ListViews

Complete

WJ-8662

Regression

Sorting on a DataGridView column can fail if the bound list does not support sorting directly

Complete

WJ-8660

Enhancement

Added missing DataGridViewRow.ShowRowErrors property.

Complete

WJ-8659

Enhancement

Added DisableClientObjectModel to default.json.

Complete

WJ-8658

Bug

Custom css classes may clash with built-in css names

Complete

WJ-8657

Bug

Setting cell.ErrorText or cell.ToolTipText doesn't update the client until a data reload or a call to row.Update().

Complete

WJ-8656

Enhancement

Removed auto maximized for the SessionTimeoutForm when running on a phone.

Complete

WJ-8655

Enhancement

ReadOnly/Disabled controls now don't accept changes from the client: DataTimePicker, TextBox, CheckBox, RadioButton, ListBox, ComboBox, NumericUpDown, DomainUpDown, MonthCalendar.

Complete

WJ-8654

Bug

Bound DGV: error icons fail to update on cell edit

Complete

WJ-8652

Bug

When using SizeMode.AutoSize and Dock.Fill for a picture box the designer keeps refreshing it.

Complete

WJ-8651

Bug

When MessageBoxIcon.None is used AlertBoxes don´t show the progress bar.

Complete

WJ-8650

Bug

Anchored child Desktop doesn't resize correctly

Complete

WJ-8649

Enhancement

Add option for DialogBox / MessageBox to avoid being dragged outside the browsers view

Complete

WJ-8648

Enhancement

Added Desktop.TaskbarPosition.

Complete

WJ-8647

Bug

UserPopup may remain visible when there are multiple popups being shows in rapid sequence.

Complete

WJ-8646

Enhancement

Added the Form and SourceControl read-only properties to MenuItem to simplify retrieving the related control.

Complete

WJ-8645

Bug

Data bound ComboBox and ListBox cannot set SelectedIndex to -1 when FormattingEnabled is false. (this was by design in WinForms)

Complete

WJ-8644

Bug

TextUtils.MeasureText may cause a null reference exception when using a non-existent theme font.

Complete

WJ-8643

Bug

Setting DataGridView.Cursor doesn't work.

Complete

WJ-8642

Bug

Setting NumericUpDown.NullableValue to null doesn't clear the field on the client

Complete

WJ-8641

Enhancement

Added public DataGridView.NotifyCurrentCellDirty for custom editors to call when their value changes

Complete

WJ-8640

Bug

Setting e.Cancel = true in CellValidating may cause the SelectedRows and CurrentCell to be different

Complete

WJ-8639

Bug

DataGridView.IsCurrentCellDirty is not updated consistently

Complete

WJ-8638

Bug

Changes to e.CellStyle applied in CellFormatting when updating a cell value asynchronously are not sent to the client

Complete

WJ-8637

Enhancement

Changed Time.Interval default from 100 to 1000 ms.

Complete

WJ-8636

Bug

ComboBox doesn't fire SelectionChangeCommitted

Complete

WJ-8635

Bug

FlowLayoutEngine with FillWeight also considers non-visible children.

Complete

WJ-8634

Bug

UserPopup fires Load event after VisibleChanged event.

Complete

WJ-8633

Bug

Setting ReadOnly on a MaskedEdit Control does not work.

Complete

WJ-8632

Enhancement

Add Control.Appear and Control.Disappear lazy events to receive notifications after a control is rendered or hidden on the client.

Complete

WJ-8631

Enhancement

Add ColumnHeader.Control to show a custom control in the header.

Complete

WJ-8630

Bug

Setting DataGridViewCell.Control to null removed the Tag property instead.

Complete

WJ-8629

Bug

Setting ListView.MultiSelect to false doesn't change the SelectionMode to SelectionMode.One.

Complete

WJ-8628

Bug

AlertBox doesn't use the showProgressBar property in a theme.

Complete

WJ-8627

Bug

LicenseManager cannot recover an expired license on a downgrade.

Complete

WJ-8626

Enhancement

Add (optional) progress bar to AlertBoxes

Complete

WJ-8625

Bug

Inconsistency of default values for Listboxes MultiSelect and SelectionMode

Complete

WJ-8624

Bug

A textbox leave event is not fired when clicked on the containing page

Complete

WJ-8618

Bug

Styles changed in DataGridView CellFormatting event are not applied to the client when updated asynchronously (in a task).

Complete

WJ-8617

Bug

A disabled TourPanel step gets displayed if it´s the first step in the Tour

Complete

WJ-8615

Bug

TourPanel arrow does not move when switching from one menu step to another menu step

Complete

WJ-8614

Bug

TourPanel raises a not found exception for a combo box tool

Complete

WJ-8610

Bug

Inserting a child row in a collapsed parent row shows the child row when it should be hidden.

Complete

WJ-8609

Bug

Inserting a child row may cause the following child row to be rendered blank until a refresh

Complete

WJ-8607

Bug

Tabbing in a UserPopup is not consistent

Complete

WJ-8606

Bug

TableLayoutPanel rows editor and columns editor don't update the RowCount or ColumnCount

Complete

WJ-8605

Bug

DataGridView doesn't show errors from IDataErrorInfo

Complete

WJ-8604

Bug

DataGridView doesn't show error icon on row headers due to a missing theme key

Complete

WJ-8603

Bug

TreeNodeCollection editor doesn´t show TreeNode subclasses

Complete

WJ-8601

Enhancement

Enhanced UserPopup to be a focus root: tabs wrap within the popup

Complete

WJ-8600

Bug

Clicking on a control in a column header passes the event also to the header

Complete

WJ-8599

Regression

Controls in DataGridView cells are lost when scrolling out

Complete

WJ-8598

Bug

BindingSource.EndEdit creates an extra row in the bound DataGridView

Complete

WJ-8597

Bug

Controls bound to a ListViewItem in detail view or DataGridView cell can raise an error when disposed by the GC

Complete

WJ-8596

Bug

CellStyle of a DateTimePicker column in a DataGridView is not serialized correctly

Complete

WJ-8593

Bug

Shadow of alert boxes is truncated.

Complete

WJ-8592

Bug

Maximized windows should not enforce the max width/height.

Complete

WJ-8591

Bug

Menu overflow issues

Complete

WJ-8590

Bug

GroupBox tooltip shows for the body of the GroupBox, should show for the legend only

Complete

WJ-8589

Enhancement

Add "EditOnEnter" to Property Grid (defaults to true)

Complete

WJ-8588

Enhancement

Add "RowHeadersVisible" to Property Grid to show/hide the row headers

Complete

WJ-8586

Bug

DragDrop of custom image only works with image sources (string) and not with image objects.

Complete

WJ-8585

Bug

Wrong icon in Vista-2 theme for DataGridViewColumn.HeaderIcon

Complete

WJ-8582

Regression

Controls with TabStop=false are focused by the browser

Complete

WJ-8581

Bug

Dragging external files may cause an error when the coordinates are subpixel values

Complete

WJ-8580

Bug

Changing the order of toolstrip menu items with the designer does not work

Complete

WJ-8578

Bug

Controls docked in a UserPanel are 1px too wide/tall when the UserPanel has a border.

Complete

WJ-8577

Enhancement

Allow the assignment of DataGridViewRow.HeaderCell to DataGridView.CurrentCell.

Complete

WJ-8576

Bug

Bound listbox and combobox items are not updated when the corresponding datasource element changes

Complete

WJ-8485

Enhancement

Enhance ListView to allow to add panels

Complete

WJ-8477

Bug

Listview items with pictures and text show without text on Safari

Complete

WJ-7365

Enhancement

ChartJS add support for time scales

Complete

 

There is a new option in Default.json “dropDuplicateClicks”, the default is false. When set to true, Wisej will drop all “execute” client events while there is a pending request. The “execute” events generate Click events on the server and are usually related to the execution of business logic. This option minimizes that users keep clicking a button and cause the multiple execution of the same action. All other pointer events are still queued and executed.

 New Features

Added new events Appear and Disappear. Appear is fired when the control has been fully rendered on the client. Disappear is fired when the control is no longer visible on the client.

Added DataGridViewColumn.HeaderImage and DataGridViewColumn.HeaderImagesource.

Added support for ColumnHeader.Image, ImageSource, ImageIndex and ImageKey.

Added the Control, RowSpan and ColSpan properties to Wisej.Web.ListViewItem and Wisej.Web.ListViewItem.ListViewSubItem to let an item span across multiple cells and display an embedded control when the listview is in Details mode.

Added the ReadOnly property and ReadOnlyChanged event to Wisej.Web.Checkbox, Wisej.Web.Radiobutton, Wisej.Web.DateTimePicker, Wisej.Web.UpDownBase (NumericUpDown and DomainUpDown), Wisej.Web.ListControl (ComboBox and ListBox), and Wisej.Web.MonthCalendar. Added the Editable property and EditableChanged event to Wisej.Web.DateTimePicker, and Wisej.Web.UpDownBase (NumericUpDown and DomainUpDown).

Added a new Wisej.Web.LinkMenuItem component that renders menu items as links with the HRef and Target properties.

Added support for the ForeColor property to the Wisej.Web.MenuItem component.

Added the possibility to change the Drag & Drop image using one of new the Control.DoDragDrop() overloads.

Enhanced file drop uploading support and added the Abort() method to the Wisej.Web.Upload control.

Enhanced the Wisej.Core.DynamicObject class to support the usage of JSON strings as data sources for data binding.

The Wisej.Web.Desktop component now supports a collection of Wisej.Web.DesktopTaskBarItem that can be positioned to the left of the right of the Window Icons bar. The Wisej.Web.DesktopTaskBarItem class can be extended to create new taskbar items. The Wisej.Web.DesktopDateTimeTaskBarItem is a specialized item that displays the current date and time in the browser’s locale. The Wisej.Web.DesktopTaskBarItemControl wraps any control to be used in the DesktopTaskBar.

 Wisej.Web.DataGridViewRow has a set of new properties and methods to support hierarchical rows: ParentRow, IsParent, ChildRows, IsExpanded, Expand(), Collapse(), ExpandAll(), CollapseAll(). The Wisej.Web.DataGridView control has the new events RowExpanding and RowCollapsing. See http://wisej.com/docs/html/Properties_T_Wisej_Web_DataGridViewRow.htm for more information.

 

Breaking Changes

 

We added a new optional parameter keepOnScreen:true to MessageBox.Show that might force you to recompile your sources when using the latest Wisej dlls.

DataGridViewColumn.ReadOnly now is NOT serialized at design time when inherited from the parent DataGridView (This is different from WinForms behavior).

When the property Wisej.Web.UpDownBase.ReadOnly is set to true, the value of the control cannot be changed either by keyboard or pointer. To make the editable part not editable while retaining the possibility to change the value use the new Wisej.Web.UpDownBase.Editable property.

With the fix of WJ-8528 code that toggles the Pushed property manually to work around the problem will now fail.

The properties Image, ImageSource, ImageAlignment and ImageLayout of the DataGridViewImageColumn class have been renamed to CellImage, CellImageSource, CellImageAlignment and CellImageLayout since they refer to the cells in the column.

Changed int[] data in ChartJs to object[] data to support heterogenous dat values and time series.

 

Known Issues

The PropertyGrid doesn’t implement the standard Collection editor, Padding editor, Color editor, Font editor.

Column and Row auto resizing in the DataGridView and ListView are not functional yet.

The DataGridView supports full row selection only at the moment. It will support column and cell selection modes in one of the next updates.

WJ-7742: The ListView.ItemSize property sets the overall size of the items while it should set the size of the label part and let the widget adapt the overall size according to the icon size.

WJ-7743: ListView.ItemDrag is not currently supported. 

WJ-7268: Button control fail to initiate drag & drop even when AllowDrag is true.