private void EventHandlerCore_ObjectSelected(object sender, BimPlusEventArgs e)
        {
            Debug.WriteLine(string.Format("Id:{0} Selected:{1} Multiselect:{2}", e.Id, e.Selected, e.Multiselect));

            if (e.Id != Guid.Empty || e.Selected != true)
            {
                DtObject dtObject = _integrationBase.ApiCore.DtObjects.GetObject(e.Id, ObjectRequestProperties.AttributDefinition | ObjectRequestProperties.Pset);

                if (dtObject != null)
                {
                    if (e.Multiselect == true)
                    {
                        if (SelectedObjects.FirstOrDefault(o => o.Id == e.Id) == null)
                        {
                            SelectedObjects.Add(dtObject);
                        }
                    }
                    else
                    {
                        SelectedObjects.Clear();
                        if (e.Selected == true)
                        {
                            SelectedObjects.Add(dtObject);
                        }
                    }
                }

                if (e.Selected == false)
                {
                    DtObject exist = SelectedObjects.FirstOrDefault(o => o.Id == e.Id);
                    if (exist != null)
                    {
                        SelectedObjects.Remove(exist);
                    }
                    else
                    {
                        SelectedObjects.Clear();
                    }
                }
                else if (e.Selected == null && e.Id != Guid.Empty)
                {
                    if (dtObject != null)
                    {
                        if (SelectedObjects.FirstOrDefault(o => o.Id == e.Id) == null)
                        {
                            SelectedObjects.Add(dtObject);
                        }
                    }
                    else
                    {
                        SelectedObjects.Clear();
                    }
                }

                List <DtObject> newList = new List <DtObject>();
                newList.AddRange(SelectedObjects);
                SelectedObjects = newList;
                Trace.WriteLine(string.Format("_selectedObjects.Count:{0}", SelectedObjects.Count()));
            }
        }
 public void ObjectSelected(ISelectableObject newlySelectedObject)
 {
     for (int i = 0; i < SelectedObjects.Count; i++)
     {
         SelectedObjects[i].OtherObjectSelected(newlySelectedObject);
     }
     SelectedObjects.Add(newlySelectedObject);
 }
Example #3
0
 public static void AddSelection(CollisionObject collisionObject)
 {
     if (collisionObject.UserObject is ISelectable selectable)
     {
         SelectedObjects.Add(collisionObject);
         selectable.Model.RenderFlags |= RenderFlags.Selected;
     }
 }
 public void InvokeSelectionChanged()
 {
     SelectedObjects.Clear();
     if (structure.Selected != null)
     {
         SelectedObjects.Add(structure.Selected);
     }
     OnSelectionChanged();
 }
        private async void RequestBindingObject()
        {
            if (!TargetPlatform.EditorProvider.KnownTypes.TryGetValue(typeof(PropertyBinding), out ITypeInfo bindingType))
            {
                throw new InvalidOperationException("IEditorProvider does not have a known type for PropertyBinding");
            }

            object binding = await TargetPlatform.EditorProvider.CreateObjectAsync(bindingType);

            SelectedObjects.Add(binding);
        }
