/// <summary>
        /// SQL接続(destroy)
        /// </summary>
        private void destroy(DBManager.Contents.data contents)
        {
            string strSQL = "delete from contents_list"
                            + " where id = '" + contents.id + "' ";

            sqliteAccess.update(strSQL);
        }
        /// <summary>
        /// SQL接続(update)
        /// </summary>
        private void update(DBManager.Contents.data contents)
        {
            string strSQL = "update contents_list set "
                            + "data_type = " + contents.data_type
                            + ", contents = '" + contents.contents + "'"
                            + ", show_stickies = " + ((contents.show_stickies == true) ? 1 : 0)
                            + ", backcolor_stickies = '" + contents.backcolor_stickies + "'"
                            + ", point_stickies = '" + contents.point_stickies + "'"
                            + ", time_trigger = " + (contents.time_trigger == true ? 1 : 0)
                            + ", time_trigger_type = " + contents.time_trigger_type
                            + ", time_trigger_datetime = datetime('" + contents.time_trigger_datetime.ToString("yyyy-MM-dd HH:mm:ss") + "')"
                            + ", time_trigger_dayofweek = " + contents.time_trigger_dayofweek
                            + ", attach_trigger = " + (contents.attach_trigger == true ? 1 : 0)
                            + ", attach_trigger_title = '" + contents.attach_trigger_title + "'"
                            + ", display_backimage_stickies = " + (contents.display_backimage_stickies == true ? 1 : 0)
                            + ", display_backimage_type_stickies = " + contents.display_backimage_type_stickies
                            + ", display_backimage_path_stickies = '" + contents.display_backimage_path_stickies + "'"
                            + ", display_backimage_region_stickies = " + (contents.display_backimage_region_stickies == true ? 1 : 0)
                            + ", display_font_stickies = ''"
                            + ", task_to_calendar = " + ((contents.task_to_calendar == true) ? 1 : 0)
                            + ", task_trigger_type = " + contents.task_trigger_type
                            + ", task_trigger_datetime = datetime('" + contents.task_trigger_datetime.ToString("yyyy-MM-dd HH:mm:ss") + "')"
                            + ", task_trigger_dayofweek = " + contents.task_trigger_dayofweek
                            + ", task_trigger_span = " + contents.task_trigger_span
                            + ", task_range = " + ((contents.task_range == true) ? 1 : 0)
                            + ", task_range_startdate = datetime('" + contents.task_range_startdate.ToString("yyyy-MM-dd 00:00:00") + "')"
                            + ", task_range_enddate = datetime('" + contents.task_range_enddate.ToString("yyyy-MM-dd 00:00:00") + "')"
                            + ", task_type = " + contents.task_type
                            + ", alpha_stickies = " + contents.alpha_stickies
                            + " where id = '" + contents.id + "' ";

            sqliteAccess.update(strSQL);
        }
        private void contentsSaveAndDisplay()
        {
            DBManager.Contents.data contents = new DBManager.Contents.data();

            // 新規登録
            if (bNewEntry)
            {
                setToContents(contents);
                insert(contents);
                contentsList.Add(contents);
            }
            // 更新
            else
            {
                lock (contentsList)
                {
                    // 対象のコンテンツ一覧から検索取得
                    DBManager.Contents.data data = contentsList.SelectId(id);
                    if (data != null)
                    {
                        contents = data;
                    }
                    setToContents(contents);
                }
                update(contents);
            }
            resetInputFields();

            // オーナフォーム(カレンダ)再表示
            parentForm.setCalendar();
        }
        /// <summary>
        /// 編集領域非活性化(キャンセル、削除、起動直後など)
        /// </summary>
        private void resetInputFields()
        {
            btnEntry.Enabled = false;

            Font font = new Font(textBox1.Font, this.Font.Style);

            textBox1.Font    = font;
            textBox1.Enabled = false;
            textBox1.Text    = "";

            selectedData = new DBManager.Contents.data();

            ucTimeTrigger.init();
            ucRangeTrigger.init();
            ucCommandTrigger.init();

            ucTimeTrigger.DayDivide   = false;
            cmbDataType.SelectedIndex = -1;

            cmbDataType.Enabled      = false;
            cbSendStickies.Enabled   = false;
            ucTimeTrigger.Enabled    = false;
            ucRangeTrigger.Enabled   = false;
            ucCommandTrigger.Enabled = false;
            label5.Visible           = false;

            panel1.Height   = 48;
            textBox1.Top    = panel3.Top + panel1.Height;
            textBox1.Height = panel3.Height - panel1.Height;
        }
        /// <summary>
        /// 編集領域初期化(新規作成)
        /// </summary>
        /// <param name="data"></param>
        private void initInputFields()
        {
            btnEntry.Enabled = true;

            Font font = new Font(textBox1.Font, this.Font.Style);

            textBox1.Font          = font;
            textBox1.Enabled       = true;
            cmbDataType.Enabled    = true;
            cbSendStickies.Enabled = true;
            label5.Visible         = false;

            selectedData = new DBManager.Contents.data();

            bNewEntry                 = true;
            id                        = -1;
            textBox1.Text             = "";
            cmbDataType.SelectedIndex = 0;
            cbSendStickies.Checked    = false;
            ucTimeTrigger.init();
            ucRangeTrigger.init();
            ucCommandTrigger.init();
            ucTimeTrigger.DayDivide   = false;
            ucTimeTrigger.TriggerType = 2;
            ucTimeTrigger.Date        = selectedDate;
            ucRangeTrigger.StartDate  = selectedDate;
            ucRangeTrigger.EndDate    = selectedDate;

            this.ActiveControl = textBox1;
        }
        /// <summary>
        /// SQL接続(unfinished)
        /// </summary>
        private void unfinished(DBManager.Contents.data contents)
        {
            string strSQL = "update contents_list set "
                            + "effective = 1"
                            + " where id = '" + contents.id + "' ";

            sqliteAccess.update(strSQL);
        }
        private void contentsDeleteAndDisplay()
        {
            DBManager.Contents.data contents = new DBManager.Contents.data();
            lock (contentsList)
            {
                // 対象のコンテンツ一覧から検索取得
                DBManager.Contents.data data = contentsList.SelectId(id);
                if (data != null)
                {
                    contents = data;
                }
            }

            destroy(contents);
            contentsList.Remove(contents);
            resetInputFields();

            // オーナフォーム(カレンダ)再表示
            parentForm.setCalendar();
        }
