コード例 #1
0
        public override void AddedToDocument(GH_Document document)
        {
            base.AddedToDocument(document);
            Document = this.OnPingDocument();

            if (myReceiver == null)
            {
                var myForm = new SpecklePopup.MainWindow();

                var some = new System.Windows.Interop.WindowInteropHelper(myForm);
                some.Owner = Rhino.RhinoApp.MainWindowHandle();

                myForm.ShowDialog();

                if (myForm.restApi != null && myForm.apitoken != null)
                {
                    RestApi   = myForm.restApi;
                    AuthToken = myForm.apitoken;
                }
                else
                {
                    AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "Account selection failed.");
                    return;
                }
            }
        }
コード例 #2
0
        public override void AddedToDocument(GH_Document document)
        {
            base.AddedToDocument(document);

            senderGuids = new List <string>();

            if (serialisedReceiver != null)
            {
                myReceiver = new SpeckleReceiver(serialisedReceiver, new GhRhConveter(true, true));
                streamId   = myReceiver.getStreamId();
                apiUrl     = myReceiver.getServer();
                token      = myReceiver.getToken();

                registermyReceiverEvents();
            }
            else
            {
                var myForm = new SpecklePopup.MainWindow();

                var some = new System.Windows.Interop.WindowInteropHelper(myForm);
                some.Owner = Rhino.RhinoApp.MainWindowHandle();

                myForm.ShowDialog();

                if (myForm.restApi != null && myForm.apitoken != null)
                {
                    apiUrl = myForm.restApi;
                    token  = myForm.apitoken;
                }
            }

            expireComponentAction = () => this.ExpireSolution(true);
        }
コード例 #3
0
        public override void AddedToDocument(GH_Document document)
        {
            base.AddedToDocument(document);

            ready = false;

            if (serialisedSender != null)
            {
                mySender = new SpeckleSender(serialisedSender, new GhRhConveter(true, true));
            }
            else
            {
                var myForm = new SpecklePopup.MainWindow();

                var some = new System.Windows.Interop.WindowInteropHelper(myForm);
                some.Owner = Rhino.RhinoApp.MainWindowHandle();

                myForm.ShowDialog();

                if (myForm.restApi != null && myForm.apitoken != null)
                {
                    mySender = new SpeckleSender(myForm.restApi, myForm.apitoken, new GhRhConveter(true, true));
                }
            }

            if (mySender == null)
            {
                return;
            }

            mySender.OnError += OnError;

            mySender.OnReady += OnReady;

            mySender.OnDataSent += OnDataSent;

            mySender.OnMessage += OnVolatileMessage;

            mySender.OnBroadcast += OnBroadcast;

            expireComponentAction = () => this.ExpireSolution(true);

            this.ObjectChanged += (sender, e) => updateMetadata();

            foreach (var param in Params.Input)
            {
                param.ObjectChanged += (sender, e) => updateMetadata();
            }
        }
コード例 #4
0
        public override void AddedToDocument(GH_Document document)
        {
            base.AddedToDocument(document);
            Document = this.OnPingDocument();

            if (mySender == null)
            {
                this.NickName = "Initialising...";
                this.Locked   = true;

                var myForm = new SpecklePopup.MainWindow();

                var some = new System.Windows.Interop.WindowInteropHelper(myForm)
                {
                    Owner = Rhino.RhinoApp.MainWindowHandle()
                };

                myForm.ShowDialog();

                if (myForm.restApi != null && myForm.apitoken != null)
                {
                    mySender = new SpeckleApiClient(myForm.restApi);
                    RestApi  = myForm.restApi;
                    mySender.IntializeSender(myForm.apitoken, Document.DisplayName, "Grasshopper", Document.DocumentID.ToString()).ContinueWith(task =>
                    {
                        Rhino.RhinoApp.MainApplicationWindow.Invoke(ExpireComponentAction);
                    });
                }
                else
                {
                    AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "Account selection failed");
                    return;
                }
            }
            else
            {
            }

            mySender.OnReady += (sender, e) =>
            {
                StreamId      = mySender.StreamId;
                this.Locked   = false;
                this.NickName = "Anonymous Stream";
                //this.UpdateMetadata();
                Rhino.RhinoApp.MainApplicationWindow.Invoke(ExpireComponentAction);
            };

            mySender.OnWsMessage += OnWsMessage;

            mySender.OnLogData += (sender, e) =>
            {
                this.Log += DateTime.Now.ToString("dd:HH:mm:ss ") + e.EventData + "\n";
            };

            mySender.OnError += (sender, e) =>
            {
                this.AddRuntimeMessage(GH_RuntimeMessageLevel.Error, e.EventName + ": " + e.EventData);
                this.Log += DateTime.Now.ToString("dd:HH:mm:ss ") + e.EventData + "\n";
            };

            ExpireComponentAction = () => ExpireSolution(true);

            ObjectChanged += (sender, e) => UpdateMetadata();

            foreach (var param in Params.Input)
            {
                param.ObjectChanged += (sender, e) => UpdateMetadata();
            }

            MetadataSender = new System.Timers.Timer(1000)
            {
                AutoReset = false, Enabled = false
            };
            MetadataSender.Elapsed += MetadataSender_Elapsed;

            DataSender = new System.Timers.Timer(2000)
            {
                AutoReset = false, Enabled = false
            };
            DataSender.Elapsed += DataSender_Elapsed;

            ObjectCache = new Dictionary <string, SpeckleObject>();
        }