Example #1
0
 public Dialog()
 {
     _openDialog = new OpenDialogView();
     _vm         = (OpenDialogViewModel)_openDialog.DataContext;
     _vm.AddFileFilterExtension(".xml");
     _vm.ShowOpenDialogEventHandler += ShowSaveDialogEventHandler;
 }
        private void saveAsAppZipPackagePath_Click(object sender, RoutedEventArgs e)
        {
            OpenDialogView      openFolderDialog = new OpenDialogView();
            OpenDialogViewModel folderDialogView = (OpenDialogViewModel)openFolderDialog.DataContext;

            folderDialogView.Caption        = "Select Path for Saving .appPckZip Package";
            folderDialogView.SaveText       = "Save";
            folderDialogView.FileNameText   = "Name(.appPckZip):";
            folderDialogView.FileFilterText = "Type(.appPckZip):";
            folderDialogView.FileFilterExtensions.Clear();
            folderDialogView.FileFilterExtensions.Add(".appPckZip");
            folderDialogView.SelectedFileFilterExtension = ".appPckZip";
            folderDialogView.IsSaveDialog = true;
            OpenDialogViewModelEx.addDesktop(folderDialogView);
            if (folderDialogView.Show() == true)
            {
                if (folderDialogView.SelectedFolder is object)
                {
                    string path = pathConverter.convertInvalidFolderName(folderDialogView.SelectedFolder.Path);
                    string name = pathConverter.convertInvalidFileName(folderDialogView.SelectedFilePath == null ? string.Empty : folderDialogView.SelectedFilePath).TrimStart();
                    if (System.IO.Directory.Exists(path) && name.Length > 0)
                    {
                        saveZipName.Text = System.IO.Path.Combine(path, name + ".appPckZip");
                    }
                }
            }
        }
        public DirectoryDialog()
        {
            _openDialog            = new OpenDialogView();
            _vm                    = (OpenDialogViewModel)_openDialog.DataContext;
            _vm.IsDirectoryChooser = true;

            _vm.ShowOpenDialogEventHandler += _vm_ShowOpenDialogEventHandler;
        }
        private void selectAppResource_Click(object sender, RoutedEventArgs e)
        {
            OpenDialogView      openFolderDialog = new OpenDialogView();
            OpenDialogViewModel folderDialogView = (OpenDialogViewModel)openFolderDialog.DataContext;

            folderDialogView.Caption            = "Select a Resource Folder";
            folderDialogView.OpenText           = "Select";
            folderDialogView.FileNameText       = "Folder:";
            folderDialogView.FileFilterText     = "Local:";
            folderDialogView.IsDirectoryChooser = true;
            if (folderDialogView.Show() == true)
            {
                string path = folderDialogView.SelectedFilePath;
                if (path != null)
                {
                    if (System.IO.Directory.Exists(path))
                    {
                        OpenDialogView      openDialog = new OpenDialogView();
                        OpenDialogViewModel dialogView = (OpenDialogViewModel)openDialog.DataContext;
                        #region  择为前一步所选的文件夹
                        string showName;
                        if (System.IO.Path.GetPathRoot(path) == path)
                        {
                            showName = path;
                        }
                        else
                        {
                            showName = path.Substring(path.LastIndexOf(@"\") + 1);
                        }
                        dialogView.Items.Clear();
                        OpenDialogViewModelEx.addPathOpenDialog(dialogView, path, showName, "\\Icons\\folder.ico", "\\Icons\\folder.ico", true);
                        dialogView.Caption  = "Select a Executable File From Resource Folder";
                        dialogView.OpenText = "Select";
                        #endregion
                        if (dialogView.Show() == true)
                        {
                            string file = dialogView.SelectedFilePath;
                            if (file != null)
                            {
                                if (System.IO.File.Exists(file))
                                {
                                    folderName.Text = path;
                                    fileName.Text   = file;
                                }
                            }
                        }
                    }
                }
            }
        }
Example #5
0
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            OpenDialogView      openDialog = new OpenDialogView();
            OpenDialogViewModel vm         = (OpenDialogViewModel)openDialog.DataContext;

            vm.IsDirectoryChooser = true;
            bool?result = vm.Show();

            if (result == true)
            {
                FilePath = vm.SelectedFolder.Path;
            }
            else
            {
                FilePath = string.Empty;
            }
        }
Example #6
0
        private string BrowseFolder(string title = "Browse folder")
        {
            OpenDialogView      openDialog = new OpenDialogView();
            OpenDialogViewModel vm         = (OpenDialogViewModel)openDialog.DataContext;

            vm.IsDirectoryChooser = true;
            vm.Caption            = "Browse for the link directory";
            vm.DateFormat         = OpenDialogViewModelBase.ISO8601_DateFormat;
            vm.OpenText           = "Select folder";
            vm.SelectFolder       = true;
            vm.Owner           = this;
            vm.StartupLocation = WindowStartupLocation.CenterScreen;

            if (vm.Show() == true)
            {
                return(string.IsNullOrEmpty(vm.SelectedFilePath) ? vm.SelectedFolder.Path : vm.SelectedFilePath);
            }

            return(null);
        }
        private void selectFile_Click(object sender, RoutedEventArgs e)
        {
            OpenDialogView      openDialog = new OpenDialogView();
            OpenDialogViewModel dialogView = (OpenDialogViewModel)openDialog.DataContext;

            OpenDialogViewModelEx.addDesktop(dialogView);
            dialogView.Caption  = "Select a File";
            dialogView.OpenText = "Select";
            if (dialogView.Show() == true)
            {
                string path = dialogView.SelectedFilePath;
                if (path != null)
                {
                    if (System.IO.File.Exists(path))
                    {
                        fileName.Text = path;
                    }
                }
            }
        }
        private void loadAppZipPackagePath_Click(object sender, RoutedEventArgs e)
        {
            OpenDialogView      openDialog = new OpenDialogView();
            OpenDialogViewModel dialogView = (OpenDialogViewModel)openDialog.DataContext;

            OpenDialogViewModelEx.addDesktop(dialogView);
            dialogView.Caption = "Select a .appPckZip Package";
            dialogView.FileFilterExtensions.Clear();
            dialogView.FileFilterExtensions.Add(".appPckZip");
            dialogView.SelectedFileFilterExtension = ".appPckZip";
            if (dialogView.Show() == true)
            {
                string path = dialogView.SelectedFilePath;
                if (path != null)
                {
                    if (System.IO.File.Exists(path))
                    {
                        loadZipName.Text = path;
                    }
                }
            }
        }
Example #9
0
        string OpenDialog(Action <OpenDialogViewModel> settings)
        {
            var openDialog = new OpenDialogView();
            var vm         = (OpenDialogViewModel)openDialog.DataContext;

            vm.Owner           = this;
            vm.StartupLocation = WindowStartupLocation.CenterOwner;

            // Setting date format by using predefined date format
            vm.DateFormat = OpenDialogViewModel.ISO8601_DateFormat;
            settings?.Invoke(vm);

            // Customize UI texts
            vm.CancelText     = "Отмена";
            vm.Caption        = "Выбор";
            vm.DateFormat     = "yyyy-MM-dd HH:mm:ss";
            vm.DateText       = "Дата";
            vm.FileFilterText = "Тип";
            vm.FileNameText   = "Файл";
            vm.NameText       = "Название";
            vm.SaveText       = "Сохранить";
            vm.SizeText       = "Размер";
            vm.TypeText       = "Тип";
            vm.OpenText       = "Выбрать";
            vm.SelectedFileFilterExtension = vm.FileFilterExtensions.Where(f => !string.IsNullOrEmpty(f)).FirstOrDefault();

            bool?result = vm.Show();

            if (result == true)
            {
                // Get selected file path
                return(vm.SelectedFilePath);
            }
            else
            {
                return(string.Empty);
            }
        }
 private void DestinationDialogFolder(object sender, RoutedEventArgs e)
 {
     var openDialog = new OpenDialogView();
     var vm = openDialog.DataContext as OpenDialogViewModel;
     vm.IsDirectoryChooser = true;
     vm.Show();
     var result = vm.SelectedFilePath;
     SaveDestination = result;
 }
Example #11
0
 private void FindPythonLibraryButton_Click(object sender, RoutedEventArgs e)
 {
     OpenDialogView TestObject = new OpenDialogView();
     OpenDialogViewModel TestDialogModel = (OpenDialogViewModel)TestObject.DataContext;
     TestDialogModel.IsDirectoryChooser = true;
     TestDialogModel.FileNameText = MyResources.Texts.FolderName;
     TestDialogModel.Caption = MyResources.Texts.SpecifyPythonLibraryFolderCaption;
     TestDialogModel.Show();
     PathToPythonLibraryTextBox.Text = TestDialogModel.SelectedFilePath;
 }
        private string OpenDialog()
        {
            // Don't reinitialize if the object already exists
            // Won't be able to detect newly added drives/devices
            if (_openDialog == null)
            {
                _openDialog = new OpenDialogView();
            }
            OpenDialogViewModel browseWindow = (OpenDialogViewModel)_openDialog.DataContext;

            // Just disables file view, file view is limited though
            browseWindow.IsDirectoryChooser = true;
            browseWindow.Owner = this;
            browseWindow.NameText = "Choose thy folder from the left pane";


            // Add the selected directory to the list
            if (browseWindow.Show() == true)
            {
                return browseWindow.SelectedFolder.Path;
            }
            else
            {
                return string.Empty;
            }
        }
Example #13
0
        private void LoadFromappZip_Click(object sender, RoutedEventArgs e)
        {
            if (getAppsModel.Count <= 0)
            {
                var result = this.ShowModalInputExternal("Note", "Add at least one new AppsGroup first.");
                if (result == null)
                {
                    return;
                }
                AppGroup newItem = new AppGroup()
                {
                    AppGroupName = result,
                    appItems     = new ObservableCollection <AppItem>()
                };

                getAppsModel.Add(newItem);
                appTabControl.SelectedIndex = 0;
            }
            //选择.appZip包
            OpenDialogView      openDialog = new OpenDialogView();
            OpenDialogViewModel dialogView = (OpenDialogViewModel)openDialog.DataContext;

            OpenDialogViewModelEx.addDesktop(dialogView);
            dialogView.Caption = "Select a .appZip Package";
            dialogView.FileFilterExtensions.Clear();
            dialogView.FileFilterExtensions.Add(".appZip");
            dialogView.SelectedFileFilterExtension = ".appZip";
            if (dialogView.Show() == true)
            {
                string path = dialogView.SelectedFilePath;
                if (path != null)
                {
                    if (System.IO.File.Exists(path))
                    {
                        //开始解压.appZip
                        //        ^AppZipPackage_{\w{8}-(\w{4}-){3}\w{12}}.log$           此为正则表达式匹配log日志

                        processBar.showRingBar(this, () => {
                            try
                            {
                                string guid            = Guid.NewGuid().ToString("B");
                                string appMainFolder   = System.AppDomain.CurrentDomain.BaseDirectory;
                                string logFile         = string.Empty;
                                string appName         = string.Empty;
                                string appDescription  = string.Empty;
                                string appRelativePath = string.Empty;        //可执行文件,相对路径相对appZipPath
                                string appZipPath      = "APPsData\\" + guid; //项目下文件夹,如果存在则新建GUID文件夹,作为APP的容器文件夹
                                string appAbsolutePath = pathConverter.getAbsolutePath(appZipPath, appMainFolder);
                                if (Directory.Exists(appAbsolutePath))
                                {
                                    do
                                    {
                                        guid            = Guid.NewGuid().ToString("B");
                                        appZipPath      = "APPsData\\" + guid;
                                        appAbsolutePath = pathConverter.getAbsolutePath(appZipPath, appMainFolder);
                                    }while (!Directory.Exists(appAbsolutePath));
                                }
                                sharpZipHelper.DecomparessFile(path, appAbsolutePath);

                                string[] searchLog = Directory.GetFiles(appAbsolutePath, @"*.log", SearchOption.TopDirectoryOnly);
                                if (searchLog.Length > 0)
                                {
                                    for (int i = 0; i < searchLog.Length; i++)
                                    {
                                        if (Regex.Match(System.IO.Path.GetFileName(searchLog[i]), @"^AppZipPackage_{\w{8}-(\w{4}-){3}\w{12}}.log$").Success)
                                        {
                                            logFile = searchLog[i];
                                            break;
                                        }
                                    }
                                    if (logFile.Length > 0)
                                    {
                                        //成功取得log文件
                                        using (StreamReader sr = new StreamReader(new FileStream(logFile, FileMode.Open, FileAccess.Read), Encoding.UTF8))
                                        {
                                            String line;
                                            while ((line = sr.ReadLine()) != null)
                                            {
                                                if (line.StartsWith("APP Name:"))
                                                {
                                                    appName = line.Substring(9);
                                                    continue;
                                                }
                                                if (line.StartsWith("APP DesCription:"))
                                                {
                                                    appDescription = line.Substring(16);
                                                    continue;
                                                }
                                                if (line.StartsWith("App Relative Path:"))
                                                {
                                                    appRelativePath = line.Substring(18);
                                                    continue;
                                                }
                                            }
                                        }
                                        if (appName.Length > 0 && appDescription.Length > 0 && appRelativePath.Length > 0)
                                        {
                                            //加入列表,调用主窗口线程
                                            this.Dispatcher.Invoke(
                                                new Action(
                                                    delegate
                                            {
                                                getAppsModel[appTabControl.SelectedIndex].appItems.Add(
                                                    new AppItem
                                                {
                                                    AppName        = appName,
                                                    AppDescription = appDescription,
                                                    AppGUID        = Guid.NewGuid().ToString("B"),
                                                    AppZipPath     = appZipPath,
                                                    AppPath        = appRelativePath
                                                });
                                            }));
                                        }
                                        else
                                        {
                                            Directory.Delete(appAbsolutePath);
                                            this.ShowModalMessageExternal("Error", "Log file is bad for .appZip file.\nQuit!", MessageDialogStyle.Affirmative);
                                        }
                                    }
                                    else
                                    {
                                        Directory.Delete(appAbsolutePath);
                                        this.ShowModalMessageExternal("Error", "Log missing for .appZip file.\nQuit!", MessageDialogStyle.Affirmative);
                                    }
                                }
                                else
                                {
                                    Directory.Delete(appAbsolutePath, true);
                                    this.ShowModalMessageExternal("Error", "Log missing for .appZip file.\nQuit!", MessageDialogStyle.Affirmative);
                                }
                            }
                            catch (Exception ex)
                            {
                                this.Dispatcher.Invoke((Action) delegate
                                {
                                    throw ex;
                                });
                            }
                        }, "Waiting...", "Unziping package...");
                    }
                }
            }
        }
        private void PickPath(PathItem obj)
        {
            if (obj == null)
                return;

            var dialog = new OpenDialogView();
            var vm = (OpenDialogViewModel)dialog.DataContext;

            vm.IsDirectoryChooser = true;
            if (vm.Show() == true)
            {
                obj.Path = vm.SelectedFilePath;
            }
        }