Beispiel #8
0
        /// <summary>
        /// 各種データ読込
        /// </summary>
        private void readContentsData()
        {
            // SELECT文の作成
            string    strSQLCheckBox = "";
            ArrayList exprList       = new ArrayList();

            if (cbSchedule.Checked == true)
            {
                exprList.Add(0);
            }
            if (cbTodo.Checked == true)
            {
                exprList.Add(1);
            }
            if (cbMemo.Checked == true)
            {
                exprList.Add(2);
            }
            if (cbSticky.Checked == true)
            {
                exprList.Add(3);
            }
            if (cbAlarm.Checked == true)
            {
                exprList.Add(4);
            }

            string strSQL = "select * from contents_list ";

            strSQL = strSQL + "where data_type in (";
            foreach (int type in exprList)
            {
                if (strSQLCheckBox.Equals("") == false)
                {
                    strSQLCheckBox = strSQLCheckBox + ", ";
                }
                strSQLCheckBox = strSQLCheckBox + type.ToString();
            }
            strSQL = strSQL + strSQLCheckBox;
            strSQL = strSQL + ") and";

            if (rbComplete.Checked == true)
            {
                strSQL = strSQL + " contents like '%" + cmbQueryString.Text + "%'";
            }
            else
            {
                ArrayList queryList = new ArrayList();
                char[]    sep       = { ' ' };
                string[]  query     = cmbQueryString.Text.Split(sep);
                for (int i = 0; i < query.Length; i++)
                {
                    if (i == 0)
                    {
                        strSQL = strSQL + " (";
                    }
                    else
                    {
                        if (rbAnd.Checked == true)
                        {
                            strSQL = strSQL + " and";
                        }
                        else if (rbOr.Checked == true)
                        {
                            strSQL = strSQL + " or";
                        }
                    }
                    strSQL = strSQL + " contents like '%" + query[i] + "%'";
                }
                strSQL = strSQL + ")";
            }

            SQLiteDataReader result = sqliteAccess.select(strSQL);

            while (result.Read())
            {
                DBManager.Contents.data data = new DBManager.Contents.data();

                data.id                 = result.GetInt32((Int32)DBManager.Contents.enum_data.id);
                data.effective          = result.GetBoolean((Int32)DBManager.Contents.enum_data.effective);
                data.data_type          = result.GetInt32((Int32)DBManager.Contents.enum_data.data_type);
                data.date_time          = result.GetDateTime((Int32)DBManager.Contents.enum_data.date_time);
                data.contents           = result.GetString((Int32)DBManager.Contents.enum_data.contents);
                data.show_stickies      = result.GetBoolean((Int32)DBManager.Contents.enum_data.show_stickies);
                data.backcolor_stickies = result.GetString((Int32)DBManager.Contents.enum_data.backcolor_stickies);
                data.point_stickies     = result.GetString((Int32)DBManager.Contents.enum_data.point_stickies);
                data.time_trigger       = result.GetBoolean((Int32)DBManager.Contents.enum_data.time_trigger);
                data.time_trigger_type  = result.GetInt32((Int32)DBManager.Contents.enum_data.time_trigger_type);
                if (data.time_trigger == true)
                {
                    data.time_trigger_datetime = result.GetDateTime((Int32)DBManager.Contents.enum_data.time_trigger_datetime);
                }
                data.time_trigger_dayofweek = result.GetInt32((Int32)DBManager.Contents.enum_data.time_trigger_dayofweek);
                data.attach_trigger         = result.GetBoolean((Int32)DBManager.Contents.enum_data.attach_trigger);
                if (data.attach_trigger == true)
                {
                    data.attach_trigger_title = result.GetString((Int32)DBManager.Contents.enum_data.attach_trigger_title);
                }
                data.display_backimage_stickies      = result.GetBoolean((Int32)DBManager.Contents.enum_data.display_backimage_stickies);
                data.display_backimage_type_stickies = result.GetInt32((Int32)DBManager.Contents.enum_data.display_backimage_type_stickies);
                if (data.display_backimage_stickies == true)
                {
                    data.display_backimage_path_stickies = result.GetString((Int32)DBManager.Contents.enum_data.display_backimage_path_stickies);
                }
                data.display_backimage_region_stickies = result.GetBoolean((Int32)DBManager.Contents.enum_data.display_backimage_region_stickies);
                data.alpha_stickies = result.GetInt32((Int32)DBManager.Contents.enum_data.alpha_stickies);

                object objFontSerializeble = result.GetValue((Int32)DBManager.Contents.enum_data.display_font_stickies);
                if (objFontSerializeble != null)
                {
                    string fontSerializeble = objFontSerializeble.ToString();
                    if (!fontSerializeble.Trim().Equals(""))
                    {
                        FontConverter fc = new FontConverter();
                        data.display_font_stickies = (Font)fc.ConvertFromString(fontSerializeble);
                    }
                    else
                    {
                        data.display_font_stickies = this.Font;
                    }
                }
                else
                {
                    data.display_font_stickies = this.Font;
                }

                // データ格納
                contentsList.Add(data);

                // リストビューへデータ移行
                string[] queryResult =
                {
                    (string)dataType[(int)data.data_type]
                    , data.date_time.ToString()
                    , data.contents
                };
                ListViewItem lvi = new ListViewItem(queryResult);
                lvi.ToolTipText = data.contents;
                lvi.Tag         = data.id.ToString();
                listView1.Items.Add(lvi);
            }
            // リーダクローズ
            sqliteAccess.readerClose();
        }
        /// <summary>
        /// SQL接続(insert)
        /// </summary>
        private void insert(DBManager.Contents.data contents)
        {
            string strSQL = "insert into contents_list ("
                            + "data_type"
                            + ", date_time"
                            + ", contents"
                            + ", show_stickies"
                            + ", backcolor_stickies"
                            + ", point_stickies"
                            + ", time_trigger"
                            + ", time_trigger_type"
                            + ", time_trigger_datetime"
                            + ", time_trigger_dayofweek"
                            + ", attach_trigger"
                            + ", attach_trigger_title"
                            + ", display_backimage_stickies"
                            + ", display_backimage_type_stickies"
                            + ", display_backimage_path_stickies"
                            + ", display_backimage_region_stickies"
                            + ", display_font_stickies"
                            + ", task_to_calendar"
                            + ", task_trigger_type"
                            + ", task_trigger_datetime"
                            + ", task_trigger_dayofweek"
                            + ", task_trigger_span"
                            + ", task_range"
                            + ", task_range_startdate"
                            + ", task_range_enddate"
                            + ", task_type"
                            + ", alpha_stickies"
                            + ") values ("
                            + contents.data_type
                            + ", datetime('" + contents.date_time.ToString("yyyy-MM-dd 00:00:00") + "')"
                            + ", '" + contents.contents + "'"
                            + ", " + ((contents.show_stickies == true) ? 1 : 0)
                            + ", '" + contents.backcolor_stickies + "'"
                            + ", '" + contents.point_stickies + "'"
                            + ", " + (contents.time_trigger == true ? 1 : 0)
                            + ", " + contents.time_trigger_type
                            + ", datetime('" + contents.time_trigger_datetime.ToString("yyyy-MM-dd HH:mm:ss") + "')"
                            + ", " + contents.time_trigger_dayofweek
                            + ", " + (contents.attach_trigger == true ? 1 : 0)
                            + ", '" + contents.attach_trigger_title + "'"
                            + ", " + (contents.display_backimage_stickies == true ? 1 : 0)
                            + ", " + contents.display_backimage_type_stickies
                            + ", '" + contents.display_backimage_path_stickies + "'"
                            + ", " + (contents.display_backimage_region_stickies == true ? 1 : 0)
                            + ", ''"
                            + ", " + ((contents.task_to_calendar == true) ? 1 : 0)
                            + ", " + contents.task_trigger_type
                            + ", datetime('" + contents.task_trigger_datetime.ToString("yyyy-MM-dd HH:mm:ss") + "')"
                            + ", " + contents.task_trigger_dayofweek
                            + ", " + contents.task_trigger_span
                            + ", " + ((contents.task_range == true) ? 1 : 0)
                            + ", datetime('" + contents.task_range_startdate.ToString("yyyy-MM-dd 00:00:00") + "')"
                            + ", datetime('" + contents.task_range_enddate.ToString("yyyy-MM-dd 00:00:00") + "')"
                            + ", " + contents.task_type
                            + ", " + contents.alpha_stickies + ""
                            + ")";

            contents.id = sqliteAccess.insert(strSQL, "contents_list");
        }
        /// <summary>
        /// コンテンツへ保存
        /// </summary>
        /// <param name="contents"></param>
        private void setToContents(DBManager.Contents.data contents)
        {
            contents.data_type = int.Parse(dataType[cmbDataType.SelectedItem.ToString()].ToString());
            contents.date_time = selectedDate;
            contents.contents  = textBox1.Text;
            // 「付箋送り」チェックボックスの制御
            if (contents.data_type != 4)
            {
                contents.show_stickies = cbSendStickies.Checked;
            }
            else
            {
                // アラームのときだけカレンダ表示可否のチェックボックスとなる
                contents.task_to_calendar = cbSendStickies.Checked;
            }
            contents.task_trigger_type = ucTimeTrigger.TriggerType;

            // contents.task_trigger_datetime に設定
            contents.task_trigger_dayofweek = ucTimeTrigger.DayOfWeek;
            DateTime tempDate = ucTimeTrigger.Date;

            // スケジュールまたはアラームの場合対象日時の正当性チェック&自動再定義
            if (contents.data_type == 0 || contents.data_type == 4)
            {
                // タスク種別ごとの処理
                switch (contents.task_trigger_type)
                {
                case 0:     // 日付指定
                case 1:     // 毎時
                case 2:     // 毎日
                case 4:     // 毎月
                    if (contents.task_range == true)
                    {
                        if (tempDate < contents.task_range_startdate)
                        {
                            tempDate = contents.task_range_startdate;
                        }
                    }
                    break;

                case 3:     // 毎週
                    if (contents.task_range == true)
                    {
                        if (tempDate < contents.task_range_startdate)
                        {
                            tempDate = contents.task_range_startdate;
                        }
                    }
                    while (true)
                    {
                        if ((int)dayOfWeekToNumber[tempDate.DayOfWeek] == contents.task_trigger_dayofweek)
                        {
                            if ((contents.task_range == false && tempDate >= DateTime.Now) ||
                                (contents.task_range == true && tempDate >= contents.task_range_startdate))
                            {
                                break;
                            }
                        }
                        tempDate = tempDate.AddDays(1);
                    }
                    break;
                }
            }
#if false
            if (contents.task_trigger_type == 3 &&
                ((contents.task_range == false && tempDate < DateTime.Now) ||
                 (contents.task_range == true && tempDate < contents.task_range_startdate)))
            {
                while (true)
                {
                    if ((int)dayOfWeekToNumber[tempDate.DayOfWeek] == contents.task_trigger_dayofweek)
                    {
                        if ((contents.task_range == false && tempDate >= DateTime.Now) ||
                            (contents.task_range == true && tempDate >= contents.task_range_startdate))
                        {
                            break;
                        }
                    }
                    tempDate = tempDate.AddDays(1);
                }
            }
#endif
            contents.task_trigger_datetime = DateTime.Parse(tempDate.ToShortDateString() + " " + ucTimeTrigger.Time.ToShortTimeString());
            // 指定日時が現在日時より前なら
            if (contents.task_trigger_datetime.CompareTo(DateTime.Now) <= 0)
            {
                contents.task_trigger_datetime.AddDays(7);
            }
            contents.temp_task_trigger_datetime = contents.task_trigger_datetime;

            contents.task_trigger_span = ucTimeTrigger.Span;
            contents.setNextSpan();
            contents.task_range           = cbRange.Checked;
            contents.task_range_startdate = ucRangeTrigger.StartDate;
            contents.task_range_enddate   = ucRangeTrigger.EndDate;
            contents.task_type            = ucCommandTrigger.CommandType;
        }