Example #6
0
 /// <summary>
 /// This method is used to select single object for property window.
 /// </summary>
 /// <param name="selection">Object to select. Must be a member of SelectableObjects list.</param>
 protected void SelectObject(object selection)
 {
     SelectedObjects.Clear();
     if (selection != null)
     {
         if (!SelectableObjects.Contains(selection))
         {
             Debug.Fail("Trying to select object which is not in the selectable collection!");
             return;
         }
         SelectedObjects.Add(selection);
     }
 }
        public void OnSelectedObjects(List <UnityEngine.Object> selectedObjects)
        {
            USUndoManager.PropertyChange(this, "Select");
            foreach (var selectedObject in selectedObjects)
            {
                if (!SelectedObjects.Contains(selectedObject))
                {
                    SelectedObjects.Add(selectedObject);
                    var selection = Selection.objects != null?Selection.objects.ToList() : new List <UnityEngine.Object>();

                    selection.Add(selectedObject);
                    Selection.objects = selection.ToArray();
                }
            }
        }
    /// <summary>
    /// Adds selection icon to tile and stores reference to it
    /// </summary>
    /// <param name="selection"></param>
    void AddSelection(Transform selection)
    {
        //Dequeue inactive object from queue
        GameObject newSelectionIcon = InactiveSelectionObjects.Dequeue();

        //Set object to active in scene
        newSelectionIcon.SetActive(true);
        //Sets new object to correct position
        newSelectionIcon.transform.position = selection.position;
        //Add new object to dictionary
        SelectedObjects.Add(selection, newSelectionIcon);
        //Add to active selection list
        ActiveSelectionIconObjects.Add(newSelectionIcon);
        //Add tile to current tiles selected
        SelectedTiles.Add(selection.gameObject);
    }
        public virtual void CalcNestedSelectedObjects(ITreeNode obj, Boolean parentStatus)
        {
            if (obj == null)
            {
                return;
            }
            var children = GetChildren(obj);

            foreach (ITreeNode child in children)
            {
                var status = false;
                if (parentStatus == !MarkedObjects.Contains(String.Concat(GetMemberValue((child as Object), collection.ObjectSpace.GetKeyPropertyName(child.GetType())))))
                {
                    SelectedObjects.Add(child as Object);
                    status = true;
                }
                CalcNestedSelectedObjects(child, status);
            }
        }
Example #10
0
        public void OnLeftDown()
        {
            Vector2       worldSpaceCursor = Camera.ScreenToWorldCoordinates(MousePosition);
            KeyboardState state            = Keyboard.GetState();

            foreach (LevelGeometry geom in Map.Geometry)
            {
                Rectangle rect = new Rectangle(geom.Position.ToPoint(), geom.Size.ToPoint());
                if (rect.Contains(worldSpaceCursor))
                {
                    if (SelectedObjects.Contains(geom) == false)
                    {
                        SelectedObjects.Add(geom);
                    }
                    draggingElement = true;
                    draggingOffst   = new Vector2(worldSpaceCursor.X, worldSpaceCursor.Y);
                }
            }
        }
        internal void SetSelectedObjectsFromStringList(IEnumerable <string> selectedAsStrings)
        {
            Verify.IsFalse(selectedAsStrings.Any(s => s == null), "One of the selected keys is null");

            InitializeSelectorElements();


            this.SelectedObjects = new List <object>();


            bool bindToObject = (this.BindingType == SelectorBindingType.BindToObject) ||
                                (this.BindingType == SelectorBindingType.BindToKeyFieldValue &&
                                 (this.OptionsKeyField == "." || this.OptionsKeyField == ""));

            if (bindToObject)
            {
                foreach (string selectedAsString in selectedAsStrings)
                {
                    if (_selectorObjects.ContainsKey(selectedAsString))
                    {
                        this.SelectedObjects.Add(_selectorObjects[selectedAsString]);
                    }
                    else if (selectedAsString != _noneSelectionKey)
                    {
                        // ComboBox
                        this.SelectedObjects.Add(selectedAsString);
                    }
                }
                return;
            }

            if (this.BindingType == SelectorBindingType.BindToKeyFieldValue)
            {
                foreach (string selectedAsString in selectedAsStrings)
                {
                    if (selectedAsString == _noneSelectionKey)
                    {
                        continue;
                    }

                    if (!_selectorObjects.ContainsKey(selectedAsString))
                    {
                        // ComboBox
                        SelectedObjects.Add(selectedAsString);
                        continue;
                    }

                    object key;

                    var @object = _selectorObjects[selectedAsString];

                    if (@object is XElement)
                    {
                        key = (@object as XElement).Attribute(this.OptionsKeyField).Value;
                    }
                    else
                    {
                        PropertyInfo keyPropertyInfo = @object.GetType().GetProperty(this.OptionsKeyField);
                        key = keyPropertyInfo.GetValue(@object, null);
                    }

                    this.SelectedObjects.Add(key);
                }

                return;
            }

            throw new InvalidOperationException("Unknown binding type");
        }
Example #12
0
 public void SelectAdditionalObject(IObject3D obj)
 {
     SelectedObjects.Add(obj);
 }