All Answers

0 votes

This reports concerns the Parent property of Forms. I was under the impression that Windows Forms fills the Parent property of Forms. I just checked and it doesn’t. So Wisej behaves like it should.

  • Tiago Freitas Leal answered May 31, 2016 - 4:38 pm
  • last active May 31, 2016 - 4:39 pm
0 votes

If VS doesn’t break at the exception it probably means it’s not attached to the IIS instance in debug mode. When the “break on throw” option is on you should get a bunch of exception on startup:

A first chance exception of type 'System.UnauthorizedAccessException' occurred in mscorlib.dll
Additional information: Access to the path 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\~AspAccessCheck_643d3c3211712.tmp' is denied.

Enabling the JavaScript break works only if you are debugging using IE and have enabled “Script” in Debug->Attach to Process. However, VS cannot debug both .NET and Script.

Can you send the test case?

  • Luca answered May 31, 2016 - 4:05 pm
0 votes

Hi Luca,

Thanks for this new (to me) feature of Visual Studio, I had never seen that before!

Unfortunately, checking the CLR exceptions (in fact I also checked the Javascript exceptions later) did not make any difference. I keep getting in the browser  the attached as image. When I click either od the two buttons (the OK and the smaller empty one) I go to a blank browser….

Actually I cannot attach it, I get a “forbidden” error… Oh, well … It looks something like

Application Error                                                                              small Empty button
Object reference not set to an instance of an object.
OK button

 

Best regards,

Alex

 

  • Alex Prinias answered May 31, 2016 - 3:37 pm
0 votes

Hi Tiago, the Parent property on a child control? I can’t reproduce, I always get the parent. Can you give steps?

  • Luca answered May 31, 2016 - 3:11 pm
0 votes

Thanks, it’s logged as WJ-7299.

  • Luca answered May 31, 2016 - 3:07 pm
0 votes

Thanks. Bad regression caused by an internal optimization that escaped. WJ-7298, will be fixed today.

  • Luca answered May 31, 2016 - 3:03 pm
0 votes
In reply to: Images on buttons?

Hi Nic,

There is an issue with the size of the SVG images. All icons in our themes are vectorial – we use 1) http://fontawesome.io/ 2) https://icons8.com/ and 3) https://design.google.com/icons/; the number 1,2,3 is the number used next to the theme name.

SVG icons usually have a natural size that is quite large. Unless the html element forces a particular size, the element in the browser uses the original SVG size. When you set the ImageSource to a theme SVG image you probably see the empty top left corner.

You can verify this by:

  • Add an ImageList to the form.
  • Assign it to the button.
  • From now on, the icon on the button will use the image size set on the image list.

This is issue WJ-7297. We have to add a default size for components’ icon in the themes. Each icon library has a different ratio.

Best,

Luca

 

  • Luca answered May 31, 2016 - 2:45 pm
0 votes

Hi Alex,

To  make VS break when the exception is thrown:

  • VS2015 – Debug->Windows->Exception settings. Check the “Common Language Runtime Exceptions”. You will start getting breaks whenever handled and unhandled exceptions occur. You can enable only the NullObjectException if you want to. In a web app all exceptions are handled to be able to give feedback to the browser.
  • VS2013 – Debug->Exceptions. Same as VS2015

 

The settings are saved with the project user settings.

Best,

Luca

  • Luca answered May 31, 2016 - 2:34 pm
0 votes

Hi Tiago,

and this is logged as WJ-7296 including your sample implementation.

We´ll keep you updated on the status of your issues.

Thanks a lot for your input.

Best regards
Frank

0 votes

Hi Tiago,

this is logged as WJ-7295.

Thank you,
Frank

0 votes

Thanks Tiago,

I have logged WJ-7294 for that issue.

Best regards
Frank

0 votes
In reply to: Various missing stuff

Hi Tiago,

The six months beta was a safe time period, because of the sudden acceleration forced by the reddo/gizmox shutdown. I’m very hopeful that we’ll be able to wrap up RC1 by September/October.

Drag&drop in wisej works the same as in winforms and it’s quite easy to use. The only additional property we have is AllowDrag. Other than that, all effects and events work the same. We can even handle external drops. The external drags (dragging out of the browser) is disabled for now since it’s very specific to chrome.

About binding, we can make any property bindable just by adding the [Bindable] attribute. It becomes a bit more complicated when it’s a complex set of objects (like a row in a datagrid). To make the menu bindable I’d need to understand the actual functionality. If you send me a test/example app and a description of how you would like to data bind the menu I will certainly do my best to add it.

Best,

Luca

  • Luca answered May 28, 2016 - 12:25 am
0 votes
In reply to: Window vs Page vs Form