Beispiel #11
0
        /// <summary>
        /// ダイアログ表示
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public bool showDialog(ref DBManager.Contents.data data)
        {
            stickyData              = data;
            lblFilename.Text        = data.display_backimage_path_stickies;
            lblAlpha.Text           = data.alpha_stickies.ToString() + "%";
            tbAlpha.Value           = data.alpha_stickies;
            cmbLayout.SelectedIndex = data.display_backimage_type_stickies;
            string[] rgb = data.backcolor_stickies.Split(',');
            lblColor.BackColor = Color.FromArgb(int.Parse(rgb[0]), int.Parse(rgb[1]), int.Parse(rgb[2]));
            cbRegion.Checked   = data.display_backimage_region_stickies;

            cbTimeTrigger.Checked = data.time_trigger;
            uttTimeTrigger.init();
            uttTimeTrigger.DayDivide = true;
            if (data.time_trigger == true)
            {
                uttTimeTrigger.Visible     = true;
                uatAttachTrigger.Visible   = false;
                uatSnapWindow.Visible      = false;
                uttTimeTrigger.TriggerType = stickyData.time_trigger_type;
                uttTimeTrigger.Date        = stickyData.time_trigger_datetime;
                uttTimeTrigger.Time        = stickyData.time_trigger_datetime;
                uttTimeTrigger.DayOfWeek   = stickyData.time_trigger_dayofweek;
            }
            else
            {
                uttTimeTrigger.TriggerType = 0;
                uttTimeTrigger.Date        = DateTime.Now;
                uttTimeTrigger.Time        = DateTime.Now;
                uttTimeTrigger.DayOfWeek   = 0;
            }

            cbAttachTrigger.Checked = data.attach_trigger;
            if (data.attach_trigger == true)
            {
                uttTimeTrigger.Visible         = false;
                uatSnapWindow.Visible          = false;
                uatAttachTrigger.Visible       = true;
                uatAttachTrigger.AttachedTitle = data.attach_trigger_title;
            }

            cbSnapWindow.Checked = data.attach_trigger;
            if (data.attach_trigger == true)
            {
                uttTimeTrigger.Visible      = false;
                uatAttachTrigger.Visible    = false;
                uatSnapWindow.Visible       = true;
                uatSnapWindow.AttachedTitle = data.attach_trigger_title;
            }

            lblFont.Font = stickyData.display_font_stickies;

            dayOfWeekToNumber.Add(DayOfWeek.Sunday, 0);
            dayOfWeekToNumber.Add(DayOfWeek.Monday, 1);
            dayOfWeekToNumber.Add(DayOfWeek.Tuesday, 2);
            dayOfWeekToNumber.Add(DayOfWeek.Wednesday, 3);
            dayOfWeekToNumber.Add(DayOfWeek.Thursday, 4);
            dayOfWeekToNumber.Add(DayOfWeek.Friday, 5);
            dayOfWeekToNumber.Add(DayOfWeek.Saturday, 6);

            this.ShowDialog();

            data = stickyData;
            return(bSave);
        }