Hi Roni,
thanks for raising that question. We fully understand your concerns.
However we are in business since 1998, fully focused on WiseJ, also because of our very large migration projects based on that technology.
Additionally we offer several kind of “safety layers” including an option to buy the source code for a one time fee or
to buy into an escrow service.
Find more information on our product page: https://wisej.com/products/
or in various related discussion topics:
https://wisej.com/support/question/cto
https://wisej.com/support/question/wisej-future
I hope this answers your question. Please contact us any time for more details or any additional question.
Best regards
Frank
Hi Adrian,
the bug was logged as WJ-8130 and is fixed in the latest release (1.3.43)
Best regards
Frank
Hi Adrian,
WJ-8128 is also fixed in the latest release (1.3.43).
Best regards
Frank
Hi Adrian,
WJ-8129 is now also fixed in Wisej build 1.3.43.
Best regards
Frank
Hi Adil,
the bug (WJ-8117) is fixed in our latest release (1.3.43).
Best regards
Frank
The ValueMember is the name of the property in the data source that provides the value for the items.
The DisplayMember is the name of the property in the data source that provides the value used to dispay the items.
If you use “IsChecked” as the name of the ValueMember and your data source has a property IsChecked, it will simply bind the value to that property. It is not related to the checked state of an item. Items do not have a checked state since their type is entirely up to your application. That’s the standard implementation in WinForms.
There would have to be a third binding property, something like CheckStateMember. It can be an enhancement for when we add binding to the ListView and possibly the TreeView.
One way to do this would be override RefreshItems() and in there loop over the items:
for (int i = 0; i < this.Items.Count; i++)
{
this.SetItemChecked(i, ((dynamic)this.Items[i]).Checked);
}
It obviously depends on your binding source and your classes in the app.
HTH
Best,
Luca
Very interesting. I’ll take a look into DuoCode for sure.
The Canvas control has a LiveUpdate property, when set to true, all canvas calls are pushed to the client. Otherwise it collects the calls into a list and sends them back when the canvas widget “asks” for an update. Usually when the widget asks for a set of records we use http because we can match request/response and process the incoming data.
So the trade off in the Canvas control is to either update the widget on each canvas instructions, or updated it all at once at the end of the processing cycle.
Try also the BackgroundTasks example . It uses 3 Canvas controls to draw the lines as they are sorted in background tasks.
/Luca
Hi Luca,
I have now run “IsWebSocket” on a button press rather than in the Load and is it returning True.
I have incorporated the ProgressCircle example code and that is another interesting method, so thanks for mentioning that. Just one question, should the canvas updates come via web-sockets now that it appears that web-sockets are enabled? It appears to be updating via post-backs.
We have in the past developed full javascript client-side “controls” using DuoCode (http://duoco.de/) and I’m thinking that there may be a synergy here in that the drawing code (control) could be developed in DuoCode and somehow integrated with WiseJ. With the data structures simply passed from the server.
Thanks for your help so far, I will continue to experiment.
Mark
Hi Markus, here is the quick update:
The stumbling block now is finishing the PropertyGrid which is quite a complex thing since it has to tie in the System.ComponentModel system. The RibbonBar is needed also in some of our projects and development will speed up soon by the developers at fecher.eu.
Best,
Luca
Hi Mark,
If you check IsWebSocket when the application is loaded in Program.Main() it will always be false since the first load is always http and the protocol hasn’t switched yet. You can check Application.Browser.Features.webSocket to see if the client supports it. In subsequent requests Application.IsWebSocket will return true.
However, not all requests coming in from Wisej are always websocket. Data requests from paged/cached data stores (datagrid, listview, fullcalendar, …) are all http requests. All image resources and postbacks are http requests since they are managed by the browser. And the UserPaint technique is simply an image request so while processing the Paint event you will always have IsWebSocket = false.
I don’t know what kind of update speed you need. User paint may not be the right approach. Wisej also supports canvas (HTML5) drawing (see the ProgressCircle extension. You can also try the Wisej.Web.Canvas control. It’s different from user painting, it uses a canvas element on the client and sends actual drawing instructions to the client.
Depending on the complexity of the chart you have created, a third option would be to write client side html canvas or svg drawing and get the data from wisej, as I did in the smoothie example (the data is coming from the server). As Thomas suggested, there are many javascript libraries that could help with the low level svg or canvas drawing, animation, zooming, etc. Wisej can turn any of those into a server side component.
HTH
Best,
Luca
Hi Thomas/Luca,
With regards to the required update frequency, yes the demo at:
http://demo.wisej.com/smoothie
Is pretty much the type of frequency required, however maybe slightly less than that as most the updates occur because of a mouse drag operation or a mouse zoom in/out operation.
I have tried to build a simple test project to see how fast the WiseJ control paint initiated drawing code operates (over web-sockets). I am running the project under IIS on Windows 10 (although was built using Visual Studio 2017 on Windows 7) and no matter what I try I can’t get the ‘Application.IsWebSocket’ property to become TRUE and the updates are falling-back to using standard HTTP.
Can you give me any other ideas what to try?
Regards
Mark
Hi Adrian,
This is how it works in Wisej with SVG image and icons:
If you set the ForeColor of a PictureBox or a Button or any widget with an SVG icon, Wisej will change the #000000 fill of monochrome SVG to match the color. If you don’t explicitly set the color, Wisej uses the theme color in effect for that widget or the general icon color set in the theme.
See this example:
http://demo.wisej.com/svgcolor
I also attached the source. Pick a color from the combo and it changes only for the monochrome sgv. Reset it to empty and it will pick the theme’s color.
HTH
Best,
Luca
Thanks for the update. Hopefully we won’t break it again…
Hi,
I have update at the 1.3.42 development release and this problems are solved
thanks
Cristian
Try this 🙂
http://demo.wisej.com/smoothie
I added the Audio control and set it to “http://www.zedge.net/d2w/4/1331474/998028275/view/?mp3”.
If you make the Audio control not visible, add this.audio.CreateControl() when the page or window is loaded because Wisej doesn’t render controls that have not been made visible at least once (will add a an enhancement to always create the Audio control also when not visible).
Thank for the help.
I am trying to play a sound just once, it is an audible notification so to speak.
Dim x As New Wisej.Web.Audio
x.SourceURL = “/Tone.mp3”
x.Play()
I tried the above code but I don’t hear anything, so I am assuming I am doing something wrong.
Could you lead me in the right direction?
Thanks
Turns out it’s a regression when we went from justgage.1.0.1 to 1.2.2 which added a new property “relativeGaugeSize”. Logged as WJ-8129.
It’s under “My Project” but VS hides for VB.NET projects. Select “My Project” then click “Show All Files” on the toolbar above the solution explorer.
The attribute “‘ <Assembly: WisejResources(ExcludeList: “”)>” is already there commented out.
Another way to add a js file, it to simply add it to Default.html. The difference is that when it’s embedded you don’t have to deploy the js file. When it’s linked in the html page you have to deploy it as you’d do with an asp app.
It’s a bug in Wisej. It uses the locale of the application to serialize the rgba value instead of using the InvariantCulture. The same error shows in firefox for me when adding ?lang=de. When the culture is set to “auto”, wisej reads the value of “navigator.language || navigator.browserLanguage || navigator.systemLanguage || navigator.userLanguage”. If the browser doesn’t set one of those, then Wisej uses the server’s locale.
Logged as: WJ-8128.
Hi,
could you please give us a short update on the roadmap and what is planned for the next releases?
Especially the ribbonbar would be a great deal for us as this is one thing that prevents us from migrating completely at the moment.
Thanks in advance.
