Exemplo n.º 1
0
        // リストを全消去する
        // リストの選択項目を削除する
        private void DeletePiecePictureAll(PiecePictureType ppt)
        {
            switch (ppt)
            {
            case PiecePictureType.Main:
                if (PiecePictureList1.Count == 0)
                {
                    return;
                }
                {
                    foreach (string name in PiecePictureList1)
                    {
                        piecePictureData.Remove(name);
                    }
                    PiecePictureList1.Clear();
                    PiecePictureIndex1.Value = -1;
                    RedrawViewImage();
                }
                break;

            case PiecePictureType.Support:
                if (PiecePictureList2.Count == 0)
                {
                    return;
                }
                {
                    foreach (string name in PiecePictureList2)
                    {
                        piecePictureData.Remove(name);
                    }
                    PiecePictureList2.Clear();
                    PiecePictureIndex2.Value = -1;
                    RedrawViewImage();
                }
                break;

            case PiecePictureType.Base:
                if (PiecePictureList3.Count == 0)
                {
                    return;
                }
                {
                    foreach (string name in PiecePictureList3)
                    {
                        piecePictureData.Remove(name);
                    }
                    PiecePictureList3.Clear();
                    PiecePictureIndex3.Value = -1;
                    RedrawViewImage();
                }
                break;
            }
        }
Exemplo n.º 2
0
 // コンストラクタ
 public MainViewModel(GetFileName funcGFN1, GetFileName funcGFN2)
 {
     //
     PreviewImageFlg = PreviewImage.Select(p => p != null).ToReadOnlyReactiveProperty();
     //
     ShowImageDataFlg1.Subscribe(_ => RedrawViewImage());
     ShowImageDataFlg2.Subscribe(_ => RedrawViewImage());
     ShowImageDataFlg3.Subscribe(_ => RedrawViewImage());
     //
     CreateFormationPictureCommand.Subscribe(_ => {
         var image = CreateFormationPicture();
         if (image == null)
         {
             return;
         }
         string filePath = funcGFN2();
         if (filePath != "")
         {
             if (System.IO.Path.GetExtension(filePath) != ".png")
             {
                 filePath += ".png";
             }
             image.Save(filePath, ImageFormat.Png);
         }
     });
     DeleteDataAllCommand.Subscribe(_ => {
         var result = MessageBox.Show("リストの画像を全て消去しますか?", "編成まとめ隊", MessageBoxButtons.YesNo, MessageBoxType.Question);
         if (result == DialogResult.Yes)
         {
             piecePictureData.Clear();
             PiecePictureList1.Clear();
             PiecePictureList2.Clear();
             PiecePictureList3.Clear();
             RedrawViewImage();
         }
     });
     AddPiecePicture1Command.Subscribe(_ => { AddPiecePicture(funcGFN1(), PiecePictureType.Main); });
     AddPiecePicture2Command.Subscribe(_ => { AddPiecePicture(funcGFN1(), PiecePictureType.Support); });
     AddPiecePicture3Command.Subscribe(_ => { AddPiecePicture(funcGFN1(), PiecePictureType.Base); });
     DeletePiecePicture1Command.Subscribe(_ => { DeletePiecePicture(PiecePictureType.Main); });
     DeletePiecePicture2Command.Subscribe(_ => { DeletePiecePicture(PiecePictureType.Support); });
     DeletePiecePicture3Command.Subscribe(_ => { DeletePiecePicture(PiecePictureType.Base); });
     MoveUpPiecePicture1Command.Subscribe(_ => { MoveUpPiecePicture(PiecePictureType.Main); });
     MoveUpPiecePicture2Command.Subscribe(_ => { MoveUpPiecePicture(PiecePictureType.Support); });
     MoveUpPiecePicture3Command.Subscribe(_ => { MoveUpPiecePicture(PiecePictureType.Base); });
     MoveDownPiecePicture1Command.Subscribe(_ => { MoveDownPiecePicture(PiecePictureType.Main); });
     MoveDownPiecePicture2Command.Subscribe(_ => { MoveDownPiecePicture(PiecePictureType.Support); });
     MoveDownPiecePicture3Command.Subscribe(_ => { MoveDownPiecePicture(PiecePictureType.Base); });
     DeletePiecePictureAll1Command.Subscribe(_ => { DeletePiecePictureAll(PiecePictureType.Main); });
     DeletePiecePictureAll2Command.Subscribe(_ => { DeletePiecePictureAll(PiecePictureType.Support); });
     DeletePiecePictureAll3Command.Subscribe(_ => { DeletePiecePictureAll(PiecePictureType.Base); });
 }
