Beispiel #1
0
        protected override void OnUpdateFrame(FrameEventArgs e)
        {
            base.OnUpdateFrame(e);

            if (Keyboard[Key.W])
            {
                Camera.Translate(new Vect3(0, 20f * e.Time, 0));
            }

            if (Keyboard[Key.S])
            {
                Camera.Translate(new Vect3(0, -20f * e.Time, 0));
            }

            if (Keyboard[Key.A])
            {
                Camera.Translate(new Vect3(-20f * e.Time, 0, 0));
            }

            if (Keyboard[Key.D])
            {
                Camera.Translate(new Vect3(20f * e.Time, 0, 0));
            }

            //if (_graphicsDirty)
            {
                lock (Engine.Factory.GameObjectsLock)
                {
                    foreach (var go in Engine.Factory.GameObjects.Where(go => Views.ContainsKey(go.GetType())))
                    {
                        // Views[go.GetType()].Add(go);
                    }
                }
                foreach (var pair in Views)
                {
                    //pair.Value.Update();
                }
                _graphicsDirty = false;
            }
        }
Beispiel #2
0
 internal bool Add(int tableHash, string type, string name)
 {
     try
     {
         if (Tables != null && (type == null || type == "U") && !Tables.ContainsKey(tableHash))
         {
             Tables.Add(tableHash, new TableInfo(name, type, null, this));
         }
         if (Views != null && (type == null || type == "V") && !Views.ContainsKey(tableHash))
         {
             Views.Add(tableHash, new TableInfo(name, type, null, this));
         }
         if (Procs != null && (type == null || type == "P") && !Procs.ContainsKey(tableHash))
         {
             Procs.Add(tableHash, new TableInfo(name, type, null, this));
         }
         return(true);
     }
     catch
     {
         return(false);
     }
 }
 private void FillViewSwitcher()
 {
     if (Views != null)
     {
         string firstKey    = "0";
         bool   setFirstKey = false;
         foreach (var view in Views)
         {
             DropDownViewSwitcher.Items.Add(new ListItem(view.Value.ToString("G"), view.Key));
             if (!setFirstKey)
             {
                 firstKey    = view.Key;
                 setFirstKey = true;
             }
         }
         switcher.Visible             = Views.Count > 1;
         searchToolbar.Visible        = Views.ContainsKey("4");
         AppMultiView.ActiveViewIndex = int.Parse(firstKey);
     }
     else
     {
         DropDownViewSwitcher.Items.Add(new ListItem("0", View.Icons.ToString("G")));
     }
 }
