예제 #1
0
        public Control BuildUIFromParameterVariable(TriggerComponent comp, TriggerVariable var, TriggerValue val, bool watchForChange)
        {
            TriggerParameterControl c = new TriggerParameterControl();

            c.Init(comp, var, val, ParentTriggerNamespace);//, Trigger);
            c.HotSelect    += new EventHandler(c_HotSelect);
            c.HotSelectEnd += new EventHandler(c_HotSelectEnd);

            if (watchForChange)
            {
                c.LabelChanged += new EventHandler(c_LabelChanged);
            }
            return(c);
        }
예제 #2
0
        public bool Setup(TriggerNamespace triggerNamespace, TriggerComponent component)
        {
            mParentTriggerNamespace = triggerNamespace;
            mTriggerComponent       = component;

            if (TriggerSystemMain.mTriggerDefinitions.TryGetDefinition(component.DBID, component.Version, out mDefinition) == false)
            {
                return(false);
            }

            this.ComponentNameLabel.Text = mDefinition.Type;



            int column1X = 0;
            int column2X = 100;
            int column3X = 200;
            int row1Y    = 50;

            int rowN   = row1Y;
            int deltaY = 20;

            Dictionary <int, TriggerValue> values = mParentTriggerNamespace.GetValues();

            foreach (TriggerVariable v in component.Parameter)
            {
                Label ioLabel = new Label();
                if (v is TriggersInputVariable)
                {
                    ioLabel.Text = "Input";
                }
                else if (v is TriggersOutputVariable)
                {
                    ioLabel.Text = "Output";
                }
                ioLabel.Height -= 5;

                Label nameLabel = new Label();
                nameLabel.Text    = v.Name;
                nameLabel.Height -= 5;

                Label typeLabel = new Label();
                typeLabel.Text    = values[v.ID].Type;
                typeLabel.Height -= 5;


                TriggerParameterControl c = new TriggerParameterControl();
                c.Init(component, v, values[v.ID], mParentTriggerNamespace);
                c.LabelChanged += new EventHandler(c_LabelChanged);

                AddControl(InputPanel, ioLabel, column1X, rowN);
                AddControl(TypesPanel, typeLabel, column1X, rowN);
                AddControl(NamePanel, nameLabel, column1X, rowN);
                AddControl(ParameterPanel, c, column1X, rowN);


                nameLabel.Width = nameLabel.Parent.Width;
                c.Width         = c.Parent.Width;



                mParamcontrols.Add(c);

                rowN += deltaY;
            }

            //smart help text

            string helptext = mDefinition.HelpText;

            //string newHelpText;
            //int startOffset  = helptext.IndexOf("{",startOffset);
            //int lastSpot = 0;
            //while(startOffset != -1)
            //{
            //   newHelpText += helptext.Substring(lastSpot, startOffset - lastSpot);
            //   newHelpText +=

            //   startOffset = helptext.IndexOf("{", startOffset);
            //}

            UpdateHelpText();

            return(true);
        }
예제 #3
0
        //Loads ui.  Creates values for the mappings if they do not exist
        private void LoadMappingUI(TriggerTemplateMapping mapping)
        {
            TriggerNameText.Text = Path.GetFileNameWithoutExtension(mapping.Name);

            foreach (TriggersTemplateInputVariable v in mapping.InputMappings)
            {
                TriggerParameterControl c   = new TriggerParameterControl();
                TriggerValue            val = new TriggerValue();

                if (mbDemoMode || (ParentTriggerNamespace.GetValues().ContainsKey(v.ID) == false) || (v.ID == -1))
                {
                    val.Name = v.Name;
                    val.Type = v.Type;
                    int newID = -1;
                    ParentTriggerNamespace.InsertValue(val, out newID);
                    v.ID = newID;

                    //this line set optional parmas to default off for newly placed templates
                    if (v.Optional == true)
                    {
                        val.IsNull = true;
                    }
                }
                else
                {
                    val = ParentTriggerNamespace.GetValues()[v.ID];
                }


                c.Init(null, v, val, ParentTriggerNamespace);

                VarInHardPointsBar.AddControl(c);
            }
            foreach (TriggersTemplateOutputVariable v in mapping.OutputMappings)
            {
                TriggerParameterControl c   = new TriggerParameterControl();
                TriggerValue            val = new TriggerValue();
                if (ParentTriggerNamespace.GetValues().ContainsKey(v.ID) == false)
                {
                    val.Name = v.Name;
                    val.Type = v.Type;
                    int newID = -1;
                    ParentTriggerNamespace.InsertValue(val, out newID);
                    v.ID = newID;
                }
                else
                {
                    val = ParentTriggerNamespace.GetValues()[v.ID];
                }
                c.Init(null, v, val, ParentTriggerNamespace);

                VarOutHardPointsBar.AddControl(c);
            }
            foreach (TriggersTemplateInputActionBinder b in mapping.TriggerInputs)
            {
                BasicControlPoint cp = new BasicControlPoint(mHost);

                INHardPointsBar.AddControl(cp);
                cp.TargetKey = "none";//"Trigger.Link.Back";
                cp.TypeKey   = "Trigger.Link.Forward";
                cp.BackColor = b.GetColor();
                cp.SetToolTipText(b.Name);
                cp.Name = b.Name;
                cp.SetDirection(new Point(-250, 0));
                cp.Tag        = this;
                cp.TagObject  = this;
                cp.RenderText = cp.Name;
                cp.ControlPointDescription = this.mTriggerTemplateMapping.Name + "." + b.Name;

                mControlPoints.Add(cp);

                mInputActionCPs[cp] = b;
            }
            //flowLayoutPanel1.Controls.Add(MakeLabel("OutputTriggers:"));
            foreach (TriggersTemplateOutputActionBinder b in mapping.TriggerOutputs)
            {
                BasicControlPoint cp = new BasicControlPoint(mHost);
                OutHardPointsBar.AddControl(cp);
                cp.TargetKey = "Trigger.Link.Forward";
                cp.TypeKey   = "none";//"Trigger.Link.Back";
                cp.BackColor = b.GetColor();
                cp.SetToolTipText(b.Name);
                cp.Name = b.Name;
                cp.SetDirection(new Point(250, 0));
                cp.Tag                     = this;
                cp.TagObject               = this;
                cp.RenderText              = b.Name;
                cp.ControlPointConnected  += new BasicControlPoint.ControlPointEvent(output_ControlPointConnected);
                cp.ControlPointRemoved    += new BasicControlPoint.ControlPointEvent(output_ControlPointRemoved);
                cp.ControlPointDescription = this.mTriggerTemplateMapping.Name + "." + b.Name;

                mControlPoints.Add(cp);

                mOutputActionCPs[cp] = b;
            }
        }