In terms of top level controls we have:

  • Page. Which, as you wrote, covers the entire browser. There can be only one active page at a time. You can create as many pages as you like, but obviously only one can be visible. You can switch (navigate, in a way) by using Application.MainPage = page1. Or by calling Show() on the page, which will also change Application.MainPage. Switching pages gives a very nice navigation impression (we could add animations in the future).
  • Form. Which is what I call Window sometimes. I wanted to call the class Window originally. A Form (or window) will always show in front of a Page.
  • Desktop. The desktop control is similar to a  page. There can be only one active. You can show a desktop using Application.Desktop = desktop1. A desktop, when present, manages (minimize, thumbnails) all the forms. A desktop can be a child of a page but not of a form. A page can be designed in a way that it has desktop within, which can host the forms. When you switch a desktop, all the forms are automatically transferred to the new desktop.

The fourth control that can be designed is the UserControl. All it means is that it’s a design surface. Otherwise any control can have child controls.

We’ll add a fifth “designable” control as an extension: PopupControl. It will have a design surface, like the UserControl, and new properties to let you “hook” it to another control. So basically the PopupControl will allow you to add a ComboBox-like dropdown panel to anything.

 

HTH

Best,

Luca

 

  • Luca answered May 28, 2016 - 12:17 am
0 votes
In reply to: Various missing stuff

Thanks for your thorough explanations Luca.

I don’t know very much about the inner workings of Wisej. I suppose that’s what you mean by “Wisej core”. All I can say is that all the issues I saw or read about, are UI/behavioural issues. You guys solved those issues very quickly. I doubt you could solve them so easily if they were due to some flaws on the underlying core.

A few days ago I was telling someone I don’t understand why you need 6 months for beta tests, since I can see a very fast progress and I get the feeling that Wisej is almost ready for production. This discussion shed some light on how much needs to be done before going into production.

This discussion also resulted in some strong statements about the goals and directions of Wisej: it’s the first time I read loud and clear that Wisej goal is  – and allow me to repeat – “to be as close as possible to winforms for the standard functionality without replicating the obsolete properties and features and to add a lot of new web-html5 features as integrated and seamless as possible”. This means that where VWG diverges from Windows Forms, Wisej will stick to the Windows Forms base line and doesn’t commit to reproduce VWG innovations. I don’t say this as a criticism; I think it’s important to know where we are heading and I don’t necessarily agree with or need VWG innovations.

So, besides the core Windows Forms controls, there are a lot of extra features coming our way: real time web applications using WebSockets, rich variety of open source extensions, small but very very useful features like easily dropping files on any Wisej control and others we we will discover in the next few months.

Some final comments:

  1. Drag&Drop is implemented differently on Windows Forms and Visual WebGUI. According to Gizmox, the differences are due to web/browser nature. I hope Wisej will solve any issue the most Windows Forms compatible way.
  2. As I wrote in another thread, concerning the ToolStrip component and other components that don’t inherit from Control, while you are at the feature design stage, I think it would be quite interesting to improve over Windows Forms and make those components bindable (implement IBindableComponent).
  • Tiago Freitas Leal answered May 27, 2016 - 10:25 pm
  • last active May 27, 2016 - 10:38 pm
0 votes
In reply to: Various missing stuff

Hi Luca,

First of all thank you very much for your detailed and long reply, I appreciate you take so much time to reply, while you are, obviously, very busy with other stuff.

You are right about ToolStrip and MonthCalendar being listed in the still missing controls, I had just missed this list in the beta info page. As I said, I tried a conversion of a VWG project, so whatever I had there I tried to convert to Wisej. Even the still missing ones!

I understand the general approach, i.e. keeping the framework close to winforms. Unfortunately, I have never been a WinForm programmer, I moved directly from VB6 to VWG, so my “knowledge” of WinForms comes from VWG and sometimes I assume (wrongly) that what was present in VWG is also present in WinForms.

So, I will try to continue with the items available in the Toolbox! Although I never liked the …Designer.cs files, I think too much is going on there which we do not control, and I prefer to construct my page in the constructor code.

Grazie!

Alex

  • Alex Prinias answered May 27, 2016 - 5:01 pm
0 votes

Thanks Luca,

Given what you have said its probably because my development machine is still windows 7 so no websocket support. I’ll get on and build a new development machine on Windows 10 and see what happens.

Thanks again

Nic

  • Nic Adams answered May 27, 2016 - 4:43 pm
0 votes

And make sure you don’t have

<httpProtocol allowKeepAlive=“true” />

In Web.config, as it was erroneously suggested to add it by me…

  • Luca answered May 27, 2016 - 4:18 pm
1 vote

Hi Alex,

You gave me lots of stuff to write. 🙂  Sorry for the long reply, but these are important questions.

