Example #1
0
 public bool MoveToPosition(NodePosition position)
 {
     if (position._node != null)
     {
         node = (TreeNode)position._node;
         return(!node.Deleted);
     }
     else
     {
         node = null;
         return(navigator.MoveToPosition(position) && CheckNode());
     }
 }
        void HandleOnEdit(object o, Gtk.EditedArgs e)
        {
            text_render.Editable = false;
            Gtk.TreeIter iter;
            if (!store.GetIterFromString (out iter, e.Path))
                throw new Exception("Error calculating iter for path " + e.Path);

            if (e.NewText == null || e.NewText.Length == 0) {
                return;
            }

            ITreeNavigator nav = new TreeNodeNavigator (this, iter);
            NodePosition pos = nav.CurrentPosition;

            NodeBuilder[] chain = (NodeBuilder[]) store.GetValue (iter, BuilderChainColumn);
            foreach (NodeBuilder b in chain) {
                NodeCommandHandler handler = b.CommandHandler;
                handler.SetCurrentNode (nav);
                handler.RenameItem (e.NewText);
                nav.MoveToPosition (pos);
            }
        }
 internal void NotifyInserted(Gtk.TreeIter it, object dataObject)
 {
     if (callbacks.Count > 0) {
         ArrayList list = callbacks [dataObject] as ArrayList;
         if (list != null) {
             ITreeNavigator nav = new TreeNodeNavigator (this, it);
             NodePosition pos = nav.CurrentPosition;
             foreach (TreeNodeCallback callback in list) {
                 callback (nav);
                 nav.MoveToPosition (pos);
             }
             callbacks.Remove (dataObject);
         }
     }
 }