Exemple #1
0
        private void StackOpen_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            var openDialog = new OpenFileDialog
            {
                Filter = "라이브러리 파일 (*.dll)|*.dll"
            };

            if (openDialog.ShowDialog() == false || !File.Exists(openDialog.FileName))
            {
                return;
            }

            try
            {
                GridLoading.Visibility = Visibility.Visible;

                Task.Run(() =>
                {
                    manager   = new ExtensionManager();
                    extension = manager.LoadExtension(openDialog.FileName);

                    if (extension.Commands.Count <= 0 && extension.Controls.Count <= 0)
                    {
                        MessageBox.Show("해당 파일에는 사용 가능한 블럭이 없습니다.\n올바른 확장 파일을 선택해주시기 바랍니다.", "오류", MessageBoxButton.OK, MessageBoxImage.Error);
                        return;
                    }

                    extension.Path = openDialog.FileName;

                    Dispatcher.Invoke(() =>
                    {
                        StackOpen.Visibility   = Visibility.Collapsed;
                        StackResult.Visibility = Visibility.Visible;
                        LabelResult.Content    = $"본 모듈은 {extension.Commands.Count}개의 블럭과 {extension.Controls.Count}개의 컨트롤을 포함하고 있습니다.";
                        GridLoading.Visibility = Visibility.Collapsed;
                    });

                    compiler = new GCompiler();
                    compiler.LoadReference(openDialog.FileName);
                });
            }
            catch (Exception ex)
            {
                MessageBox.Show("해당 파일은 불러올 수 없습니다.\n" + ex.Message, "오류", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        private void StackOpen_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            OpenFileDialog openDialog = new OpenFileDialog
            {
                Filter = "라이브러리 파일 (*.dll)|*.dll"
            };

            if (openDialog.ShowDialog() == true)
            {
                if (File.Exists(openDialog.FileName))
                {
                    try
                    {
                        manager   = new ExtensionManager();
                        extension = manager.LoadExtension(openDialog.FileName);
                        if (extension.Commands.Count > 0 || extension.Controls.Count > 0)
                        {
                            extension.Path = openDialog.FileName;

                            StackOpen.Visibility   = Visibility.Collapsed;
                            StackResult.Visibility = Visibility.Visible;
                            LabelResult.Content    = $"본 모듈은 {extension.Commands.Count}개의 블럭과 {extension.Controls.Count}개의 컨트롤을 포함하고 있습니다.";

                            compiler = new GCompiler();
                            compiler.LoadReference(openDialog.FileName);
                        }
                        else
                        {
                            MessageBox.Show("해당 파일에는 사용 가능한 블럭이 없습니다.\n올바른 확장 파일을 선택해주시기 바랍니다.", "오류", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("해당 파일은 불러올 수 없습니다.\n" + ex.Message, "오류", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                }
            }
        }