private void SetupDropdownForProjectParameters(string type, object value)
 {
     if (ProjectParametersHelper.TypeSupported(type))
     {
         List <string> projectParameters = new List <string>();
         List <string> labels            = new List <string>();
         string        selectedLabel     = null;
         foreach (IO.Swagger.Model.ProjectParameter pp in ProjectManager.Instance.ProjectParameters.Where(c => c.Type == type).OrderBy(p => p.Name))
         {
             projectParameters.Add(pp.Name);
             labels.Add($"{pp.Name}: {ProjectParameterHelper.GetValue(pp)}");
             if (value != null && pp.Id == JsonConvert.DeserializeObject <string>(value.ToString()))
             {
                 selectedLabel = labels.Last();
             }
         }
         projectParameters.Add(NewProjectParameterText);
         labels.Add(NewProjectParameterText);
         ActionsDropdown.PutData(projectParameters, selectedLabel, OnProjectParameterPicked, labels);
         dropdownIndexSelected = ActionsDropdown.Dropdown.selectedItemIndex;
     }
     else
     {
         ActionsDropdown.PutData(new List <string>(), "", OnProjectParameterPicked);
     }
 }
    private void OnProjectParameterUpdated(object sender, ProjectParameterEventArgs args)
    {
        if (args.ProjectParameter.Id != Id)
        {
            return;
        }

        SetName(args.ProjectParameter.Name);
        SetValue(ProjectParametersHelper.GetValue(args.ProjectParameter.Value, ProjectParametersHelper.ConvertStringParameterTypeToEnum(args.ProjectParameter.Type)));
    }
Example #3
0
    private bool cancelCallbackInvoked; //flag: only cancel callback should be invoked if canceled

    /// <summary>
    ///
    /// </summary>
    /// <param name="projectParameter"></param>
    public async Task <bool> Init(System.Action <string> onCloseCallback, System.Action onCancelCallback, ProjectParameter projectParameter = null, string ofType = null)
    {
        this.projectParameter = projectParameter;
        isNewConstant         = projectParameter == null;
        this.onCloseCallback  = onCloseCallback;
        this.onCancelCallback = onCancelCallback;
        cancelCallbackInvoked = false;

        dropdown.Dropdown.dropdownItems.Clear();
        foreach (string type in Enum.GetNames(typeof(ProjectParameterTypes)))
        {
            CustomDropdown.Item item = new CustomDropdown.Item {
                itemName        = type,
                OnItemSelection = new UnityEvent()
            };
            item.OnItemSelection.AddListener(() => OnTypeSelected(type));
            dropdown.Dropdown.dropdownItems.Add(item);
        }


        if (isNewConstant)
        {
            Title.text = "New project parameter";
            removeButton.SetActive(false);
            nameInput.SetValue("");
            valueInput.SetValue("");
            OnTypeSelected(ofType == null ? ProjectParameterTypes.integer : ProjectParametersHelper.ConvertStringParameterTypeToEnum(ofType));
            dropdown.Dropdown.selectedItemIndex = (int)selectedType;
            dropdown.Dropdown.SetupDropdown();
            dropdown.Dropdown.GetComponent <Button>().interactable = ofType == null;
        }
        else     //editing constant
        {
            try {
                await WebsocketManager.Instance.WriteLock(projectParameter.Id, false);

                Title.text = "Edit project parameter";
                removeButton.SetActive(true);
                nameInput.SetValue(projectParameter.Name);
                OnTypeSelected(projectParameter.Type);
                dropdown.Dropdown.selectedItemIndex = (int)selectedType;
                dropdown.Dropdown.SetupDropdown();
                dropdown.Dropdown.GetComponent <Button>().interactable = false;

                object value = ProjectParametersHelper.GetValue(projectParameter.Value, selectedType);
                if (selectedType == ProjectParameterTypes.boolean)
                {
                    trueToggle.isOn = (bool)value;
                }
                else
                {
                    valueInput.SetValue(value);
                }
            } catch (RequestFailedException e) {
                Notifications.Instance.ShowNotification("Failed to lock " + projectParameter.Name, e.Message);
                this.projectParameter = null;
                return(false);
            }
        }
        return(true);
    }
Example #4
0
    private void OnTypeSelected(string type)
    {
        ProjectParameterTypes typeEnum = ProjectParametersHelper.ConvertStringParameterTypeToEnum(type);

        OnTypeSelected(typeEnum);
    }