コード例 #1
0
ファイル: INoteTests.cs プロジェクト: owq/NOTE
 public void TestNote()
 {
     Note note = new Note();
     note.Title = "here";
     note.Content = "we";
     //note.Tags = "go";
     INote iNote = note;
     Note copyNote = new Note(iNote);
     Assert.AreNotSame(note, copyNote);
     Assert.AreEqual(note.Title, copyNote.Title);
     Assert.AreEqual(note.Content, copyNote.Content);
     Assert.AreEqual(note.Tags, copyNote.Tags);
 }
コード例 #2
0
ファイル: Main.cs プロジェクト: owq/NOTE
 public static void Test()
 {
     NotesModel notes = new NotesModel();
     Note n = new Note {
         Title = "Testing",
         Content = "Works"
     };
     //notes.Add(n);
     //notes.SaveToFile();
     notes.LoadFromFile();
     //Note loaded = notes.[0];
     //Console.WriteLine (loaded.Title);
 }
コード例 #3
0
ファイル: INoteTests.cs プロジェクト: owq/NOTE
        public void TestNote2()
        {
            Note note = new Note();
            note.Title = "here";
            note.Content = "we";
            //note.Tags = "go";
            INote iNote = note;
            Note copyNote = new Note(iNote);

            Type noteType = typeof(INote);
            foreach(PropertyInfo pInfo in noteType.GetProperties(System.Reflection.BindingFlags.GetProperty)) {
                object o = pInfo.GetValue (copyNote);
                Assert.AreNotEqual(o, null);
                if (o is string) {
                    Assert.AreEqual(note.Title, (string) o);
                }
            }
        }
コード例 #4
0
ファイル: Tag.cs プロジェクト: owq/NOTE
 public Tag(string name, Note note)
 {
     Name = name;
     Notes = new HashSet<Note> ();
     Notes.Add(note);
 }
コード例 #5
0
ファイル: NotesModel.cs プロジェクト: owq/NOTE
        private void RemoveTagsFrom(Note note, IEnumerable<string> tags)
        {
            foreach (String tagStr in tags) {
                Tag tag = tagDict[tagStr];

                if(tag.Count == 1) {
                    DeleteTag(tag);
                } else {
                    tag.Notes.Remove (note);
                    TagStore.SetValue(tag.TreeIter, (int)TagCols.Count, tag.Count);
                }
            }
        }
コード例 #6
0
ファイル: NotesModel.cs プロジェクト: owq/NOTE
 private void RemoveTagsFrom(Note note)
 {
     RemoveTagsFrom(note, note.Tags);
 }
コード例 #7
0
ファイル: NotesModel.cs プロジェクト: owq/NOTE
        private void AddTagsFrom(Note note, IEnumerable<string> tags, IDictionary<String,Tag> tagDict,
		                         Gtk.ListStore tagStore)
        {
            foreach(String tag in tags) {
                if(!tagDict.ContainsKey(tag)) {
                    tagDict[tag] = new Tag(tag, note);
                } else {
                    //implies that tag has already been created
                    tagDict[tag].Notes.Add(note);
                }
                AddTagToStore(tagDict[tag], tagStore);
            }
        }
コード例 #8
0
ファイル: NotesModel.cs プロジェクト: owq/NOTE
 private void AddTagsFrom(Note note, IEnumerable<string> tags, IDictionary<String,Tag> tagDict)
 {
     AddTagsFrom(note, tags, tagDict, TagStore);
 }
コード例 #9
0
ファイル: NotesModel.cs プロジェクト: owq/NOTE
 private void AddTagsFrom(Note note, IEnumerable<string> tags)
 {
     AddTagsFrom(note, tags, tagDict);
 }
コード例 #10
0
ファイル: NotesModel.cs プロジェクト: owq/NOTE
 private void AddTagsFrom(Note note)
 {
     AddTagsFrom(note, note.Tags);
 }
コード例 #11
0
ファイル: NotesModel.cs プロジェクト: owq/NOTE
 private void AddNoteToStore(Note note, Gtk.ListStore notesStore)
 {
     if (note.TreeIter.Equals (Gtk.TreeIter.Zero)) {
         note.TreeIter = notesStore.AppendValues (note.Title, note);
         Debug.Assert(!note.TreeIter.Equals(Gtk.TreeIter.Zero));
     } else {
         notesStore.SetValue(note.TreeIter, (int)NoteCols.Title, note.Title);
     }
 }
コード例 #12
0
ファイル: NotesModel.cs プロジェクト: owq/NOTE
 private void AddNoteToStore(Note note)
 {
     AddNoteToStore(note,NotesStore);
 }
コード例 #13
0
ファイル: NotesModel.cs プロジェクト: owq/NOTE
        public void Update(Note note, INote newNote)
        {
            note.Title = newNote.Title;
            NotesStore.SetValue(note.TreeIter, (int)NoteCols.Title, note.Title);

            note.Content = newNote.Content;

            //TODO: optimize this later.
            HashSet<string> intersectTags = new HashSet<string> (
                    note.Tags.Intersect(newNote.Tags)
                );

            IEnumerable<string> obsoleteTags = note.Tags.Except(intersectTags);
            IEnumerable<string> newTags = newNote.Tags.Except(intersectTags);

            RemoveTagsFrom(note, obsoleteTags);
            AddTagsFrom(note, newTags);

            note.Tags = newNote.Tags;
            SaveToFile();
        }
コード例 #14
0
ファイル: NotesModel.cs プロジェクト: owq/NOTE
        public void Remove(Note note)
        {
            notes.Remove(note);
            Gtk.TreeIter treeIter = note.TreeIter;
            NotesStore.Remove(ref treeIter);
            RemoveTagsFrom(note);

            //TODO buffering or something?
            SaveToFile();
        }
コード例 #15
0
ファイル: NotesModel.cs プロジェクト: owq/NOTE
 public void Add(Note note)
 {
     notes.Add(note);
     AddNoteToStore(note);
     AddTagsFrom(note);
     //TODO buffering or something?
     SaveToFile();
 }
コード例 #16
0
ファイル: NotesModel.cs プロジェクト: owq/NOTE
 public void Add(INote note)
 {
     Note n = new Note(note);
     Add(n);
 }