Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Wisej.Core.LoadConfigurationEventArgs
Wisej.Core.LoadConfigurationEventHandler
Wisej.Core.PlatformProvider
Wisej.Web.LicenseErrorEventArgs
Wisej.Web.JavaScript ClientEvent
Wisej.Web.RotateEventArgs
Wisej.Web.SwipeAxis
Public Class LoadConfigurationEventArgs
Inherits EventArgspublic class LoadConfigurationEventArgs : EventArgsPublic Delegate Sub LoadConfigurationEventHandler(ByVal sender As [Object], ByVal args As LoadConfigurationEventArgs)public delegate void LoadConfigurationEventHandler(Object sender, LoadConfigurationEventArgs args)Public Enum PlatformProvider As [Enum]public enum PlatformProvider : EnumPublic Class LicenseErrorEventArgs
Inherits EventArgspublic class LicenseErrorEventArgs : EventArgsPublic Class RotateEventArgs
Inherits EventArgspublic class RotateEventArgs : EventArgsPublic Enum SwipeAxis As [Enum]public enum SwipeAxis : EnumPublic Class ClientEventpublic class ClientEventWisej.Web.ResponsiveProfileChangedEventHandler
Wisej.Web.ResponsiveProfileChangedEventHandler
Wisej.Core.ClientProfile
Wisej.Web.SwipeEventHandler
Wisej.Web.KeyPressEventArgs
Wisej.Web.TrackEventHandler
Wisej.Web.WidgetEventArgs
Wisej.Web.QueryContinueDragEventArgs
Wisej.Web.FileDialogLoadPathEventHandler
Wisej.Web.MenuButtonItemClickedEventArgs
Wisej.Web.ColorDialog
Wisej.Web.TrackEventArgs
Wisej.Web.TouchEventHandler
Wisej.Web.QueryContinueDragEventHandler
Wisej.Web.PaintEventHandler
Wisej.Web.SwipeEventArgs
Wisej.Web.PreviewKeyDownEventHandler
Wisej.Web.MenuButtonItemClickedEventHandler
Wisej.Web.FileDialogRootCollection
Public Class ClientProfilepublic class ClientProfilePublic Delegate Sub SwipeEventHandler(ByVal sender As [Object], ByVal e As SwipeEventArgs)public delegate void SwipeEventHandler(Object sender, SwipeEventArgs e)Public Class KeyPressEventArgs
Inherits EventArgspublic class KeyPressEventArgs : EventArgsPublic Delegate Sub TrackEventHandler(ByVal sender As [Object], ByVal e As TrackEventArgs)public delegate void TrackEventHandler(Object sender, TrackEventArgs e)Public Class WidgetEventArgs
Inherits EventArgspublic class WidgetEventArgs : EventArgsPublic Class QueryContinueDragEventArgs
Inherits EventArgspublic class QueryContinueDragEventArgs : EventArgsPublic Delegate Sub FileDialogLoadPathEventHandler(ByVal sender As [Object], ByVal e As FileDialogLoadPathEventArgs)public delegate void FileDialogLoadPathEventHandler(Object sender, FileDialogLoadPathEventArgs e)Public Class MenuButtonItemClickedEventArgs
Inherits EventArgspublic class MenuButtonItemClickedEventArgs : EventArgspublic class ColorDialog : CommonDialogPublic Class ColorDialog
Inherits CommonDialogPublic Class TrackEventArgs
Inherits EventArgspublic class TrackEventArgs : EventArgsPublic Delegate Sub TouchEventHandler(ByVal sender As [Object], ByVal e As TouchEventArgs)public delegate void TouchEventHandler(Object sender, TouchEventArgs e)Public Delegate Sub QueryContinueDragEventHandler(ByVal sender As [Object], ByVal e As QueryContinueDragEventArgs)public delegate void QueryContinueDragEventHandler(Object sender, QueryContinueDragEventArgs e)Public Delegate Sub PaintEventHandler(ByVal sender As [Object], ByVal e As PaintEventArgs)public delegate void PaintEventHandler(Object sender, PaintEventArgs e)Public Class SwipeEventArgs
Inherits EventArgspublic class SwipeEventArgs : EventArgsPublic Delegate Sub PreviewKeyDownEventHandler(ByVal sender As [Object], ByVal e As PreviewKeyDownEventArgs)public delegate void PreviewKeyDownEventHandler(Object sender, PreviewKeyDownEventArgs e)Public Delegate Sub MenuButtonItemClickedEventHandler(ByVal sender As [Object], ByVal e As MenuButtonItemClickedEventArgs)public delegate void MenuButtonItemClickedEventHandler(Object sender, MenuButtonItemClickedEventArgs e)Public Class FileDialogRootCollection
Inherits List(Of )public class FileDialogRootCollection : List<>Wisej.Web.KeyEventArgs
Wisej.Web.MouseEventHandler
Wisej.Web.FileDialogUI
Wisej.Web.SplitButton
Public Class KeyEventArgs
Inherits EventArgspublic class KeyEventArgs : EventArgsPublic Delegate Sub MouseEventHandler(ByVal sender As [Object], ByVal e As MouseEventArgs)public delegate void MouseEventHandler(Object sender, MouseEventArgs e)public class FileDialogUI : FormPublic Class FileDialogUI
Inherits Formpublic class SplitButton : ButtonPublic Class SplitButton
Inherits ButtonWisej.Web.FolderBrowserDialogUI
Wisej.Web.JavaScript ClientEventCollection
Wisej.Web.OpenFileDialog
Wisej.Core.ClientPlatform
Public Class FolderBrowserDialogUI
Inherits Formpublic class FolderBrowserDialogUI : FormPublic Class ClientEventCollection
Inherits IList
Implements ICollection, IEnumerable, IList(Of ClientEvent), ICollection(Of ClientEvent), IEnumerable(Of ClientEvent)public class ClientEventCollection : IList, ICollection, IEnumerable, IList<ClientEvent>, ICollection<ClientEvent>, IEnumerable<ClientEvent>public class OpenFileDialog : FileDialogPublic Class OpenFileDialog
Inherits FileDialogPublic Class ClientPlatformpublic class ClientPlatformWisej.Web.FolderBrowserDialog
Wisej.Web.RadioButton
Wisej.Web.Button
Wisej.Web.SaveFileDialog
Wisej.Web.AccordionPanel
public class RadioButton : ButtonBase, IReadOnlyPublic Class RadioButton
Inherits ButtonBase
Implements IReadOnlypublic class Button : ButtonBase, IButtonControl,Public Class Button
Inherits ButtonBase
Implements IButtonControl, ICommandSourcepublic class SaveFileDialog : FileDialogPublic Class SaveFileDialog
Inherits FileDialogpublic class AccordionPanel : PanelPublic Class AccordionPanel
Inherits Panel<script>
Wisej.userData = {
value1: 100,
someName: "test"
};
</script>
int value1 = Application.Browser.UserData.value1;
string value2 = Application.Browser.UserData.someName;
Public Class FolderBrowserDialog
Inherits CommonDialogpublic class FolderBrowserDialog : CommonDialogWisej.Web.ButtonBase
Wisej.Web.CheckBox
Wisej.Web.Component
Public Class ButtonBase
Inherits Control
Implements IImagepublic class ButtonBase : Control, IImagePublic Class CheckBox
Inherits ButtonBase
Implements IReadOnlypublic class CheckBox : ButtonBase, IReadOnlypublic class Component : Component, IComponentPublic Class Component
Inherits Component
Implements IComponentWisej.Web.Padding
Wisej.Web.ContainerControl
Public Structure Padding
Implements ValueType, IWisejSerializablepublic struct Padding : ValueType, IWisejSerializablepublic class ContainerControl : ScrollableControl, IContainerControl,Public Class ContainerControl
Inherits ScrollableControl
Implements IContainerControl, IContainerControlWisej.Core.Configuration
Public Class Configurationpublic class Configuration <script>
Wisej.onExit = function() {
// this is the default implementation
// when AutoReload is set to true.
location.reload();
}
</script>[assembly: PreApplicationStartMethod(typeof(ApplicationNameSpace.HttpModuleStartup), "Start")]
namespace ApplicationNameSpace
{
public static class HttpModuleStartup
{
public static void Start()
{
Wisej.Core.Configuration.LoadConfiguration += (s, e) =>
{
// load json from a file, or build a json object.
// you can also implement your own caching mechanism here.
e.SuppressCache = true;
return new Wisej.Core.Configuration(new
{
url = "Default.html",
theme = "bootstrap-4",
startup = "ApplicationNameSpace.Program.Main, Application"
}.ToJSON());
}
}
}
}Wisej.Web.FileDialog
Public Class FileDialog
Inherits CommonDialogpublic class FileDialog : CommonDialogWisej.Web.Control ControlCollection
public class ControlCollection : ControlCollection, IList<Public Class ControlCollection
Inherits ControlCollection
Implements IList(Of Control), ICollection(Of Control), IEnumerable(Of Control), IWisejSynchronizedWisej.Web.Clipboard
Wisej.Web.Accordion
Public Class Clipboardpublic class Clipboardpublic class Accordion : Control, ISupportInitializePublic Class Accordion
Inherits Control
Implements ISupportInitializeWisej.Core.ClientTheme
public class ClientTheme : IWisejSerializablePublic Class ClientTheme
Inherits IWisejSerializable// create a new custom theme cloned from the current theme.
var myTheme1 = new ClientTheme("MyTheme1", Application.Theme);
// create a new custom theme from a JSON string.
var myTheme2 = new ClientTheme("MyTheme2", json);// alter the border of buttons.
// note that when there is a keyword clash you can use the @ prefix.
Application.Theme.Appearances.button.states.@default.styles.width = 3;
Application.Theme.Appearances.button.states.@default.styles.radius = 0;
// additionally, you my use a string indexer to reach any property.
Application.Theme.Appearances.button.states["default"].styles.radius = 0;
// change existing color.
Application.Theme.Colors.buttonFace = "red";
// create a new color.
Application.Theme.Colors.myCoolColor = "rgba(5,23,55,0.9)";
// since the theme objects are all dynamic and use a special DynamicObject
// class part of the Wisej Framework, you can also use a string indexer
// to address any field.
Application.Theme.Colors["buttonFace"] = "red";
// make the window title bigger and bold.
Application.Theme.Fonts.windowTitle.size = 18;
Application.Theme.Fonts.windowTitle.bold = true;
// create a custom css rules in the theme.
Application.Theme.Stylesheet.rules = new []{
"body: { background-color: red };",
".myClass: { background-color: red };"
};
Wisej.Web.Accordion PanelCollection
Public Class PanelCollection
Inherits IList
Implements ICollection, IEnumerable, IList(Of AccordionPanel), ICollection(Of AccordionPanel), IEnumerable(Of AccordionPanel)public class PanelCollection : IList, ICollection, IEnumerable, IList<AccordionPanel>, ICollection<AccordionPanel>, IEnumerable<AccordionPanel>Wisej.Web.DataObject
public class DataObject : IDataObjectPublic Class DataObject
Inherits IDataObjectWisej.Web.Application
public class Application : IWisejComponent, IDisposable,Public Class Application
Inherits IWisejComponent
Implements IDisposable, IWisejSynchronized, IServiceProvider Application.Session.myValue = 12;
Application.Session["myValue"] = 12;
var current = Application.Current;
var thread = new Thread(() => {
Application.Update(current, () => {
// code here is running in context.
});
});static class Program
{
static Program()
{
Application.LicenseKey = "...";
}
}// create a new custom theme cloned from the current theme.
var myTheme = new ClientTheme("MyTheme", Application.Theme);
// alter the buttonFace color.
myTheme.Colors.buttonFace = "red";
// update the current session using the new custom theme.
Application.Theme = myTheme;
// change the buttonFace color in the current theme.
// if the theme is one of the global themes, i.e. it was loaded
// using Application.LoadTheme(name), then the change is also global.
Application.Theme.Colors.buttonFace = "red";
// since the theme objects are all dynamic and use a special DynamicObject
// class part of the Wisej Framework, you can also use a string indexer
// to address any field.
Application.Theme.Colors["buttonFace"] = "red";
// Find the first component that is a Button with Text = "OK"
var button = Application.FindComponent(c => c is Button && ((Button)c).Text == "OK"); // List all text boxes that are read only in all forms.
var list = Application.FindComponents(c => c is TextBox && ((TextBox)c).ReadOnly);
void Test() {
Application.Post(() => {
this.listBox.Items.Add("1");
});
this.listBox.Items.Add("2");
// The items will be added in this order: "2", "1".
}
// this has not effect when the client and server are connected using WebSocket.
Application.StartPolling(1000);
Application.StartTask(() => {
for (int i = 0; i < 100; i++) {
this.label1.Text = "Counting..." + i;
Thread.Sleep(1000);
}
// this has not effect when the client and server are NOT connected using WebSocket.
Application.Update(this);
// this has not effect when the client and server are connected using WebSocket.
Application.EndPolling();
});Application.StartTask(() => {
for (int i = 0; i < 100; i++) {
this.label1.Text = "Counting..." + i;
// just wait a bit or it's too fast.
Thread.Sleep(1000);
Application.Update(this);
}
});string text = await Application.StartTask(() => {
string value = "";
for (int i = 0; i < 100; i++) {
value += i.ToString();
// just wait a bit or it's too fast.
Thread.Sleep(100);
}
return value;
});
this.label.Text = text;
Application.Update(this);
Application.StartTask(() => {
for (int i = 0; i < 100; i++) {
this.label1.Text = "Counting..." + i;
// just wait a bit or it's too fast.
Thread.Sleep(1000);
}
Application.Update(this);
});Application.StartTask(() => {
Application.Update(this, () => {
for (int i = 0; i < 100; i++) {
this.label1.Text = "Counting..." + i;
// just wait a bit or it's too fast.
Thread.Sleep(1000);
}
});
});Wisej.Web.Control
public class Control : IWisejControl, IWisejComponent,Public Class Control
Inherits IWisejControl
Implements IWisejComponent, IBindableComponent, IWisejSerializable, IHasPropertyStore, IHasResponsiveProfiles
// set the border radius to 100% and make the control round.
this.button1.CssStyle = "border-radius:100%";
// change the background color of the internal label of the button widget.
this.button1.InitScript = "this.getChildControl('label').setBackgroundColor('red')";
// attach a JavaScript event handler.
this.textBox1.InitScript = @"this.addListener('keydown', function(e) {
if (e.getKeyIdentifier() == "PageDown") {
alert('You pressed PageDown.');
}
});
// force the widget to update the UI as if it was hovered and focused.
this.button1.States = new [] { "hovered", "focused" };
// apply a custom state defined in a custom theme or theme mixing.
this.panel1.States = new [] { "alert" }; this.fireWidgetEvent("myevent", {x:1, y:2, name:'test'});
private void control_WidgetEvent(object sender, WidgetEventArgs e) {
switch (e.Type) {
case "myevent":
var data = e.Data;
Alert.Show($"x={data.x}, y={data.y}, name={data.name}");
break;
}
}