Ejemplo n.º 1
0
        protected override void OnDrop(DragEventArgs e)
        {
            base.OnDrop(e);

            if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                try
                {
                    string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
                    foreach (var file in files)
                    {
                        if (file.EndsWith(GestureSign.Common.Constants.GesturesExtension, StringComparison.OrdinalIgnoreCase))
                        {
                            var newGestures = GestureManager.LoadGesturesFromFile(file);
                            ImportGesture(newGestures);
                        }
                    }
                }
                catch (Exception exception)
                {
                    UIHelper.GetParentWindow(this).ShowModalMessageExternal(exception.GetType().Name, exception.Message);
                }
            }
            e.Handled = true;
        }
Ejemplo n.º 2
0
        public static void LoadFromArchive(string sourceArchiveFileName, out IEnumerable <IApplication> applications, out IEnumerable <IGesture> gestures)
        {
            string tempArchivePath = ExtractToTempDirectory(sourceArchiveFileName);

            applications = FileManager.LoadObject <List <IApplication> >(Path.Combine(tempArchivePath, Constants.ActionFileName), false, true, true);
            gestures     = GestureManager.LoadGesturesFromFile(Path.Combine(tempArchivePath, Constants.GesturesFileName), true);

            Directory.Delete(tempArchivePath, true);
        }
Ejemplo n.º 3
0
        private void RestoreButton_Click(object sender, RoutedEventArgs e)
        {
            Microsoft.Win32.OpenFileDialog openFileDialog = new Microsoft.Win32.OpenFileDialog()
            {
                Filter          = $"{LocalizationProvider.Instance.GetTextValue("Options.BackupFile")}|*{GestureSign.Common.Constants.BackupFileExtension}",
                Title           = LocalizationProvider.Instance.GetTextValue("Common.Import"),
                CheckFileExists = true
            };
            if (openFileDialog.ShowDialog().Value)
            {
                try
                {
                    string tempArchivePath = Archive.ExtractToTempDirectory(openFileDialog.FileName);

                    string configPath = Path.Combine(tempArchivePath, Path.GetFileName(AppConfig.ConfigPath));
                    if (File.Exists(configPath))
                    {
                        File.Copy(configPath, AppConfig.ConfigPath, true);
                    }
                    AppConfig.Reload();
                    LoadSettings();

                    var applications = FileManager.LoadObject <List <IApplication> >(Path.Combine(tempArchivePath, GestureSign.Common.Constants.ActionFileName), false, true, true);
                    var gestures     = GestureManager.LoadGesturesFromFile(Path.Combine(tempArchivePath, GestureSign.Common.Constants.GesturesFileName), true);

                    if (gestures != null)
                    {
                        var oldGestures = GestureManager.Instance.Gestures;
                        foreach (var g in oldGestures)
                        {
                            GestureManager.Instance.DeleteGesture(g.Name);
                        }
                        foreach (var g in gestures)
                        {
                            GestureManager.Instance.AddGesture(g);
                        }

                        GestureManager.Instance.SaveGestures();
                    }
                    if (applications != null)
                    {
                        ApplicationManager.Instance.RemoveAllApplication();
                        ApplicationManager.Instance.AddApplicationRange(applications);

                        ApplicationManager.Instance.SaveApplications();
                    }

                    Directory.Delete(tempArchivePath, true);
                    UIHelper.GetParentWindow(this).ShowModalMessageExternal(LocalizationProvider.Instance.GetTextValue("Options.Messages.RestoreCompleteTitle"), null);
                }
                catch (Exception exception)
                {
                    UIHelper.GetParentWindow(this).ShowModalMessageExternal(LocalizationProvider.Instance.GetTextValue("Messages.Error"), exception.Message);
                }
            }
        }
Ejemplo n.º 4
0
        private void LoadSettingFile(byte[] file)
        {
            if (Directory.Exists(_tempDirectory))
            {
                Directory.Delete(_tempDirectory, true);
            }
            Directory.CreateDirectory(_tempDirectory);

            string filePath = Path.Combine(_tempDirectory, "Setting.zip");

            File.WriteAllBytes(filePath, file);
            ZipFile.ExtractToDirectory(filePath, _tempDirectory);

            var newApps  = new List <IApplication>();
            var gestures = new List <IGesture>();

            foreach (string settingFile in Directory.GetFiles(_tempDirectory, "*.*", SearchOption.AllDirectories))
            {
                switch (Path.GetExtension(settingFile))
                {
                case GestureSign.Common.Constants.ActionExtension:
                    var currentApps = FileManager.LoadObject <List <IApplication> >(settingFile, false, true);
                    if (currentApps != null)
                    {
                        newApps.AddRange(currentApps);
                    }
                    break;

                case GestureSign.Common.Constants.GesturesExtension:
                    var currentGestures = GestureManager.LoadGesturesFromFile(settingFile);
                    if (currentGestures != null)
                    {
                        gestures.AddRange(currentGestures);
                    }
                    break;
                }
            }

            Dispatcher.InvokeAsync(() =>
            {
                ApplicationSelector.Initialize(newApps, gestures);
                ProgressRing.Visibility        = Visibility.Collapsed;
                ApplicationSelector.Visibility = Visibility.Visible;
            }
                                   , DispatcherPriority.Input);

            File.Delete(filePath);
            Directory.Delete(_tempDirectory, true);
        }
Ejemplo n.º 5
0
        private void ImportGestureMenuItem_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog ofdGestures = new OpenFileDialog()
            {
                Filter          = LocalizationProvider.Instance.GetTextValue("Gesture.GestureFile") + "|*" + GestureSign.Common.Constants.GesturesExtension,
                Title           = LocalizationProvider.Instance.GetTextValue("Gesture.ImportGesture"),
                CheckFileExists = true
            };

            if (ofdGestures.ShowDialog().GetValueOrDefault())
            {
                var newGestures = GestureManager.LoadGesturesFromFile(ofdGestures.FileName);
                ImportGesture(newGestures);
            }
        }