Ejemplo n.º 1
0
        void GenerateDefaultTypeName(GType type)
        {
            GComposite comp   = type.ParentComposite;
            string     prefix = comp is GLib || comp.Name.Trim().Length == 0 ? GeoLib.GeoLibUtils.GetLocalizedName(type.GeomType) : comp.Name;

            for (int i = 0; i < 1000000; i++)
            {
                string name = prefix;
                if (i > 0)
                {
                    name += " " + i;
                }
                if (name == comp.Name)
                {
                    continue;
                }
                foreach (GType t in comp.Types)
                {
                    if (t.Name == name)
                    {
                        name = null;
                        break;
                    }
                }
                if (name != null)
                {
                    type.Name = name;
                    return;
                }
            }
        }
Ejemplo n.º 2
0
 private void miStat_Click(object sender, System.EventArgs e)
 {
     try
     {
         if (OnStatistics != null)
         {
             OnStatistics(this, null);
         }
         GComposite  comp = this.SelectedComposite;
         StatVisitor sv   = new StatVisitor();
         comp.Visit(sv);
         if (comp is GLib)
         {
             app.ShowProperties(new LibStatProps(sv.Stat));
         }
         else
         {
             app.ShowProperties(new StatProps(sv.Stat));
         }
     }
     catch (Exception ex)
     {
         Log.Exception(ex);
     }
 }
Ejemplo n.º 3
0
        private void tvTypes_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            if (draggedNode != null)
            {
                TreeNode node = tvTypes.GetNodeAt(e.X, e.Y);
                if (CanDrop(node))
                {
                    try
                    {
                        GType      draggedType = (GType)draggedNode.Tag;
                        GComposite comp        = (GComposite)node.Tag;
                        draggedType.Move(comp);
//						if(lib.HasDb) using(Context context=lib.GetContext()) draggedType.Save(context);
                        RemoveNode(draggedNode);
                        AddNode(node, draggedType);
                        if (OnTypeMoved != null)
                        {
                            OnTypeMoved(this, new TypeEventArgs(draggedType));
                        }
                    }
                    catch (Exception ex)
                    {
                        Log.Exception(ex);
                    }
                    finally
                    {
                    }
                }
                EndDragging();
            }
        }
Ejemplo n.º 4
0
 private void tvTypes_AfterCheck(object sender, System.Windows.Forms.TreeViewEventArgs e)
 {
     if (!updating)
     {
         GComposite comp = e.Node.Tag as GComposite;
         AppLayer.Update(comp.Id, e.Node.Checked);
         if (OnCompositeChecked != null)
         {
             OnCompositeChecked(this, new CompositeEventArgs(comp));
         }
         app.CheckRepaint(comp);
     }
 }
Ejemplo n.º 5
0
        void BuildTypesTree(TreeNode node)
        {
            GComposite comp = node.Tag as GComposite;

            if (comp.Types != null)
            {
                foreach (GType type in comp.Types)
                {
                    TreeNode node1 = AddNode(node, type);
                    BuildTypesTree(node1);
                }
            }
        }
Ejemplo n.º 6
0
        public void UpdateTypesTree(TreeNode node)
        {
            GComposite comp = node.Tag as GComposite;
            bool       inc  = AppLayer.Includes(comp.Id);

            if (node.Checked != inc)
            {
                node.Checked = inc;
            }
            foreach (TreeNode childNode in node.Nodes)
            {
                UpdateTypesTree(childNode);
            }
        }
Ejemplo n.º 7
0
        void AddType()
        {
            TreeNode selNode = this.SelectedNode;

            if (selNode == null)
            {
                return;
            }
            GComposite comp = this.SelectedComposite;
            GType      type = null;

            if (comp is GLib)
            {
                TypeForm form = new TypeForm();
                if (form.ShowDialog() == DialogResult.OK && form.geomType is GeomType)
                {
                    GeomType gt = (GeomType)form.geomType;
                    type = new GType(comp as GLib, gt);
                }
            }
            else if (comp is GType)
            {
                GType parType = (GType)comp;
                type = new GType(parType);
            }
            if (type != null)
            {
                GenerateDefaultTypeName(type);
                if (app.GetControlsAttr(ControlsAttr.AutoSave))
                {
                    using (Context context = Lib.GetContext()) type.Save(context);
                }
                AppLayer.Add(type.Id);
                TreeNode node = AddNode(selNode, type);
                this.tvTypes.SelectedNode = node;
                if (OnTypeAdded != null)
                {
                    OnTypeAdded(this, new TypeEventArgs(type));
                }
            }
        }
Ejemplo n.º 8
0
 public void UpdateNodeText(GComposite comp)
 {
     if (treeNodes.ContainsKey(comp.Id))
     {
         TreeNode node = null;
         if (comp is GType)
         {
             node = treeNodes[comp.Id] as TreeNode;
         }
         else if (comp is GLib && tvTypes.Nodes.Count > 0)
         {
             node = tvTypes.Nodes[0];
         }
         if (node != null)
         {
             if (node.Text != comp.Name)
             {
                 node.Text = comp.Name;
             }
         }
     }
 }
Ejemplo n.º 9
0
        private void tvTypes_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            TreeNode node = tvTypes.GetNodeAt(e.X, e.Y);

            if (draggedNode != null)
            {
                if (e.Button == MouseButtons.Left)
                {
                    base.Cursor = CanDrop(node) ? Cursors.Hand : Cursors.No;
                }
                else
                {
                    EndDragging();
                }
            }
            else
            {
                if (e.Button == MouseButtons.Left)
                {
                    draggedNode = node;
                }
            }
            GComposite comp = null;

            if (e.Button == MouseButtons.None && node != null)
            {
                comp       = (GComposite)node.Tag;
                app.Status = comp.Path;
            }
            if (mouseOverComp != comp)
            {
                mouseOverComp = comp;
                if (OnMouseOverComposite != null)
                {
                    OnMouseOverComposite(this, new CompositeEventArgs(mouseOverComp));
                }
            }
        }
Ejemplo n.º 10
0
        bool CanDrop(TreeNode node)
        {
            if (draggedNode == null || node == null || draggedNode == node)
            {
                return(false);
            }
            GType      draggedType = (GType)draggedNode.Tag;
            GComposite comp        = (GComposite)node.Tag;

            if (draggedType.ParentComposite == comp)
            {
                return(false);
            }
            if (comp is GLib)
            {
                return(true);
            }
            if (comp is GType)
            {
                return(((GType)comp).GeomType == draggedType.GeomType);
            }
            return(false);
        }
Ejemplo n.º 11
0
 public CompositeEventArgs(GComposite comp)
 {
     this.comp = comp;
 }
Ejemplo n.º 12
0
 public void ShowSearch(GComposite comp, string str)
 {
     searchForm.ucSearch.SetSearchCondition(comp as GType, str);
     ShowDockForm(searchForm);
 }
Ejemplo n.º 13
0
 private void CheckCompositeNameChanged(GComposite comp)
 {
     mainForm.TypesUserControl.UpdateNodeText(comp);
 }