Beispiel #1
0
        /// <summary>
        /// 書き込みを削除する。
        /// </summary>
        /// <param name="note">削除する書き込み</param>
        private void RemoveNote(PhotoChatNote note)
        {
            try
            {
                if (note == null)
                {
                    return;
                }

                Removal removal = new Removal(
                    form.Client.UserName, form.Client.GetNewSerialNumber(),
                    note.PhotoName, note.ID, note.SerialNumber);
                form.NewData(removal);
                UpdateImageBox();
                imageBox.Invalidate();
                Update();
            }
            catch (Exception e)
            {
                PhotoChat.WriteErrorLog(e.ToString());
            }
        }
Beispiel #2
0
        /// <summary>
        /// データ文字列から書き込みデータのインスタンスを作成する。
        /// データが不適切なものであったときはnullを返す。
        /// </summary>
        /// <param name="type">書き込みのタイプ</param>
        /// <param name="dataString">データ文字列</param>
        /// <returns>作成したインスタンス。作成できなかったときはnullを返す。</returns>
        public static PhotoChatNote CreateInstance(int type, string dataString)
        {
            try
            {
                PhotoChatNote note = null;
                switch (type)
                {
                case TypeStroke:
                    note = new Stroke(dataString);
                    break;

                case TypeRemoval:
                    note = new Removal(dataString);
                    break;

                case TypeHyperlink:
                    note = new Hyperlink(dataString);
                    break;

                case TypeTag:
                    note = new Tag(dataString);
                    break;

                case TypeText:
                    note = new Text(dataString);
                    break;

                case TypeSound:
                    note = new Sound(dataString);
                    break;
                }
                return(note);
            }
            catch (Exception e)
            {
                PhotoChat.WriteErrorLog(e.ToString());
                return(null);
            }
        }
Beispiel #3
0
        /// <summary>
        /// 書き込みリストへの追加
        /// </summary>
        /// <param name="note">追加する書き込みオブジェクト</param>
        public void AddNote(PhotoChatNote note)
        {
            try
            {
                if (note == null)
                {
                    return;
                }

                lock (noteList)
                {
                    // noteListへの追加
                    InsertInSortedList(note, noteList);
                }

                // 書き込みの種類に応じた処理
                switch (note.Type)
                {
                case PhotoChatNote.TypeRemoval:
                    Removal removal = (Removal)note;
                    RemoveNote(removal.TargetID, removal.TargetSerialNumber);
                    break;

                case PhotoChatNote.TypeTag:
                    AddTag((Tag)note);
                    break;

                default:
                    noteCount++;
                    Grouping(note);
                    break;
                }
            }
            catch (Exception e)
            {
                PhotoChat.WriteErrorLog(e.ToString());
            }
        }