public void SetFinsemble(Finsemble fsbl) { this.fsbl = fsbl; Application.Current.Dispatcher.Invoke(() => { FinsembleHeader.SetBridge(fsbl); // The Header Control needs a connected finsemble instance //Styling the Finsemble Header FinsembleHeader.SetActiveBackground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#22262F"))); FinsembleHeader.SetInactiveBackground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#22262F"))); FinsembleHeader.SetButtonHoverBackground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#0A8CF4"))); FinsembleHeader.SetInactiveButtonHoverBackground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#0A8CF4"))); FinsembleHeader.SetCloseButtonHoverBackground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#F26666"))); FinsembleHeader.SetInactiveCloseButtonHoverBackground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#F26666"))); FinsembleHeader.SetDockingButtonDockedBackground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#0A8CF4"))); FinsembleHeader.SetTitleForeground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#ACB2C0"))); FinsembleHeader.SetButtonForeground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#ACB2C0"))); FinsembleHeader.SetButtonFont(null, 8, FontStyles.Normal, FontWeights.Normal); FinsembleHeader.SetTitleFont(null, 12, FontStyles.Normal, FontWeights.SemiBold); fsbl.DragAndDropClient.SetScrim(Scrim); // The Scrim Label Control is used for drag and drop. Show(); }); }
public void SetFinsemble(Finsemble fsbl) { this.fsbl = fsbl; Application.Current.Dispatcher.Invoke(() => { FinsembleHeader.SetBridge(fsbl); // The Header Control needs a connected finsemble instance // Styling the Finsemble Header FinsembleHeader.SetActiveBackground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#3C4C58"))); FinsembleHeader.SetInactiveBackground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#303D47"))); FinsembleHeader.SetButtonHoverBackground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#005BC5"))); FinsembleHeader.SetInactiveButtonHoverBackground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#004BA3"))); FinsembleHeader.SetCloseButtonHoverBackground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#D30E2D"))); FinsembleHeader.SetInactiveCloseButtonHoverBackground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#D30E2D"))); FinsembleHeader.SetDockingButtonDockedBackground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#005BC5"))); FinsembleHeader.SetTitleForeground(new SolidColorBrush(Colors.White)); FinsembleHeader.SetButtonForeground(new SolidColorBrush(Colors.White)); FinsembleHeader.SetButtonFont(null, 14, FontStyles.Normal, FontWeights.Normal); FinsembleHeader.SetTitleFont(null, 14, FontStyles.Normal, FontWeights.Normal); fsbl.DragAndDropClient.SetScrim(Scrim); // The Scrim Label Control is used for drag and drop. Show(); }); }
private void Finsemble_Connected(object sender, EventArgs e) { Application.Current.Dispatcher.Invoke(delegate //main thread { // Initialize this Window and show it InitializeComponent(); // Initialize after Finsemble is connected FinsembleHeader.SetBridge(FSBL); // The Header Control needs a connected finsemble instance //Styling the Finsemble Header FinsembleHeader.SetActiveBackground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#3C4C58"))); FinsembleHeader.SetInactiveBackground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#303D47"))); FinsembleHeader.SetButtonHoverBackground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#005BC5"))); FinsembleHeader.SetInactiveButtonHoverBackground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#004BA3"))); FinsembleHeader.SetCloseButtonHoverBackground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#D30E2D"))); FinsembleHeader.SetInactiveCloseButtonHoverBackground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#D30E2D"))); FinsembleHeader.SetDockingButtonDockedBackground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#005BC5"))); FinsembleHeader.SetTitleForeground(new SolidColorBrush(Colors.White)); FinsembleHeader.SetButtonForeground(new SolidColorBrush(Colors.White)); FinsembleHeader.SetButtonFont(null, 14, FontStyles.Normal, FontWeights.Normal); FinsembleHeader.SetTitleFont(null, 14, FontStyles.Normal, FontWeights.Normal); FSBL.DragAndDropClient.SetScrim(Scrim); // The Scrim Label Control is used for drag and drop. // Receivers for dropped data. FSBL.DragAndDropClient.AddReceivers(new List <KeyValuePair <string, EventHandler <FinsembleEventArgs> > >() { new KeyValuePair <string, EventHandler <FinsembleEventArgs> >("symbol", (s, args) => { var data = args.response["data"]?["symbol"]?["symbol"]; if (data != null) { Application.Current.Dispatcher.Invoke((Action) delegate //main thread { DroppedData.Content = data.ToString(); DataToSend.Text = data.ToString(); SaveState(); }); } ; }) }); // Emitters for data that can be dragged using the drag icon. FSBL.DragAndDropClient.SetEmitters(new List <KeyValuePair <string, DragAndDropClient.emitter> >() { new KeyValuePair <string, DragAndDropClient.emitter>("symbol", () => { //set state on drag so correct symbol is displayed Application.Current.Dispatcher.Invoke(delegate //main thread { DroppedData.Content = DataToSend.Text; SaveState(); }); return(new JObject { ["symbol"] = DataToSend.Text, ["description"] = "Symbol " + DataToSend.Text }); }) }); FSBL.ConfigClient.GetValue(new JObject { ["field"] = "finsemble.components" }, (routerClient, response) => { if (response.error != null) { Logger.Error(response.error); return; } var components = (JObject)response.response?["data"]; foreach (var property in components?.Properties()) { object value = components?[property.Name]?["foreign"]?["components"]?["App Launcher"]?["launchableByUser"]; if ((value != null) && bool.Parse(value.ToString())) { Application.Current.Dispatcher.Invoke(delegate //main thread { ComponentSelect.Items.Add(property.Name); }); } } }); //restore state if one exists UpdateDisplayData(); //Programmatically link to a colour channel //FSBL.LinkerClient.LinkToChannel("group2", null, (s, a) => { }); this.Show(); }); // Subscribe to Finsemble Linker Channels FSBL.RPC("LinkerClient.subscribe", new List <JToken> { "symbol" }, (error, response) => { Application.Current.Dispatcher.Invoke(delegate //main thread { DataToSend.Text = response?["data"]?.ToString(); DroppedData.Content = response?["data"]?.ToString(); SaveState(); }); }); // Logging to the Finsemble Central Console /*FSBL.RPC("Logger.error", new List<JToken> { * "Error Test" * }); * * FSBL.RPC("Logger.log", new List<JToken> { * "Log Test" * }); * * FSBL.RPC("Logger.debug", new List<JToken> { * "Debug Test" * }); * * FSBL.RPC("Logger.info", new List<JToken> { * "Info Test" * }); * * FSBL.RPC("Logger.verbose", new List<JToken> { * "Verbose Test" * }); */ }
private void Finsemble_Connected(object sender, EventArgs e) { Application.Current.Dispatcher.Invoke(delegate //main thread { // Initialize this Window and show it InitializeComponent(); // Initialize after Finsemble is connected FinsembleHeader.SetBridge(FSBL); // The Header Control needs a connected finsemble instance //Styling the Finsemble Header FinsembleHeader.SetActiveBackground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#22262F"))); FinsembleHeader.SetInactiveBackground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#22262F"))); FinsembleHeader.SetButtonHoverBackground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#0A8CF4"))); FinsembleHeader.SetInactiveButtonHoverBackground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#0A8CF4"))); FinsembleHeader.SetCloseButtonHoverBackground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#F26666"))); FinsembleHeader.SetInactiveCloseButtonHoverBackground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#F26666"))); FinsembleHeader.SetDockingButtonDockedBackground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#0A8CF4"))); FinsembleHeader.SetTitleForeground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#ACB2C0"))); FinsembleHeader.SetButtonForeground(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#ACB2C0"))); FinsembleHeader.SetButtonFont(null, 8, FontStyles.Normal, FontWeights.Normal); FinsembleHeader.SetTitleFont(null, 12, FontStyles.Normal, FontWeights.SemiBold); //Set window title FinsembleHeader.SetTitle("WPF Example Component"); FSBL.DragAndDropClient.SetScrim(Scrim); // The Scrim Label Control is used for drag and drop. // Receivers for dropped data. FSBL.DragAndDropClient.AddReceivers(new List <KeyValuePair <string, EventHandler <FinsembleEventArgs> > >() { new KeyValuePair <string, EventHandler <FinsembleEventArgs> >("symbol", (s, args) => { var data = args.response["data"]?["symbol"]; if (data != null) { //Check if we received an object (so data.symbol.symbol) or a string (data.symbol) to support variations in the format if (data.HasValues) { data = data?["symbol"]; } Application.Current.Dispatcher.Invoke((Action) delegate //main thread { Application.Current.Dispatcher.Invoke((Action) delegate //main thread { DroppedData.Content = data.ToString(); DataToSend.Text = data.ToString(); DroppedDataSource.Content = "via Drag and Drop"; SaveState(); }); }); } }) }); // Emitters for data that can be dragged using the drag icon. FSBL.DragAndDropClient.SetEmitters(new List <KeyValuePair <string, DragAndDropClient.emitter> >() { new KeyValuePair <string, DragAndDropClient.emitter>("symbol", () => { //set state on drag so correct symbol is displayed Application.Current.Dispatcher.Invoke(delegate //main thread { DroppedData.Content = DataToSend.Text; SaveState(); }); return(new JObject { ["symbol"] = DataToSend.Text, ["description"] = "Symbol " + DataToSend.Text }); }) }); FSBL.ConfigClient.GetValue(new JObject { ["field"] = "finsemble.components" }, (routerClient, response) => { if (response.error != null) { Logger.Error(response.error); return; } var components = (JObject)response.response?["data"]; foreach (var property in components?.Properties()) { object value = components?[property.Name]?["foreign"]?["components"]?["App Launcher"]?["launchableByUser"]; if ((value != null) && bool.Parse(value.ToString())) { Application.Current.Dispatcher.Invoke(delegate //main thread { ComponentSelect.Items.Add(property.Name); }); } } }); //FSBL.LinkerClient.LinkToChannel("group2", null, (s, a) => { }); //restore state if one exists UpdateDisplayData(); this.Show(); }); // Subscribe to Finsemble Linker Channels FSBL.RPC("LinkerClient.subscribe", new List <JToken> { "symbol" }, (error, response) => { Application.Current.Dispatcher.Invoke(delegate //main thread { DataToSend.Text = response?["data"]?.ToString(); DroppedData.Content = response?["data"]?.ToString(); DroppedDataSource.Content = "via Linker"; SaveState(); }); }); //Subscribe to a PubSub topic //N.B. You must add a PubSub responder before publishing or subscribing to any topic that doesn't start with 'Finsemble' // This is not currently supported in the .Net RouterClient implementation and will need to done in a Finsemble HTML5 service Subscribe_to_pubsub(); // Logging to the Finsemble Central Console /*FSBL.RPC("Logger.error", new List<JToken> { * "Error Test" * }); * * FSBL.RPC("Logger.log", new List<JToken> { * "Log Test" * }); * * FSBL.RPC("Logger.debug", new List<JToken> { * "Debug Test" * }); * * FSBL.RPC("Logger.info", new List<JToken> { * "Info Test" * }); * * FSBL.RPC("Logger.verbose", new List<JToken> { * "Verbose Test" * }); */ ////Sample code to execute LauncherClient.getActiveDescriptors() //FSBL.LauncherClient.getActiveDescriptors((s, args) => //{ // System.Diagnostics.Debug.Write(args.response.ToString()); //}); }