private void HandleWindowGrouping(object sender, FinsembleEventArgs args) { this.Invoke(new Action(() => { if (args.error != null) { _bridge.Clients.Logger.Error(new JToken[] { "WinformExampleCore HandleWindowGrouping Error", args.error.ToString() }); return; } var groupData = args.response["data"]["groupData"] as JObject; var thisWindowGroups = new JObject(); foreach (var obj in groupData) { var windowgroupid = obj.Key; var windowgroup = groupData[windowgroupid] as JObject; var windownames = windowgroup["windowNames"] as JArray; thisWindowGroups = FormWindowGroupsTo(windowgroup, windownames); } UpdateViewDueToWindowGroups(thisWindowGroups); })); }
private void HandleDragAndDropReceive(object sender, FinsembleEventArgs args) { this.Invoke(new Action(() => { if (args.error != null) { _bridge.Clients.Logger.Error(new JToken[] { "Error when receiving drag and drop data: ", args.error.ToString() }); } else if (args.response != null) { 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"]; DataLabel.Text = data.ToString(); DataToSendInput.Text = data.ToString(); SourceLabel.Text = "via Drag and Drop"; } } } })); }
private void HandlePubSub(object sender, FinsembleEventArgs args) { this.Invoke(new Action(() => { try { if (args.error != null) { _bridge.Clients.Logger.Error(new JToken[] { "Error when retrieving spawn data: ", args.error.ToString() }); } else if (args.response != null) { var pubSubData = (JObject)args.response; var theData = ((JValue)pubSubData?["data"]?["symbol"])?.ToString(); if (theData != null) { DataLabel.Text = theData; DataToSendInput.Text = theData; SourceLabel.Text = "via PubSub"; } } } catch (Exception ex) { _bridge.Clients.Logger.Error(new JToken[] { "Error when retrieving linker channels: ", ex.Message }); } })); }
private void handleDragAndDropReceive(object sender, FinsembleEventArgs args) { this.Invoke(new Action(async() => { if (args.error != null) { FSBL.Logger.Error(new JToken[] { "Error when receiving drag and drop data: ", args.error.ToString() }); } else if (args.response != null) { 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"]; datavalue.Text = data.ToString(); input.Text = data.ToString(); datasource.Text = "via Drag and Drop"; await SaveStateAsync(); } } } })); }
private void handleLinkerChannelLabels(object sender, FinsembleEventArgs args) { this.Invoke(new Action(() => { if (args.error == null) { Label[] groupLabels = new Label[] { group1, group2, group3, group4, group5, group6 }; var allChannels = args.response as JArray; int labelcount = 0; foreach (JObject item in allChannels) { Label theLabel = groupLabels[labelcount++]; theLabel.Visible = false; LinkerGroups.Add(item["name"].ToString(), theLabel); //limit channels to ones we enough labels for if (labelcount == groupLabels.Length) { break; } } } else { FSBL.Logger.Error(new JToken[] { "Error when retrieving linker channels: ", args.error.ToString() }); } })); }
private void HandleComponentsList(Object sender, FinsembleEventArgs response) { this.Invoke(new Action(() => { if (response.error != null) { FSBL.Logger.Error(new JToken[] { "Error when receiving spawnable component list: ", response.error.ToString() }); } else if (response.response != null) { 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())) { Dispatcher.CurrentDispatcher.Invoke(() => { //elimination of duplicate names of components after Finsemble restart if (!ComponentDropDown.Items.Contains(property.Name)) { ComponentDropDown.Items.Add(property.Name); ComponentDropDown.SelectedIndex = 0; } }); } } } })); }
private void handlePubSub(object sender, FinsembleEventArgs state) { this.Invoke(new Action(async() => { try { if (state.error != null) { FSBL.Logger.Error(new JToken[] { "Error when retrieving spawn data: ", state.error.ToString() }); } else if (state.response != null) { var pubSubData = (JObject)state.response; var theData = ((JValue)pubSubData?["data"]?["symbol"])?.ToString(); if (theData != null) { datavalue.Text = theData; input.Text = theData; datasource.Text = "via PubSub"; await SaveStateAsync(); } } } catch (Exception ex) { FSBL.Logger.Error(new JToken[] { "Error when retrieving linker channels: ", ex.Message }); } })); }
private void handleGetComponentState(object s, FinsembleEventArgs state) { this.Invoke(new Action(() => { if (state.response != null) { // Example for restoring state if (state.response is JValue) { var symbol = (JValue)state.response; if (symbol != null) { var symbolTxt = symbol?.ToString(); if (!string.IsNullOrEmpty(symbolTxt)) { datavalue.Text = symbolTxt; input.Text = symbolTxt; datasource.Text = "via component state"; } } } else { // Example for Handling Spawn data FSBL.WindowClient.getSpawnData(handleSpawnData); } } else { // Example for Handling Spawn data FSBL.WindowClient.getSpawnData(handleSpawnData); } })); }
private void HandleLinkerStateChange(Object sender, FinsembleEventArgs response) { this.Invoke(new Action(() => { if (response.error != null) { FSBL.Logger.Error(new JToken[] { "Error when receiving linker state change data: ", response.error.ToString() }); } else if (response.response != null) { var visiblePillsBeforeChange = LinkerGroups.Count(x => x.Value.Visible); var channels = response.response["channels"] as JArray; var allChannels = response.response["allChannels"] as JArray; foreach (JObject obj in allChannels) { LinkerGroups[obj["name"].ToString()].Visible = false; LinkerGroups[obj["name"].ToString()].BackColor = ColorTranslator.FromHtml(obj["color"].ToString()); } foreach (JValue channel in channels) { LinkerGroups[channel.Value.ToString()].Visible = true; } var visiblePillsAfterChange = LinkerGroups.Count(x => x.Value.Visible); AlignAllLinkerPills(); DragNDropEmittingButton.Location = new Point(DragNDropEmittingButton.Location.X + CalculateDragNDropLeftMarginShift(visiblePillsBeforeChange, visiblePillsAfterChange), DragNDropEmittingButton.Location.Y); } })); }
private void HandleLinkerChannelLabels(object sender, FinsembleEventArgs args) { this.Invoke(new Action(() => { if (args.error == null) { var groupLabels = new RoundedButton[] { GroupButton1, GroupButton2, GroupButton3, GroupButton4, GroupButton5, GroupButton6 }; var allChannels = args.response as JArray; int labelcount = 0; foreach (JObject item in allChannels) { var theLabel = groupLabels[labelcount++]; theLabel.Visible = false; if (!LinkerGroups.ContainsKey(item["name"].ToString())) { LinkerGroups.Add(item["name"].ToString(), theLabel); } //limit channels to ones we enough labels for if (labelcount == groupLabels.Length) { break; } } } else { FSBL.Logger.Error(new JToken[] { "Error when retrieving linker channels: ", args.error.ToString() }); } })); }
private void handleLinkerData(object sender, FinsembleEventArgs response) { this.Invoke(new Action(async() => { if (response.error != null) { FSBL.Logger.Error(new JToken[] { "Error when receiving linker data: ", response.error.ToString() }); } else if (response.response != null) { string value = response.response?["data"]?.ToString(); datavalue.Text = value; datasource.Text = "via Linker"; input.Text = value; await SaveStateAsync(); } })); }
private void handleComponentsList(Object sender, FinsembleEventArgs response) { this.Invoke(new Action(() => { if (response.error != null) { FSBL.Logger.Error(new JToken[] { "Error when receiving spawnable component list: ", response.error.ToString() }); } else if (response.response != null) { 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())) { componentList.Items.Add(property.Name); } } } })); }
private void handleSpawnData(Object sender, FinsembleEventArgs res) { this.Invoke(new Action(async() => { var receivedData = (JObject)res.response; if (res.error != null) { FSBL.Logger.Error(new JToken[] { "Error when retrieving spawn data: ", res.error.ToString() }); } else if (res.response != null) { JToken value = receivedData.GetValue("spawndata"); if (value != null) { datavalue.Text = value.ToString(); input.Text = value.ToString(); datasource.Text = "via Spawndata"; await SaveStateAsync(); } } })); }
private void handleLinkerStateChange(Object sender, FinsembleEventArgs response) { this.Invoke(new Action(() => { if (response.error != null) { FSBL.Logger.Error(new JToken[] { "Error when receiving linker state change data: ", response.error.ToString() }); } else if (response.response != null) { var channels = response.response["channels"] as JArray; var allChannels = response.response["allChannels"] as JArray; foreach (JObject obj in allChannels) { LinkerGroups[obj["name"].ToString()].Visible = false; LinkerGroups[obj["name"].ToString()].BackColor = ColorTranslator.FromHtml(obj["color"].ToString()); } foreach (JValue channel in channels) { LinkerGroups[channel.Value.ToString()].Visible = true; } } })); }
private void HandleWindowGrouping(object s, FinsembleEventArgs res) { this.Invoke(new Action(() => { if (res.error != null) { return; } var groupData = res.response["data"]["groupData"] as JObject; var thisWindowGroups = new JObject(); foreach (var obj in groupData) { var windowgroupid = obj.Key; var windowgroup = groupData[windowgroupid] as JObject; var windownames = windowgroup["windowNames"] as JArray; thisWindowGroups = FormWindowGroupsTo(windowgroup, windownames); } UpdateViewDueToWindowGroups(thisWindowGroups); })); }
private void handleWindowGrouping(object s, FinsembleEventArgs res) { this.Invoke(new Action(() => { if (res.error != null) { return; } else { JObject groupData = res.response["data"]["groupData"] as JObject; String currentWindowName = FSBL.WindowClient.GetWindowIdentifier()["windowName"].ToString(); JObject thisWindowGroups = new JObject(); thisWindowGroups.Add("dockingGroup", ""); thisWindowGroups.Add("snappingGroup", ""); thisWindowGroups.Add("topRight", false); foreach (var obj in groupData) { string windowgroupid = obj.Key; JObject windowgroup = groupData[windowgroupid] as JObject; JArray windownames = windowgroup["windowNames"] as JArray; bool windowingroup = false; for (int i = 0; i < windownames.Count; i++) { string windowname = windownames[i].ToString(); if (windowname == currentWindowName) { windowingroup = true; } } if (windowingroup) { bool isMovable = (bool)windowgroup["isMovable"]; if (isMovable) { thisWindowGroups["dockingGroup"] = windowgroupid; if (windowgroup["topRightWindow"].ToString() == currentWindowName) { thisWindowGroups["topRight"] = true; } } else { thisWindowGroups["snappingGroup"] = windowgroupid; } } } if (thisWindowGroups["dockingGroup"].ToString() != "") { // docked groupCb.Checked = true; } else if (thisWindowGroups["snappingGroup"].ToString() != "") { // Snapped groupCb.Enabled = true; } else { // unsnapped/undocked groupCb.Checked = false; groupCb.Enabled = false; } } })); }