/// <summary> /// entfernt Raum von Seite /// </summary> private void _siteControl_OnRemoveSite(Site site) { try { // Listeneintrag in Index suchen ListViewItem item = (ListViewItem)_listViewHash[site.Code]; // wenn Listeneintrag gefunden, aus Ansicht und Index entfernen if (item != null) { listView.Items.Remove(item); _listViewHash.Remove(site.Code); } // Raumansicht in Index suchen SiteView siteView = (SiteView)_siteViews[site.Code]; // wenn Raumansicht gefunden, von Seite und Index entfernen if (siteView != null) { panelBottom.Controls.Remove(siteView); siteView.Dispose(); _siteViews.Remove(site.Code); } } catch (Exception ex) { Logger.Log.Error("Error on removing site.", ex); } }
/// <summary> /// fügt Raum zu Seite hinzu /// </summary> private void _siteControl_OnAddSite(Site site) { try { // neuen Listeneintrag erzeugen ListViewItem item = new ListViewItem(site.Code); item.SubItems.Add(site.Name); item.SubItems.Add(site.DeviceCount.ToString()); item.Tag = site.Code; // Listeneintrag zu Ansicht und Index hinzufügen listView.Items.Add(item); _listViewHash.Add(site.Code, item); // neue Raumansicht erzeugen und konfigurieren SiteView siteView = new SiteView(site); siteView.Visible = false; siteView.Dock = DockStyle.Fill; siteView.ContextMenu = _siteViewContextMenu; // Raumansicht zu Seite und Index hinzufügen panelBottom.Controls.Add(siteView); _siteViews.Add(site.Code, siteView); // initialen Listeneintrag selektieren if (listView.Items.Count == 1) { item.Selected = true; } } catch (Exception ex) { Logger.Log.Error("Error on adding site.", ex); } }
/// <summary> /// referenziert aktuelle Raumansicht /// </summary> private void SetCurrentSiteView(SiteView siteView) { if (_currentSiteView != null) { _currentSiteView.OnSelectedItemChanged -= new SiteView.OnSelectedItemChangedEventHandler( _currentSiteView_OnSelectedItemChanged); _currentSiteView = null; } if (siteView != null) { _currentSiteView = siteView; _currentSiteView.OnSelectedItemChanged += new SiteView.OnSelectedItemChangedEventHandler( _currentSiteView_OnSelectedItemChanged); } }
/// <summary> /// zeigt Ansicht des ausgewählten Raumes an /// </summary> private void listView_SelectedIndexChanged(object sender, System.EventArgs e) { try { // alle Raumansichten verbergen foreach (SiteView siteView in _siteViews.Values) { siteView.Visible = false; } // wenn Raum ausgewählt if (listView.SelectedItems.Count > 0) { // Raumansicht suchen ListViewItem item = listView.SelectedItems[0]; SiteView siteView = (SiteView)_siteViews[item.Tag]; // wenn Raumansicht gefunden, anzeigen if (siteView != null) { siteView.Visible = true; } // aktuelle Raumansicht referenzieren SetCurrentSiteView(siteView); } else { // sonst aktuelle Raumansicht freigeben SetCurrentSiteView(null); } } catch (Exception ex) { Logger.Log.Error("Error on showing site view.", ex); } }
/// <summary> /// aktualisiert Raum /// </summary> private void _siteControl_OnRefreshSite(Site site) { try { // Listeneintrag in Index suchen ListViewItem item = (ListViewItem)_listViewHash[site.Code]; // wenn Listeneintrag gefunden, aktualisieren if (item != null) { item.Text = site.Code; item.SubItems[1].Text = site.Name; item.SubItems[2].Text = site.DeviceCount.ToString(); } // Raumansicht in Index suchen SiteView siteView = (SiteView)_siteViews[site.Code]; // wenn Raumansicht gefunden, aktualisieren if (siteView != null) { siteView.RefreshParameters(); } // wenn Listeneintrag ausgewählt, Änderung signalisieren if ((listView.SelectedItems.Count > 0) && (listView.SelectedItems[0].Tag.ToString() == site.Code)) { RaiseOnSelectedItemChanged(); } } catch (Exception ex) { Logger.Log.Error("Error on refreshing site.", ex); } }