Exemplo n.º 3
0
        // リストの選択項目を削除する
        private void DeletePiecePicture(PiecePictureType ppt)
        {
            switch (ppt)
            {
            case PiecePictureType.Main:
                if (PiecePictureIndex1.Value < 0)
                {
                    return;
                }
                {
                    int    selectedIndex = PiecePictureIndex1.Value;
                    string temp          = PiecePictureList1[selectedIndex];
                    PiecePictureList1.RemoveAt(selectedIndex);
                    piecePictureData.Remove(temp);
                    PiecePictureIndex1.Value = Math.Min(selectedIndex, PiecePictureList1.Count - 1);
                    RedrawViewImage();
                }
                break;

            case PiecePictureType.Support:
                if (PiecePictureIndex2.Value < 0)
                {
                    return;
                }
                {
                    int    selectedIndex = PiecePictureIndex2.Value;
                    string temp          = PiecePictureList2[selectedIndex];
                    PiecePictureList2.RemoveAt(selectedIndex);
                    piecePictureData.Remove(temp);
                    PiecePictureIndex2.Value = Math.Min(selectedIndex, PiecePictureList2.Count - 1);
                    RedrawViewImage();
                }
                break;

            case PiecePictureType.Base:
                if (PiecePictureIndex3.Value < 0)
                {
                    return;
                }
                {
                    int    selectedIndex = PiecePictureIndex3.Value;
                    string temp          = PiecePictureList3[selectedIndex];
                    PiecePictureList3.RemoveAt(selectedIndex);
                    piecePictureData.Remove(temp);
                    PiecePictureIndex3.Value = Math.Min(selectedIndex, PiecePictureList3.Count - 1);
                    RedrawViewImage();
                }
                break;
            }
        }
Exemplo n.º 4
0
        // 画像ファイルを追加する
        // ただし種別による選別は施す(当てはまらない画像データはインポートしないように設定)
        private void AddPiecePicture(string fileName, PiecePictureType ppt, bool redrawFlg = true)
        {
            if (fileName == "")
            {
                return;
            }
            switch (ppt)
            {
            case PiecePictureType.Main:
                if (PiecePictureList1.Count >= 12)
                {
                    return;
                }
                break;

            case PiecePictureType.Support:
                if (PiecePictureList2.Count >= 12)
                {
                    return;
                }
                break;

            case PiecePictureType.Base:
                if (PiecePictureList3.Count >= 3)
                {
                    return;
                }
                break;
            }
            try {
                var image = new Bitmap(fileName);
                //
                if (image.Width != 800 || image.Height != 480)
                {
                    return;
                }
                if (ppt != PiecePictureType.Base && !IsRefitScene(image))
                {
                    return;
                }
                if (ppt == PiecePictureType.Base && !IsBaseScene(image))
                {
                    return;
                }
                //
                string key = System.IO.Path.GetFileNameWithoutExtension(fileName);
                if (piecePictureData.ContainsKey(key))
                {
                    for (int i = 1; ; ++i)
                    {
                        string key2 = $"{key}_{i}";
                        if (!piecePictureData.ContainsKey(key2))
                        {
                            key = key2;
                            break;
                        }
                    }
                }
                piecePictureData[key] = image;
                switch (ppt)
                {
                case PiecePictureType.Main:
                    PiecePictureList1.Add(key);
                    break;

                case PiecePictureType.Support:
                    PiecePictureList2.Add(key);
                    break;

                case PiecePictureType.Base:
                    PiecePictureList3.Add(key);
                    break;
                }
                if (redrawFlg)
                {
                    RedrawViewImage();
                }
            } catch (Exception e) {
                Console.WriteLine(e.Message);
            }
        }