Beispiel #4
0
 public bool ContainsView(string viewRelativePath)
 {
     return(Views.ContainsKey(viewRelativePath));
 }
        private void ReadProperties()
        {
            _propertyNames  = new string[0];
            _propertyLabels = new string[0];
            _propertyStates = new PXFieldState[0];
            _numFields.Clear();
            _dateFields.Clear();
            _stringFields.Clear();

            var fieldStates =
                PXFieldState.GetFields(this, new[] { typeof(Contact) }, false)
                .Where(s => s.Name.EndsWith("_Attributes") || !s.Name.Contains('_')).ToList();

            fieldStates.AddRange(PXFieldState.GetFields(this, new[] { typeof(Address) }, false)
                                 .Where(state => !state.Name.Contains('_') && !fieldStates.Exists(e => e.Name == state.Name || e.DisplayName == state.DisplayName))
                                 .Select(state => PXFieldState.CreateInstance(state, null, null, null, null, null, null, null, typeof(Address).Name + "__" + state.Name, null, null, null, PXErrorLevel.Undefined, null, null, null, PXUIVisibility.Undefined, null, null, null)));

            var properties = new List <PXFieldState>();

            foreach (var state in fieldStates)
            {
                string fieldName = state.Name.Replace(typeof(Address).Name + "__", string.Empty);

                if (fieldName.EndsWith("_Attributes") ||
                    (state.Visibility != PXUIVisibility.Invisible &&
                     state.Visible && !string.IsNullOrEmpty(state.DisplayName) &&
                     !fieldName.Contains('_') &&
                     !properties.Exists(item => item.Name == fieldName || item.DisplayName == state.DisplayName)))
                {
                    properties.Add(state);

                    if (!string.IsNullOrEmpty(state.ViewName) && !Views.ContainsKey(state.ViewName))
                    {
                        Views.Add(state.ViewName, this.FilteredItems.View);
                    }
                    switch (Type.GetTypeCode(state.DataType))
                    {
                    case TypeCode.Byte:
                    case TypeCode.Int16:
                    case TypeCode.Int32:
                    case TypeCode.Int64:
                    case TypeCode.UInt16:
                    case TypeCode.UInt32:
                    case TypeCode.UInt64:
                    case TypeCode.Single:
                    case TypeCode.Double:
                    case TypeCode.Decimal:
                        _numFields.Add(state.Name);
                        break;

                    case TypeCode.DateTime:
                        _dateFields.Add(state.Name);
                        break;

                    case TypeCode.String:
                    case TypeCode.Char:
                        _stringFields.Add(state.Name);
                        break;
                    }
                }
            }
            _propertyNames  = new string[properties.Count];
            _propertyLabels = new string[properties.Count];
            _propertyStates = new PXFieldState[properties.Count];
            //properties.Sort((fs1, fs2) => String.Compare(String.Concat(fs1.DisplayName, "$", fs1.Name), String.Concat(fs2.DisplayName, "$", fs2.Name)));
            for (int i = 0; i < properties.Count; i++)
            {
                PXFieldState state = properties[i];
                _propertyNames[i]  = state.Name;
                _propertyLabels[i] = state.DisplayName;
                _propertyStates[i] = state;
            }

            MakeEqualLabelsDistinct();
        }
        private void OnGetRelatedNodesByIdCompleted(object sender, ReturnedNodesEventArgs e)
        {
            int count  = 0;
            int length = e.Nodes.Length - 1;

            if (Views.ContainsKey(FocalNodeId))
            {
                CurrentView = Views[FocalNodeId];
            }
            else
            {
                CurrentView = new NavigatorView();

                Views.Add(FocalNodeId, CurrentView);

                SingleDepthNodeRenderer focalNodeRenderer = null;

                foreach (INodeProxy nodeProxy in e.Nodes)
                {
                    if (nodeProxy.Id == FocalNodeId)
                    {
                        if (FocalNode == null)
                        {
                            FocalNode = nodeProxy;

                            focalNodeRenderer = new SingleDepthNodeRenderer(CurrentView, FocalNode, ThemeManagementObject, "Focal");

                            CurrentView.NodeRenderers.Add(focalNodeRenderer.Node.Id, focalNodeRenderer);

                            focalNodeRenderer.NodePositionUpdating += new EventHandler(OnNodePositionUpdating);
                            focalNodeRenderer.NodeDoubleClicked    += new EventHandler <NodeClickedArgs>(OnNodeDoubleClicked);
                        }
                    }
                    else
                    {
                        SingleDepthNodeRenderer nodeRenderer = new SingleDepthNodeRenderer(CurrentView, nodeProxy, ThemeManagementObject, "Default");

                        nodeRenderer.NodeIndex = count;
                        nodeRenderer.NodeCount = length;

                        CurrentView.NodeRenderers.Add(nodeRenderer.Node.Id, nodeRenderer);

                        nodeRenderer.NodePositionUpdating += new EventHandler(OnNodePositionUpdating);
                        nodeRenderer.NodeDoubleClicked    += new EventHandler <NodeClickedArgs>(OnNodeDoubleClicked);

                        count++;
                    }
                }

                if (focalNodeRenderer == null)
                {
                    return;
                }

                foreach (INodeRenderer nodeRenderer in CurrentView.NodeRenderers.Values)
                {
                    foreach (IDescriptorProxy descriptor in nodeRenderer.Node.Descriptors)
                    {
                        if (!CurrentView.RelationshipRenderers.ContainsKey(descriptor.Relationship.Id))
                        {
                            bool relationshipIsPresent = true;

                            foreach (IDescriptorProxy alternateDescriptor in descriptor.Relationship.Descriptors)
                            {
                                if (!CurrentView.NodeRenderers.ContainsKey(alternateDescriptor.Node.Id))
                                {
                                    relationshipIsPresent = false;
                                    break;
                                }
                            }

                            if (relationshipIsPresent)
                            {
                                ImprovedArrow arrow = new ImprovedArrow(CurrentView, descriptor.Relationship);

                                CurrentView.RelationshipRenderers.Add(descriptor.Relationship.Id, arrow);
                            }
                        }
                    }
                }
            }

            RendererNodesEventArgs rendererNodesEventArgs = new RendererNodesEventArgs(CurrentView);

            if (GetCurrentNodesCompleted != null)
            {
                GetCurrentNodesCompleted.Invoke(sender, rendererNodesEventArgs);
            }
        }