Exemplo n.º 1
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (sender == build)
            {
                if (filelst.ItemsSource == null)
                {
                    return;
                }
                IList <FileModel> selist = ((IList <FileModel>)(filelst.ItemsSource)).Where(f => f.ISCHECKED).ToList();
                if (selist.Count == 0)
                {
                    if (MessageBox.Show("No file is checked, process all?", "CONFIRM", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No)
                    {
                        return;
                    }

                    selist = (IList <FileModel>)(filelst.ItemsSource);
                }
                var ui = new BuildUI()
                {
                    Owner = this, ShowInTaskbar = false
                };
                ui.FileList = selist;
                ui.ShowDialog();
                return;
            }

            if (sender == exit)
            {
                this.Close();
                return;
            }

            if (sender == dir)
            {
                bool usedef;
                var  loc = LoaderImpl.SelectDirectory(out usedef, Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));
                if (usedef)
                {
                    if (string.IsNullOrEmpty(LoaderImpl.SaveLocation))
                    {
                        LoaderImpl.SaveLocation = loc;
                    }
                }
                else
                {
                    LoaderImpl.SaveLocation = loc;
                }
                location.Text = LoaderImpl.SaveLocation;
                LoaderImpl.SaveSettings();
                LoadRootDirectory();
                return;
            }
        }
Exemplo n.º 2
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (sender == build1 || sender == build2)
            {
                var filelst = FileList;
                if (filelst == null)
                {
                    return;
                }
                IList <FileModel> selist = null;
                if (sender == build1)
                {
                    selist = filelst.Where(f => f.ISCHECKED).ToList();
                    if (selist.Count == 0)
                    {
                        if (MessageBox.Show($"No file is checked, process all ({filelst.Count} Items)?", "CONFIRM", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No)
                        {
                            return;
                        }

                        selist = filelst;
                    }
                }
                else if (filelstbox.SelectedItem != null)
                {
                    selist = new List <FileModel>()
                    {
                        (FileModel)filelstbox.SelectedItem
                    };
                }

                if (selist == null || selist.Count == 0)
                {
                    browser.Navigate("about:blank");
                }
                else
                {
                    LoaderImpl.Mask(this, null, () =>
                    {
                        var timer      = new System.Timers.Timer();
                        timer.Interval = 600;
                        timer.Elapsed += (aa, bb) =>
                        {
                            timer.Stop();
                            Stream stream = null;
                            try
                            {
                                stream = File.Create("$__tmp.mhtml");
                                foreach (var fm in selist)
                                {
                                    var bytes = System.IO.File.ReadAllBytes(fm.PATH);
                                    stream.Write(bytes, 0, bytes.Length);
                                }
                                stream.Flush();

                                stream.Seek(0, SeekOrigin.Begin);
                                Dispatcher.Invoke(() => browser.NavigateToStream(stream));
                                m_stream = stream;
                            }
                            catch
                            {
                                LoaderImpl.Unmask();
                                if (stream != null)
                                {
                                    stream.Close();
                                }
                            }
                        };
                        timer.Start();
                        //System.Windows.Application.Current.Dispatcher.BeginInvoke(new System.Action(), DispatcherPriority.ContextIdle);
                    });
                }
                return;
            }

            if (sender == beautify)
            {
                Browser_LoadCompleted(browser, null);
                return;
            }

            if (sender == exit)
            {
                LoaderImpl.NoSeeAlso    = !sAlso.IsChecked.GetValueOrDefault();
                LoaderImpl.NoFooter     = !sFooter.IsChecked.GetValueOrDefault();
                LoaderImpl.NoRelated    = !sRelated.IsChecked.GetValueOrDefault();
                LoaderImpl.AutoBeautify = pAuto.IsChecked.GetValueOrDefault();

                LoaderImpl.SaveSettings();

                this.Close();
                return;
            }

            if (sender == top)
            {
                var sel = (FileModel)filelstbox.SelectedItem;
                if (sel == null)
                {
                    return;
                }
                FileList.Remove(sel);
                FileList.Insert(0, sel);
                filelstbox.SelectedItem = sel;
                filelstbox.ScrollIntoView(sel);
                return;
            }

            if (sender == btm)
            {
                var sel = (FileModel)filelstbox.SelectedItem;
                if (sel == null)
                {
                    return;
                }
                FileList.Remove(sel);
                FileList.Add(sel);
                filelstbox.SelectedItem = sel;
                filelstbox.ScrollIntoView(sel);
                return;
            }

            if (sender == up1)
            {
                var sel  = (FileModel)filelstbox.SelectedItem;
                var seli = filelstbox.SelectedIndex;
                if (sel == null)
                {
                    return;
                }
                FileList.RemoveAt(seli);
                FileList.Insert(Math.Max(0, seli - 1), sel);
                filelstbox.SelectedItem = sel;
                filelstbox.ScrollIntoView(sel);
                return;
            }

            if (sender == dw1)
            {
                var sel  = (FileModel)filelstbox.SelectedItem;
                var seli = filelstbox.SelectedIndex;
                if (sel == null)
                {
                    return;
                }
                FileList.RemoveAt(seli);
                FileList.Insert(Math.Min(FileList.Count, seli + 1), sel);
                filelstbox.SelectedItem = sel;
                filelstbox.ScrollIntoView(sel);
                return;
            }

            if (sender == sav)
            {
                if (FileList == null)
                {
                    return;
                }

                if (MessageBox.Show("Do you want to save this order?", "CONFIRM", MessageBoxButton.OKCancel, MessageBoxImage.Question) != MessageBoxResult.OK)
                {
                    return;
                }

                var sel = (FileModel)filelstbox.SelectedItem;
                int i   = 0;
                foreach (var f in FileList)
                {
                    var of = f.PATH;
                    i++;
                    int k = f.FILE.IndexOf('#');
                    f.FILE = i.ToString("0000") + "#" + f.FILE.Substring(k + 1);
                    f.PATH = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(f.PATH), f.FILE);
                    System.IO.File.Move(of, f.PATH);
                }
                var lst = FileList;
                FileList = null;
                FileList = lst;
                filelstbox.SelectedItem = sel;
                return;
            }
        }