Exemplo n.º 1
0
        private void _update_Click(object sender, EventArgs e)
        {
            List <JPEGFileItem> items = new List <JPEGFileItem>();

            foreach (ListViewItem lvItem in _targets.Items)
            {
                // チェックされていないのは保存対象外
                if (!lvItem.Checked)
                {
                    continue;
                }

                JPEGFileItem item = lvItem.Tag as JPEGFileItem;
                if (null == item)
                {
                    continue;
                }

                items.Add(item);
            }

            NowProcessingForm <JPEGFileItem> npf = new NowProcessingForm <JPEGFileItem>(new UpdateJpegFile(), items.ToArray());

            if (DialogResult.OK == npf.ShowDialog(this))
            {
                // 更新できなので、チェックボックスを外します。
                try
                {
                    _targets.BeginUpdate();
                    foreach (ListViewItem lvItem in _targets.Items)
                    {
                        // チェックされていないのは保存対象外
                        if (!lvItem.Checked)
                        {
                            continue;
                        }

                        lvItem.Checked = false;
                    }
                }
                finally
                {
                    _targets.EndUpdate();
                }
                MessageBox.Show(Properties.Resources.MSG3, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
Exemplo n.º 2
0
        private void LoadDropFiles(string[] dropFiles, bool add)
        {
            try
            {
                _targets.BeginUpdate();
                if (!add)
                {
                    _targets.Clear();
                    _targets.LargeImageList.Images.Clear();
                }
                _targets.LargeImageList.TransparentColor = TRANS_COLOR;

                List <string> targetFiles = new List <string>();
                foreach (string filePath in dropFiles)
                {
                    // すでに登録されているものを二重登録しない
                    bool match = false;
                    foreach (ListViewItem item in _targets.Items)
                    {
                        JPEGFileItem jpegItem = item.Tag as JPEGFileItem;
                        if (null == jpegItem)
                        {
                            continue;
                        }

                        if (filePath == jpegItem.FilePath)
                        {
                            match = true;
                            break;
                        }
                    }
                    if (match)
                    {
                        continue;
                    }

                    targetFiles.Add(filePath);
                }

                LoadJpegFile ljf = new LoadJpegFile(_targets.LargeImageList.ImageSize, TRANS_COLOR);
                NowProcessingForm <string> npf = new NowProcessingForm <string>(ljf, targetFiles.ToArray());

                if (DialogResult.OK == npf.ShowDialog(this))
                {
                    // 画像を読み込んだので、位置情報の確定を行う
                    foreach (ListViewItem item in ljf.Items)
                    {
                        JPEGFileItem jpegItem = item.Tag as JPEGFileItem;
                        if (null != jpegItem)
                        {
                            jpegItem.NewLocation = _trackItemBag.FindPoint(jpegItem.DateTimeOriginal);
                            if (null != jpegItem.NewLocation)
                            {
                                item.Checked = true;

                                if (jpegItem.NewLocation.Time != jpegItem.DateTimeOriginal.ToUniversalTime())
                                {
                                    item.ForeColor = Color.Pink;
                                }
                                else
                                {
                                    item.ForeColor = Color.Black;
                                }
                            }
                            else
                            {
                                item.Checked = false;

                                if (null != jpegItem.CurrentLocation)
                                {
                                    item.ForeColor = Color.Blue;
                                }
                            }

                            item.ImageIndex = _targets.LargeImageList.Images.Count;
                            _targets.LargeImageList.Images.Add(jpegItem.ThumNail);

                            _targets.Items.Add(item);
                        }
                    }
                }
            }
            finally
            {
                _targets.EndUpdate();
            }
        }