예제 #1
0
        /// <summary>
        /// Create a destination object and store its into the project
        /// </summary>
        /// <param name="proj">project</param>
        /// <param name="width">width value</param>
        /// <param name="height">height value</param>
        /// <param name="h">horizontal count</param>
        /// <param name="v">vertical count</param>
        public void CreateDestination(Library.Project proj, uint width, uint height, uint h, uint v)
        {
            if (this.Destination == null)
            {
                if (this.Type == RefObject.MasterPage)
                {
                    MasterPage mp = new MasterPage();
                    mp.Name             = this.Name;
                    mp.ConstraintHeight = EnumConstraint.FIXED;
                    mp.Height           = height;
                    mp.ConstraintWidth  = EnumConstraint.FIXED;
                    mp.Width            = width;
                    mp.CountColumns     = h;
                    mp.CountLines       = v;
                    proj.MasterPages.Add(mp);
                    this.Destination = mp;
                    string[] splitted = mp.ElementTitle.Split('/');
                    string   path     = String.Join("/", splitted.Take(splitted.Count() - 1));
                    mp.Name = splitted.Last();
                    proj.Add(mp, path);
                }
                else if (this.Type == RefObject.Page)
                {
                    MasterPage mp = new Library.MasterPage();
                    Page       p  = new Library.Page();
                    if (Library.Project.AddPage(proj, p, this.Name))
                    {
                        mp.Name             = "MasterPage_" + System.IO.Path.GetFileNameWithoutExtension(p.Name);
                        mp.ConstraintHeight = EnumConstraint.FIXED;
                        mp.Height           = height;
                        mp.ConstraintWidth  = EnumConstraint.FIXED;
                        mp.Width            = width;
                        mp.CountColumns     = h;
                        mp.CountLines       = v;
                        proj.MasterPages.Add(mp);
                        p.MasterPageName   = mp.Name;
                        p.ConstraintHeight = EnumConstraint.FIXED;
                        p.Height           = height;
                        p.ConstraintWidth  = EnumConstraint.FIXED;
                        p.Width            = width;
                        this.SecondObject  = mp;
                        this.Destination   = p;
                    }
                    else
                    {
                        throw new ArgumentException(Localization.Strings.GetString("ExceptionPageNotCreated"));
                    }
                }
                else if (this.Type == RefObject.MasterObject)
                {
                    MasterObject mo = new MasterObject();
                    mo.Title            = this.Name;
                    mo.ConstraintHeight = EnumConstraint.FIXED;
                    mo.Height           = height;
                    mo.ConstraintWidth  = EnumConstraint.FIXED;
                    mo.Width            = width;
                    mo.CountColumns     = h;
                    mo.CountLines       = v;
                    this.Destination    = mo;
                    string[] splitted = mo.ElementTitle.Split('/');
                    string   path     = String.Join("/", splitted.Take(splitted.Count() - 1));
                    mo.Name = splitted.Last();
                    proj.Add(mo, path);
                }
                else if (this.Type == RefObject.Tool)
                {
                    MasterObject mo = new Library.MasterObject();
                    HTMLTool     t  = new HTMLTool();
                    if (Library.Project.AddTool(proj, t, this.Name))
                    {
                        mo.Name             = "MasterObject_" + t.Title;
                        mo.ConstraintHeight = EnumConstraint.FIXED;
                        mo.Height           = height;
                        mo.ConstraintWidth  = EnumConstraint.FIXED;
                        mo.Width            = width;
                        mo.CountColumns     = h;
                        mo.CountLines       = v;

                        t.ConstraintHeight = EnumConstraint.FIXED;
                        t.ConstraintWidth  = EnumConstraint.FIXED;
                        t.Width            = width;
                        t.Height           = height;
                        this.SecondObject  = mo;
                        this.Destination   = t;
                    }
                    else
                    {
                        throw new ArgumentException(Localization.Strings.GetString("ExceptionToolNotCreated"));
                    }
                }
            }
            else
            {
                if (this.Type == RefObject.MasterPage)
                {
                    MasterPage mp = this.Destination;
                    for (int index = mp.Objects.Count - 1; index >= 0; --index)
                    {
                        if (proj.Instances.Contains(mp.Objects[index]))
                        {
                            proj.Remove(mp.Objects[index]);
                        }
                    }
                    mp.ConstraintHeight = EnumConstraint.FIXED;
                    mp.Height           = height;
                    mp.ConstraintWidth  = EnumConstraint.FIXED;
                    mp.Width            = width;
                    mp.CountColumns     = h;
                    mp.CountLines       = v;
                }
                else if (this.Type == RefObject.Page)
                {
                    Page       p  = this.Destination;
                    MasterPage mp = this.SecondObject;
                    for (int index = mp.Objects.Count - 1; index >= 0; --index)
                    {
                        if (proj.Instances.Contains(mp.Objects[index]))
                        {
                            proj.Remove(mp.Objects[index]);
                        }
                    }
                    for (int index = p.Objects.Count - 1; index >= 0; --index)
                    {
                        if (proj.Instances.Contains(p.Objects[index]))
                        {
                            proj.Remove(p.Objects[index]);
                        }
                    }

                    mp.ConstraintHeight = EnumConstraint.FIXED;
                    mp.Height           = height;
                    mp.ConstraintWidth  = EnumConstraint.FIXED;
                    mp.Width            = width;
                    mp.CountColumns     = h;
                    mp.CountLines       = v;
                    p.ConstraintHeight  = EnumConstraint.FIXED;
                    p.Height            = height;
                    p.ConstraintWidth   = EnumConstraint.FIXED;
                    p.Width             = width;
                }
                else if (this.Type == RefObject.MasterObject)
                {
                    MasterObject mo = this.Destination;
                    for (int index = mo.Objects.Count - 1; index >= 0; --index)
                    {
                        if (proj.Instances.Contains(mo.Objects[index]))
                        {
                            proj.Remove(mo.Objects[index]);
                        }
                    }
                    mo.ConstraintHeight = EnumConstraint.FIXED;
                    mo.Height           = height;
                    mo.ConstraintWidth  = EnumConstraint.FIXED;
                    mo.Width            = width;
                    mo.CountColumns     = h;
                    mo.CountLines       = v;
                }
                else if (this.Type == RefObject.Tool)
                {
                    HTMLTool     t  = this.Destination;
                    MasterObject mo = this.SecondObject;
                    for (int index = mo.Objects.Count - 1; index >= 0; --index)
                    {
                        if (proj.Instances.Contains(mo.Objects[index]))
                        {
                            proj.Remove(mo.Objects[index]);
                        }
                    }
                    mo.ConstraintHeight = EnumConstraint.FIXED;
                    mo.Height           = height;
                    mo.ConstraintWidth  = EnumConstraint.FIXED;
                    mo.Width            = width;
                    mo.CountColumns     = h;
                    mo.CountLines       = v;

                    t.ConstraintHeight = EnumConstraint.FIXED;
                    t.ConstraintWidth  = EnumConstraint.FIXED;
                    t.Width            = width;
                    t.Height           = height;
                }
            }
        }
        private void PageListDownloaded(object sender, DownloadStringCompletedEventArgs e)
        {
            lock (this)
            {
                if (e.Error != null) { MessageBox.Show(e.Error.Message); return; }

                TextReader textreader = new StringReader(e.Result);
                XmlReader reader = XmlReader.Create(textreader, new XmlReaderSettings { CheckCharacters = false });

                XDocument loadedData = XDocument.Load(reader);
                var mangas = from series in loadedData.Descendants("page")
                             select series;

                foreach (XElement series in mangas.ToArray<XElement>())
                {
                    string ChapterID = (string)series.Element("chapter_id");
                    string SeriesID = (string)series.Element("series_id");
                    string PageNum = (string)series.Element("page_number");
                    string SeriesTitle = _Series[int.Parse(SeriesID) - 1].Title;
                    string Title = SeriesTitle + " - Page " + PageNum;
                    string URL = (string)series.Element("image_source");

                    // Add pages
                    Library.Page NewPage = new Library.Page{ Name = Title };

                    DownloadTransfer Transfer = new DownloadTransfer { TransferUrl = URL, Path = "/" + HttpUtility.UrlEncode(SeriesTitle)+"/"+ChapterID, Filename = PageNum + ".jpg" };
                    App.TransferViewModel.Add(Transfer);

                    NewPage.Transfer = Transfer;
                    App.LibraryViewModel.Add(NewPage);

                    Transfer.ExternalReference = NewPage.UID.ToString();
                }

                NavigationService.Navigate(new Uri("/MangaDemo/MangaDownloadList.xaml", UriKind.RelativeOrAbsolute));
            }
        }
        private void AppBarButton_DeleteSelected_Handler(object sender, EventArgs e)
        {
            if (MessageBox.Show(AppResources.WarningMessage_remove_selected, AppResources.WarningTitle_remove_selected, MessageBoxButton.OKCancel) == MessageBoxResult.OK)
            {
                Library.Page[] SelectedItems = new Library.Page[CurrentMultiselectList.SelectedItems.Count];
                CurrentMultiselectList.SelectedItems.CopyTo(SelectedItems, 0);

                // User confirmed
                foreach (Library.Page SelectedItem in SelectedItems)
                {
                    RemoveTransfer(SelectedItem.Transfer);
                    RemovePage(SelectedItem);
                }

                CurrentMultiselectList.IsSelectionEnabled = false;
            }
        }
        private void AppBarButton_StopSelected_Handler(object sender, EventArgs e)
        {
            Library.Page[] SelectedItems = new Library.Page[CurrentMultiselectList.SelectedItems.Count];
            CurrentMultiselectList.SelectedItems.CopyTo(SelectedItems, 0);

            foreach (Library.Page SelectedItem in SelectedItems)
            {
                StopTransfer(SelectedItem.Transfer);
            }

            CurrentMultiselectList.IsSelectionEnabled = false;
        }
 public PageCreate()
 {
     InitializeComponent();
     this.page = new Library.Page();
     this.RegisterControls(ref this.localeComponentId);
 }