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; } } }
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); } }
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(); } }
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); } }
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); } } }
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); } }
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)); } } }
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; } } } }
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)); } } }
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); }
public CompositeEventArgs(GComposite comp) { this.comp = comp; }
public void ShowSearch(GComposite comp, string str) { searchForm.ucSearch.SetSearchCondition(comp as GType, str); ShowDockForm(searchForm); }
private void CheckCompositeNameChanged(GComposite comp) { mainForm.TypesUserControl.UpdateNodeText(comp); }