General approach:

We tried to be as close as possible to winforms for the standard functionality without replicating the obsolete
properties and features and to add a lot of new web-html5 features as integrated and seamless as possible.

Confession – just between us:

As I wrote to some beta subscribers with knowledge of VWG privately, we were not ready to start the beta and needed 1 or 2 more months. We had to speed it up because if Reddo/Gizmox rush shutdown that was sent out to everyone, including our customers.  Having said that, I’m actually very happy that we did since Wisej core has been more than ready and solid for a long time (it has been about 1.5 years of development so far – mostly on the core engine).
1. Form.ShowPopup is missing, although there is a FormShowType.AsPopup in the enumeration

We don’t have the FormShowType enumeration? ShowPopup was something added by gizmox to handle popups like the combo dropdown and it’s not compatible with a form in my view.

A “popup” in Wisej/qooxdoo is a panel that can “anchor” itself to another control with different rules and may or may not automatically close when losing the focus. See the HelpTip component as an example. It would probably make a good extension to add a Popup designable container that exposes all this functionality, which is already built-in the javascript widget library.

Please let me know if this is what you meant. I will add the Popup control to the extensions list nevertheless but I may need some input as the functionality from you.
2. How is DataGridView paging handled? How do we calculate items per page?

Our datagrid is fully virtual. There is no paging. The internal rendering code only creates the dom elements that are visible, making it very fast and not clogging the browser. The data store component fetches, caches, discards pages dynamically as you scroll. We tested the widget with 10M rows without any loss of performance.

Paging is a source of problems to: a) fill the page when the grid is resized, b) page the pager…, c) update the pager when the size of the page changes because of a resize, d) and you still need to scroll the rows even when paging. In many cases you end up with an half empty page while there are more rows in the next page.

You can see the rows using F12 in chrome and see that only the visible portion is actually creates in the dom. The requests for data as async using http(s) and compressed. The server side only returns the portion of data requested and only the styles and data that is actually present/changed.

Incidentally, the same data store is used for the ListBox (not the ComboBox), allowing it to handle unlimited items.

3. In Treeview DragDrop there is nothing like GetNode(x, y)

I have to look into the full drag drop implementation of the treeview. It should/will behave like winforms.

4. In Treeview there is no toggling for checkbox visibility at node level

We can add it, it’s present in the client side. The TreeNode on Wisej can actually show 3 icons: open/close, checkbox, state.

5. MonthCalendar is missing a Value or Date property

MonthCalendar is not fully implemented. It should show in the toolbox, probably a mistake.

6. There is no ContextMenu.Hide method

Context menus don’t have the hide method since once shown they have the focus and anything that changes that, or a selection, will close the context menu. The only way to call Hide() would be from a different thread but I don’t see why. In any case, we can add it if needed.

7. No Separator item for contextmenu (and for menu for that matter)

The separator is a MenuItem with text = “-“. Should work, I hope, will test again.

8. LinkLabel has no Url property

The LinkLabel doesn’t navigate to a URL. For that you can use any label or text with <a> in it. The LinkLabel functionality is similar to winforms LinkLabel, where either the whole text or a portion of the text is a link and it triggers the LinkClicked event carrying the text that was clicked. This way the app can handle links even though it’s not navigating anywhere, being a single page app, giving the impression of navigation. The app could handle to LinkClicked calling Application.Navigate() and navigate to a different URL if needed. If the text in LinkLabel has multiple links (multiple <a> defined
in the Text – not using LinkArea) then LinkClicked will specify the actual clicked text.

9. There is no ToolStrip control (there is a ToolStripItemDisplayStyle enumeration)

Yep, the ToolStrip system is not implemented (should be listed in the beta info page). It’s a large subsystem of components that we will implement fully and with new web specific functionality. I’m not sure it will be in the first release though. There are several enumerations that are not used, we didn’t clean up the code for unused stuff yet, until we draw a final line on what will make it the first release.

Thank you for the feedback!

Best,

Luca

  • Luca answered May 27, 2016 - 4:13 pm
0 votes
In reply to: Beta Updates

Hi Markus,

I see your point. However during the beta phase we are updating the build several times, mainly to gather testers/bug reporters feedback
before we set open issues to “Complete”.

Then we post a list of issues together with an announcement of a new build.

Of course this will change once we are in “official release mode”. Then we´re going to separate into development/internal builds
and production builds.

Best regards
Frank

0 votes
In reply to: Various missing stuff

Also

  1. LinkLabel has no Url property
  2. There is no ToolStrip control (there is a ToolStripItemDisplayStyle enumeration)

Best regards,

Alex

  • Alex Prinias answered May 27, 2016 - 11:53 am
Showing 11221 - 11240 of 11k results