/// <summary>
        /// directory追加
        /// </summary>
        /// <param name="sender">Sender.</param>
        partial void AddDirectoryClick(NSObject sender)
        {
            int row = (int)UserDbDirOutline.SelectedRow;

            if (row > 0)
            {
                TreeViewItem item = (TreeViewItem)UserDbDirOutline.ItemAtRow(row);
                if (item.isDir)
                {
                    if (!Directory.Exists(item.FullPath + "/NewDir"))
                    {
                        Directory.CreateDirectory(item.FullPath + "/NewDir");
                    }
                }
                else
                {
                    string path = (new FileInfo(item.FullPath)).DirectoryName;
                    if (!Directory.Exists(path + "/NewDir"))
                    {
                        Directory.CreateDirectory(path + "/NewDir");
                    }
                }
            }
            else
            {
                if (!Directory.Exists(Util.root + "/data/NewDir"))
                {
                    Directory.CreateDirectory(Util.root + "/data/NewDir");
                }
            }

            ReSetDbTree();
        }
        /// <summary>
        /// directory削除
        /// </summary>
        /// <param name="sender">Sender.</param>
        partial void DeleteDirectoryClick(NSObject sender)
        {
            int row = (int)UserDbDirOutline.SelectedRow;

            if (row > 0)
            {
                TreeViewItem item = (TreeViewItem)UserDbDirOutline.ItemAtRow(row);
                if (item.isDir && Directory.Exists(item.FullPath))
                {
                    Directory.Delete(item.FullPath, true);
                }
            }
            ReSetDbTree();
        }
        /// <summary>
        /// ツリー再構築
        /// </summary>
        public void ReSetDbTree()
        {
            UserDbTreeDataSource dataSource = new UserDbTreeDataSource();
            List <TreeViewItem>  root       = new List <TreeViewItem>();
            TreeViewItem         rootNode   = UserDirTree.CreateDirectoryNode(new DirectoryInfo(Util.root + "/data"));

            root.Add(rootNode);
            dataSource.list             = root;
            UserDbDirOutline.DataSource = dataSource;
            UserDbDirOutline.ExpandItem(rootNode);
            UserTableDataSource data = (UserTableDataSource)UserTable.DataSource;

            data.dataList.Clear();
            UserTable.ReloadData();
        }
        /// <summary>
        /// 左側クリック
        /// </summary>
        /// <param name="sender">Sender.</param>
        partial void UserDbDirClick(NSObject sender)
        {
            int index = (int)UserDbDirOutline.SelectedRow;

            if (index == -1)
            {
                // 右クリック
                return;
            }
            TreeViewItem item = (TreeViewItem)UserDbDirOutline.ItemAtRow(index);

            // ここtodoね
            if (item.isDir)
            {
                CommonInstance.getInstance().SelectedDirectoryName     = item.fileName;
                CommonInstance.getInstance().SelectedDirectoryFullPath = item.FullPath;
                return;
            }
            else
            {
                CommonInstance.getInstance().SelectedDirectoryFullPath = item.FullPath;
                CommonInstance.getInstance().SelectedFileName          = item.fileName;
                CommonInstance.getInstance().SelectedUserData          = item.udata;
            }

            UserTable.AllowsColumnSelection = true;
            UserTableDataSource DataSource = new UserTableDataSource();

            DataSource.dataList.Add(new UserTableData()
            {
                name = item.udata.name,
                date = new DateTime(item.udata.birth_year,
                                    item.udata.birth_month,
                                    item.udata.birth_day,
                                    item.udata.birth_hour,
                                    item.udata.birth_minute,
                                    item.udata.birth_second),
                memo = item.udata.memo
            });

            UserTable.DataSource = DataSource;
            UserTable.Delegate   = new UserTableDelegate(DataSource);
            UserTable.ReloadData();
//                        ReSetDbTree();
        }
        void ReleaseDesignerOutlets()
        {
            if (Event1Area != null)
            {
                Event1Area.Dispose();
                Event1Area = null;
            }

            if (Event2Area != null)
            {
                Event2Area.Dispose();
                Event2Area = null;
            }

            if (memoArea != null)
            {
                memoArea.Dispose();
                memoArea = null;
            }

            if (User1Area != null)
            {
                User1Area.Dispose();
                User1Area = null;
            }

            if (User2Area != null)
            {
                User2Area.Dispose();
                User2Area = null;
            }

            if (UserDbDirOutline != null)
            {
                UserDbDirOutline.Dispose();
                UserDbDirOutline = null;
            }

            if (UserTable != null)
            {
                UserTable.Dispose();
                UserTable = null;
            }
        }
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            UserDbTreeDataSource dataSource = new UserDbTreeDataSource();
            List <TreeViewItem>  root       = new List <TreeViewItem>();
            TreeViewItem         rootNode   = UserDirTree.CreateDirectoryNode(new DirectoryInfo(Util.root + "/data"));

            root.Add(rootNode);
            dataSource.list = root;
            UserDbDirOutline.ScrollColumnToVisible(0);
            UserDbDirOutline.DataSource = dataSource;
            UserDbDirOutline.Delegate   = new UserDbTreeDelegate(dataSource);
            UserDbDirOutline.ExpandItem(rootNode);

            NSMenu menu = new NSMenu();

            menu.AutoEnablesItems = true;
            EventHandler addDirHandler = new EventHandler((object sender, EventArgs e) =>
            {
                AddDirectoryClick((NSObject)sender);
            });
            NSMenuItem addDirmenuItem = new NSMenuItem("ディレクトリ追加", addDirHandler);

            addDirmenuItem.Enabled = true;

            menu.AddItem(addDirmenuItem);

            EventHandler modifyDirHandler = new EventHandler((object sender, EventArgs e) =>
            {
                int row           = (int)UserDbDirOutline.SelectedRow;
                TreeViewItem item = (TreeViewItem)UserDbDirOutline.ItemAtRow(row);
                if (item.isDir)
                {
                    PerformSegue("modifyDir", this);
                }
            });
            NSMenuItem modifyDirmenuItem = new NSMenuItem("ディレクトリ名変更", modifyDirHandler);

            modifyDirmenuItem.Enabled = true;
            menu.AddItem(modifyDirmenuItem);

            EventHandler deleteDirHandler = new EventHandler((object sender, EventArgs e) =>
            {
                DeleteDirectoryClick((NSObject)sender);
            });
            NSMenuItem deleteDirmenuItem = new NSMenuItem("ディレクトリ削除", deleteDirHandler);

            deleteDirmenuItem.Enabled = true;

            menu.AddItem(deleteDirmenuItem);

            UserDbDirOutline.Menu = menu;

            CommonInstance.getInstance().SelectedDirectoryName     = "data";
            CommonInstance.getInstance().SelectedDirectoryFullPath = Util.root + "/data";

            ViewController vc = CommonInstance.getInstance().controller;

            User1Area.StringValue = vc.udata1.name + "\n" +
                                    String.Format("{0:0000}/{1:00}/{2:00}-{3:00}:{4:00}:{5:00}",
                                                  vc.udata1.time.Year,
                                                  vc.udata1.time.Month,
                                                  vc.udata1.time.Day,
                                                  vc.udata1.time.Hour,
                                                  vc.udata1.time.Minute,
                                                  vc.udata1.time.Second
                                                  );
            User2Area.StringValue = vc.udata2.name + "\n" +
                                    String.Format("{0:0000}/{1:00}/{2:00}-{3:00}:{4:00}:{5:00}",
                                                  vc.udata2.time.Year,
                                                  vc.udata2.time.Month,
                                                  vc.udata2.time.Day,
                                                  vc.udata2.time.Hour,
                                                  vc.udata2.time.Minute,
                                                  vc.udata2.time.Second
                                                  );
            Event1Area.StringValue = vc.edata1.name + "\n" +
                                     String.Format("{0:0000}/{1:00}/{2:00}-{3:00}:{4:00}:{5:00}",
                                                   vc.edata1.time.Year,
                                                   vc.edata1.time.Month,
                                                   vc.edata1.time.Day,
                                                   vc.edata1.time.Hour,
                                                   vc.edata1.time.Minute,
                                                   vc.edata1.time.Second
                                                   );
            Event2Area.StringValue = vc.edata2.name + "\n" +
                                     String.Format("{0:0000}/{1:00}/{2:00}-{3:00}:{4:00}:{5:00}",
                                                   vc.edata2.time.Year,
                                                   vc.edata2.time.Month,
                                                   vc.edata2.time.Day,
                                                   vc.edata2.time.Hour,
                                                   vc.edata2.time.Minute,
                                                   vc.edata2.time.Second
                                                   );
        }