/// <summary> /// Add new seriespanel /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void addbutton_Click(object sender, EventArgs e) { Button but = (Button)sender; GroupBox gb = (GroupBox)(but.Parent); int heigh = gb.Height; string day = ""; switch (gb.Text) { case "Hétfő": day = "Monday"; break; case "Kedd": day = "Tuesday"; break; case "Szerda": day = "Wednesday"; break; case "Csütörtök": day = "Thursday"; break; case "Péntek": day = "Friday"; break; case "Szombat": day = "Saturday"; break; case "Vasárnap": day = "Sunday"; break; } SeriesPanel sp = new SeriesPanel(day); sp.Location = new Point(5, heigh - 40 + 20); sp.Disposed += new EventHandler(SeriesPanel_Disposed); sp.Click += new EventHandler(SeriesPanel_Click); gb.Controls.Add(sp); }
//public IList<object> Datasource //{ // get { return (IList<object>)GetValue(DatasourceProperty); } // set { SetValue(DatasourceProperty, value); } //} //// Using a DependencyProperty as the backing store for MyProperty. This enables animation, styling, binding, etc... //public static readonly DependencyProperty DatasourceProperty = // DependencyProperty.Register("Datasource", typeof(IList<object>), typeof(WTChart), new PropertyMetadata(new List<string>())); protected override void OnApplyTemplate() { chartPanel = GetTemplateChild("ChartPanel") as BoxPanel; Chartheight = chartPanel.Height; Chartwidth = chartPanel.Width; gridPanel = GetTemplateChild("GridPanel") as GridPanel; seriesPanel = GetTemplateChild("SeriesPanel") as SeriesPanel; //chartPanel.Itemsource = Datasource; base.OnApplyTemplate(); }
protected override void OnApplyTemplate() { chartPanel = GetTemplateChild("ChartPanel") as ChartPanel; gridPanel = GetTemplateChild("GridPanel") as GridPanel; seriesPanel = GetTemplateChild("SeriesPanel") as SeriesPanel; base.OnApplyTemplate(); ApplyDataSource(); ApplyModelCollection(); ApplySettings(); }
protected override void OnPointerReleased(PointerRoutedEventArgs e) { if (EnableSegmentDragging) { OnChartDragEnd(e.GetCurrentPoint(SeriesPanel).Position, e.OriginalSource); SeriesPanel.ReleasePointerCapture(e.Pointer); } base.OnPointerReleased(e); }
protected override void OnPointerPressed(PointerRoutedEventArgs e) { if (EnableSeriesDragging) { SeriesPanel.CapturePointer(e.Pointer); OnChartDragStart(e.GetCurrentPoint(SeriesPanel).Position, e.OriginalSource); } else { base.OnPointerPressed(e); } }
/// <summary> /// Save title by click or close(collapse) the groupbox /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void SeriesPanel_Click(object sender, EventArgs e) { SeriesPanel sp = (SeriesPanel)sender; if (sp.IsTextBoxEditing) { sp.SaveTitle(); return; } GroupBox gb; switch (sp.Day) { case "Monday": gb = this.groupBox1; break; case "Tuesday": gb = this.groupBox2; break; case "Wednesday": gb = this.groupBox3; break; case "Thursday": gb = this.groupBox4; break; case "Friday": gb = this.groupBox5; break; case "Saturday": gb = this.groupBox6; break; case "Sunday": gb = this.groupBox7; break; default: gb = new GroupBox(); break; } foreach (Control c in gb.Controls) { if (c == gb.Controls[0]) { continue; } SeriesPanel spc = c as SeriesPanel; if (spc.IsTextBoxEditing) { return; } } groupBox_MouseCaptureChanged(gb, e); }
private void AttachPanelEventListeners() { // attaches event listeners for search series panel SearchSeriesPanel searchSeriesPanel = (SearchSeriesPanel)panelsMap[PanelId.SearchSeries].Panel; searchSeriesPanel.Search += SearchSeriesPanel_Search; searchSeriesPanel.SeriesClick += SearchSeriesPanel_SeriesClick; // attaches event listeners for saved shows panel SavedShowsPanel savedShowsPanel = (SavedShowsPanel)panelsMap[PanelId.SavedShows].Panel; savedShowsPanel.SeriesClick += SavedShowsPanel_SeriesClick; // attaches event listeners for series panel SeriesPanel seriesPanel = (SeriesPanel)panelsMap[PanelId.Series].Panel; seriesPanel.WatchEpisodeButtonClick += SeriesPanel_WatchEpisodeButtonClick; // Don't forget to attach event listeners for new panels as well! }
/// <summary> /// Delete seriespanel /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void SeriesPanel_Disposed(object sender, EventArgs e) { SeriesPanel sp = (SeriesPanel)sender; GroupBox gb; switch (sp.Day) { case "Monday": gb = this.groupBox1; break; case "Tuesday": gb = this.groupBox2; break; case "Wednesday": gb = this.groupBox3; break; case "Thursday": gb = this.groupBox4; break; case "Friday": gb = this.groupBox5; break; case "Saturday": gb = this.groupBox6; break; case "Sunday": gb = this.groupBox7; break; default: gb = new GroupBox(); break; } int heigh = 60; foreach (Control c in gb.Controls) { if (c == gb.Controls[0]) { continue; } c.Location = new Point(5, heigh - 40 + 20); heigh += scale; } }
protected override void OnPointerMoved(PointerRoutedEventArgs e) { if ((EnableSegmentDragging || EnableSeriesDragging) && PreviewSeries == null && DraggingSegment == null && e.Pointer.PointerDeviceType == PointerDeviceType.Touch) { SeriesPanel.CapturePointer(e.Pointer); var mousePos = e.GetCurrentPoint(SeriesPanel).Position; var element = e.OriginalSource as FrameworkElement; if (element != null && element.Tag is ChartSegment) { if (Math.Abs(mousePos.X - mousePos.X) < 20 && Math.Abs(mousePos.Y - mousePos.Y) < 20) { ActivateDragging(mousePos, e.OriginalSource); } } } else if (EnableSeriesDragging) { OnChartDragDelta(e.GetCurrentPoint(SeriesPanel).Position, e.OriginalSource); } else { base.OnPointerMoved(e); } }
/// <summary> /// /// </summary> private void LoadDataFromXMLFile() { if (!File.Exists(XML_FILE)) { this.CreateXMLFile(); } try { XPathDocument doc = new XPathDocument(XML_FILE); XPathNavigator nav = doc.CreateNavigator(); string expression; XPathExpression expr; XPathNodeIterator iterator; foreach (string day in daysOfWeek) { Console.WriteLine("Loading {0}", day); expression = @"/schedule/day[@name='" + day + "']/title"; expr = nav.Compile(expression); iterator = nav.Select(expr); GroupBox gb; switch (day) { case "Monday": gb = this.groupBox1; break; case "Tuesday": gb = this.groupBox2; break; case "Wednesday": gb = this.groupBox3; break; case "Thursday": gb = this.groupBox4; break; case "Friday": gb = this.groupBox5; break; case "Saturday": gb = this.groupBox6; break; case "Sunday": gb = this.groupBox7; break; default: gb = new GroupBox(); break; } int heigh = gb.Height; while (iterator.MoveNext()) { XPathNavigator nav2 = iterator.Current.Clone(); SeriesPanel sp = new SeriesPanel(day, nav2.Value); sp.Location = new Point(5, heigh - 40 + 20); sp.Disposed += new EventHandler(SeriesPanel_Disposed); sp.Click += new EventHandler(SeriesPanel_Click); gb.Controls.Add(sp); heigh += scale; } foreach (Control c in gb.Controls) { c.Visible = false; } gb.AutoSize = false; gb.Height = 60; } } catch (Exception ex) { Console.WriteLine("Exception: {0}", ex.ToString()); } }