Esempio n. 1
0
        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);
            }));
        }
Esempio n. 2
0
 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";
                 }
             }
         }
     }));
 }
Esempio n. 3
0
 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() });
         }
     }));
 }
Esempio n. 6
0
 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);
         }
     }));
 }
Esempio n. 9
0
        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);
                }
            }));
        }
Esempio n. 10
0
 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() });
         }
     }));
 }
Esempio n. 11
0
 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();
         }
     }));
 }
Esempio n. 12
0
 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);
                 }
             }
         }
     }));
 }
Esempio n. 13
0
 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();
             }
         }
     }));
 }
Esempio n. 14
0
        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;
                    }
                }
            }));
        }
Esempio n. 15
0
        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);
            }));
        }
Esempio n. 16
0
        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;
                    }
                }
            }));
        }