private void CurrentActiveCharacterCombo_Selected(object sender, SelectionChangedEventArgs e) { if (CurrentActiveCharacterCombo.SelectedIndex == -1) { RegionsViewUC.ActiveCharacter = null; RegionUC.ActiveCharacter = null; FleetMembersList.ItemsSource = null; RegionUC.UpdateActiveCharacter(); UniverseUC.UpdateActiveCharacter(null); } else { EVEData.LocalCharacter lc = CurrentActiveCharacterCombo.SelectedItem as EVEData.LocalCharacter; ActiveCharacter = lc; FleetMembersList.ItemsSource = lc.FleetInfo.Members; CollectionViewSource.GetDefaultView(FleetMembersList.ItemsSource).Refresh(); RegionsViewUC.ActiveCharacter = lc; RegionUC.UpdateActiveCharacter(lc); UniverseUC.UpdateActiveCharacter(lc); } OnCharacterSelectionChanged(); }
private void CharactersList_MouseDoubleClick(object sender, MouseButtonEventArgs e) { if (sender != null) { DataGrid grid = sender as DataGrid; if (grid != null && grid.SelectedItems != null && grid.SelectedItems.Count == 1) { DataGridRow dgr = grid.ItemContainerGenerator.ContainerFromItem(grid.SelectedItem) as DataGridRow; EVEData.LocalCharacter lc = dgr.Item as EVEData.LocalCharacter; if (lc != null) { ActiveCharacter = lc; CurrentActiveCharacterCombo.SelectedItem = lc; FleetMembersList.ItemsSource = lc.FleetInfo.Members; CollectionViewSource.GetDefaultView(FleetMembersList.ItemsSource).Refresh(); RegionUC.FollowCharacter = true; RegionUC.SelectSystem(lc.Location, true); UniverseUC.FollowCharacter = true; UniverseUC.UpdateActiveCharacter(lc); } } } }
private void ResetColourData_Click(object sender, RoutedEventArgs e) { MapConf.SetDefaultColours(); ColoursPropertyGrid.SelectedObject = MapConf.ActiveColourScheme; RegionUC.ReDrawMap(true); UniverseUC.ReDrawMap(true, true, true); }
private void RawIntelBox_MouseDoubleClick(object sender, MouseButtonEventArgs e) { if (RawIntelBox.SelectedItem == null) { return; } EVEData.IntelData intel = RawIntelBox.SelectedItem as EVEData.IntelData; foreach (string s in intel.IntelString.Split(' ')) { if (s == "") { continue; } foreach (EVEData.System sys in EVEManager.Systems) { if (s.IndexOf(sys.Name, StringComparison.OrdinalIgnoreCase) == 0) { if (RegionUC.Region.Name != sys.Region) { RegionUC.SelectRegion(sys.Region); } RegionUC.SelectSystem(s, true); return; } } } }
private void MapConf_PropertyChanged(object sender, PropertyChangedEventArgs e) { if (e.PropertyName == "AlwaysOnTop") { if (MapConf.AlwaysOnTop) { this.Topmost = true; } else { this.Topmost = false; } } if (e.PropertyName == "WarningRange") { EVEManager.WarningSystemRange = MapConf.WarningRange; foreach (EVEData.LocalCharacter lc in EVEManager.LocalCharacters) { lc.WarningSystemRange = EVEManager.WarningSystemRange; lc.warningSystemsNeedsUpdate = true; } } if (e.PropertyName == "ShowZKillData") { EVEManager.ZKillFeed.PauseUpdate = !MapConf.ShowZKillData; } RegionUC.ReDrawMap(true); if (e.PropertyName == "ShowRegionStandings") { RegionsViewUC.Redraw(true); } if (e.PropertyName == "ShowUniverseRats") { RegionsViewUC.Redraw(true); } if (e.PropertyName == "ShowUniversePods") { RegionsViewUC.Redraw(true); } if (e.PropertyName == "ShowUniverseKills") { RegionsViewUC.Redraw(true); } if (e.PropertyName == "UniverseDataScale") { RegionsViewUC.Redraw(true); } }
private void UniverseUC_RequestRegionSystem(object sender, RoutedEventArgs e) { string sysName = e.OriginalSource as string; RegionUC.FollowCharacter = false; RegionUC.SelectSystem(sysName, true); if (RegionLayoutDoc != null) { RegionLayoutDoc.IsSelected = true; } }
private void RegionsViewUC_RequestRegion(object sender, RoutedEventArgs e) { string regionName = e.OriginalSource as string; RegionUC.FollowCharacter = false; RegionUC.SelectRegion(regionName); if (RegionLayoutDoc != null) { RegionLayoutDoc.IsSelected = true; } }
private void RawIntelBox_MouseDoubleClick(object sender, MouseButtonEventArgs e) { if (RawIntelBox.SelectedItem == null) { return; } EVEData.IntelData chat = RawIntelBox.SelectedItem as EVEData.IntelData; bool selectedSystem = false; foreach (string s in chat.IntelString.Split(' ')) { if (s == "") { continue; } var linkParser = new Regex(@"\b(?:https?://|www\.)\S+\b", RegexOptions.Compiled | RegexOptions.IgnoreCase); foreach (Match m in linkParser.Matches(s)) { string url = m.Value; if (!Uri.IsWellFormedUriString(url, UriKind.Absolute)) { url = "http://" + url; } if (Uri.IsWellFormedUriString(url, UriKind.Absolute)) { Process.Start(url); } } // only select the first system if (!selectedSystem) { foreach (EVEData.System sys in EVEManager.Systems) { if (s.IndexOf(sys.Name, StringComparison.OrdinalIgnoreCase) == 0) { if (RegionUC.Region.Name != sys.Region) { RegionUC.SelectRegion(sys.Region); } RegionUC.SelectSystem(s, true); selectedSystem = true; } } } } }
private void TheraConnectionsList_MouseDoubleClick(object sender, MouseButtonEventArgs e) { if (sender != null) { DataGrid grid = sender as DataGrid; if (grid != null && grid.SelectedItems != null && grid.SelectedItems.Count == 1) { DataGridRow dgr = grid.ItemContainerGenerator.ContainerFromItem(grid.SelectedItem) as DataGridRow; EVEData.TheraConnection tc = dgr.Item as EVEData.TheraConnection; if (tc != null) { RegionUC.SelectSystem(tc.System, true); } } } }
private void CharactersListMenuItemDelete_Click(object sender, RoutedEventArgs e) { if (CharactersList.SelectedIndex == -1) { return; } EVEData.LocalCharacter lc = CharactersList.SelectedItem as EVEData.LocalCharacter; ActiveCharacter = null; CurrentActiveCharacterCombo.SelectedIndex = -1; RegionsViewUC.ActiveCharacter = null; RegionUC.ActiveCharacter = null; RegionUC.UpdateActiveCharacter(); UniverseUC.ActiveCharacter = null; OnCharacterSelectionChanged(); EVEManager.LocalCharacters.Remove(lc); }
private void ZKBContexMenu_ShowSystem_Click(object sender, RoutedEventArgs e) { if (ZKBFeed.SelectedIndex == -1) { return; } EVEData.ZKillRedisQ.ZKBDataSimple zkbs = ZKBFeed.SelectedItem as EVEData.ZKillRedisQ.ZKBDataSimple; if (zkbs != null) { RegionUC.SelectSystem(zkbs.SystemName, true); if (RegionLayoutDoc != null) { RegionLayoutDoc.IsSelected = true; } } }
private void CurrentActiveCharacterCombo_Selected(object sender, SelectionChangedEventArgs e) { if (CurrentActiveCharacterCombo.SelectedIndex == -1) { RegionsViewUC.ActiveCharacter = null; RegionUC.ActiveCharacter = null; RegionUC.UpdateActiveCharacter(); UniverseUC.UpdateActiveCharacter(null); } else { EVEData.LocalCharacter lc = CurrentActiveCharacterCombo.SelectedItem as EVEData.LocalCharacter; ActiveCharacter = lc; RegionsViewUC.ActiveCharacter = lc; RegionUC.UpdateActiveCharacter(lc); UniverseUC.UpdateActiveCharacter(lc); } OnCharacterSelectionChanged(); }
private void ImportPasteJumpGatesBtn_Click(object sender, RoutedEventArgs e) { if (!Clipboard.ContainsText(TextDataFormat.Text)) { return; } String jbText = Clipboard.GetText(TextDataFormat.Text); using (StringReader reader = new StringReader(jbText)) { string line = string.Empty; do { line = reader.ReadLine(); if (line != null) { // ignore comments if (line.StartsWith("#")) { continue; } string[] bits = line.Split(' '); if (bits.Length > 3) { long IDFrom = 0; long.TryParse(bits[0], out IDFrom); string from = bits[1]; string to = bits[3]; EVEManager.AddUpdateJumpBridge(from, to, IDFrom); } } } while (line != null); } EVEData.Navigation.ClearJumpBridges(); EVEData.Navigation.UpdateJumpBridges(EVEManager.JumpBridges.ToList()); RegionUC.ReDrawMap(true); }
private void UpdateCharacterSelectionBasedOnActiveWindow() { string ActiveWindowText = Utils.GetCaptionOfActiveWindow(); if (ActiveWindowText.Contains("EVE - ")) { string characterName = ActiveWindowText.Substring(6); foreach (EVEData.LocalCharacter lc in EVEManager.LocalCharacters) { if (lc.Name == characterName) { ActiveCharacter = lc; CurrentActiveCharacterCombo.SelectedItem = lc; RegionUC.UpdateActiveCharacter(lc); UniverseUC.UpdateActiveCharacter(lc); break; } } } }
private void EnableDisableJumpGateMenuItem_Click(object sender, RoutedEventArgs e) { if (JumpBridgeList.SelectedIndex == -1) { return; } EVEData.JumpBridge jb = JumpBridgeList.SelectedItem as EVEData.JumpBridge; jb.Disabled = !jb.Disabled; EVEData.Navigation.ClearJumpBridges(); EVEData.Navigation.UpdateJumpBridges(EVEManager.JumpBridges.ToList()); RegionUC.ReDrawMap(true); EVEData.LocalCharacter c = RegionUC.ActiveCharacter as EVEData.LocalCharacter; if (c != null && c.Waypoints.Count > 0) { c.RecalcRoute(); } }
private void UpdateCharacterSelectionBasedOnActiveWindow() { string ActiveWindowText = Utils.GetCaptionOfActiveWindow(); if (ActiveWindowText.Contains("EVE - ")) { string characterName = ActiveWindowText.Substring(6); foreach (EVEData.LocalCharacter lc in EVEManager.LocalCharacters) { if (lc.Name == characterName) { ActiveCharacter = lc; CurrentActiveCharacterCombo.SelectedItem = lc; FleetMembersList.ItemsSource = lc.FleetInfo.Members; CollectionViewSource.GetDefaultView(FleetMembersList.ItemsSource).Refresh(); RegionUC.UpdateActiveCharacter(lc); UniverseUC.UpdateActiveCharacter(lc); break; } } } }
private void SovCampaignList_MouseDoubleClick(object sender, MouseButtonEventArgs e) { if (sender != null) { DataGrid grid = sender as DataGrid; if (grid != null && grid.SelectedItems != null && grid.SelectedItems.Count == 1) { DataGridRow dgr = grid.ItemContainerGenerator.ContainerFromItem(grid.SelectedItem) as DataGridRow; EVEData.SOVCampaign sc = dgr.Item as EVEData.SOVCampaign; if (sc != null) { RegionUC.SelectSystem(sc.System, true); } if (RegionLayoutDoc != null) { RegionLayoutDoc.IsSelected = true; } } } }
private async void ImportJumpGatesBtn_Click(object sender, RoutedEventArgs e) { ImportJumpGatesBtn.IsEnabled = false; ClearJumpGatesBtn.IsEnabled = false; JumpBridgeList.IsEnabled = false; ImportPasteJumpGatesBtn.IsEnabled = false; ExportJumpGatesBtn.IsEnabled = false; foreach (EVEData.LocalCharacter c in EVEManager.LocalCharacters) { if (c.ESILinked) { // This should never be set due to https://developers.eveonline.com/blog/article/the-esi-api-is-a-shared-resource-do-not-abuse-it if (c.DeepSearchEnabled) { string chars = "abcdefghijklmnopqrstuvwxyz0123456789"; string basesearch = " » "; foreach (char cc in chars) { string search = basesearch + cc; List <EVEData.JumpBridge> jbl = await c.FindJumpGates(search); foreach (EVEData.JumpBridge jb in jbl) { bool found = false; foreach (EVEData.JumpBridge jbr in EVEManager.JumpBridges) { if ((jb.From == jbr.From && jb.To == jbr.To) || (jb.From == jbr.To && jb.To == jbr.From)) { found = true; } } if (!found) { EVEManager.JumpBridges.Add(jb); } } Thread.Sleep(2000); } } else { List <EVEData.JumpBridge> jbl = await c.FindJumpGates(GateSearchFilter.Text); foreach (EVEData.JumpBridge jb in jbl) { bool found = false; foreach (EVEData.JumpBridge jbr in EVEManager.JumpBridges) { if ((jb.From == jbr.From && jb.To == jbr.To) || (jb.From == jbr.To && jb.To == jbr.From)) { found = true; } } if (!found) { EVEManager.JumpBridges.Add(jb); } } } } } EVEData.Navigation.ClearJumpBridges(); EVEData.Navigation.UpdateJumpBridges(EVEManager.JumpBridges.ToList()); RegionUC.ReDrawMap(true); ImportJumpGatesBtn.IsEnabled = true; ClearJumpGatesBtn.IsEnabled = true; JumpBridgeList.IsEnabled = true; ImportPasteJumpGatesBtn.IsEnabled = true; ExportJumpGatesBtn.IsEnabled = true; }
private void PreferencesWindow_Closed(object sender, EventArgs e) { RegionUC.ReDrawMap(true); UniverseUC.ReDrawMap(true, true, false); }
private void ColoursPropertyGrid_PropertyValueChanged(object sender, Xceed.Wpf.Toolkit.PropertyGrid.PropertyValueChangedEventArgs e) { RegionUC.ReDrawMap(true); UniverseUC.ReDrawMap(true, true, true); }
/// <summary> /// Main Window /// </summary> public MainWindow() { AppWindow = this; DataContext = this; mediaPlayer = new MediaPlayer(); Uri woopUri = new Uri(AppDomain.CurrentDomain.BaseDirectory + @"\Sounds\woop.mp3"); mediaPlayer.Open(woopUri); InitializeComponent(); Title = "SMT (Crystal Vagooey : " + SMT_VERSION + ")"; CheckGitHubVersion(); // Load the Dock Manager Layout file string dockManagerLayoutName = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\SMT\\" + SMT_VERSION + "\\Layout.dat"; if (File.Exists(dockManagerLayoutName)) { try { AvalonDock.Layout.Serialization.XmlLayoutSerializer ls = new AvalonDock.Layout.Serialization.XmlLayoutSerializer(dockManager); using (var sr = new StreamReader(dockManagerLayoutName)) { ls.Deserialize(sr); } } catch { } } // Due to bugs in the Dock manager patch up the content id's for the 2 main views RegionLayoutDoc = FindDocWithContentID(dockManager.Layout, "MapRegionContentID"); UniverseLayoutDoc = FindDocWithContentID(dockManager.Layout, "FullUniverseViewID"); // load any custom map settings off disk string mapConfigFileName = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\SMT\\" + SMT_VERSION + "\\MapConfig.dat"; if (File.Exists(mapConfigFileName)) { try { XmlSerializer xms = new XmlSerializer(typeof(MapConfig)); FileStream fs = new FileStream(mapConfigFileName, FileMode.Open); XmlReader xmlr = XmlReader.Create(fs); MapConf = (MapConfig)xms.Deserialize(xmlr); fs.Close(); } catch { MapConf = new MapConfig(); MapConf.SetDefaultColours(); } } else { MapConf = new MapConfig(); MapConf.SetDefaultColours(); } // Create the main EVE manager EVEManager = new EVEData.EveManager(SMT_VERSION); EVEData.EveManager.Instance = EVEManager; // if we want to re-build the data as we've changed the format, recreate it all from scratch bool initFromScratch = false; if (initFromScratch) { EVEManager.CreateFromScratch(); } else { EVEManager.LoadFromDisk(); } EVEManager.SetupIntelWatcher(); RawIntelBox.ItemsSource = EVEManager.IntelDataList; // load jump bridge data EVEManager.LoadJumpBridgeData(); EVEManager.UpdateESIUniverseData(); EVEManager.InitNavigation(); CharactersList.ItemsSource = EVEManager.LocalCharacters; CurrentActiveCharacterCombo.ItemsSource = EVEManager.LocalCharacters; TheraConnectionsList.ItemsSource = EVEManager.TheraConnections; JumpBridgeList.ItemsSource = EVEManager.JumpBridges; SovCampaignList.ItemsSource = EVEManager.ActiveSovCampaigns; EVEManager.ActiveSovCampaigns.CollectionChanged += ActiveSovCampaigns_CollectionChanged; RegionUC.MapConf = MapConf; RegionUC.Init(); RegionUC.SelectRegion(MapConf.DefaultRegion); RegionUC.RegionChanged += RegionUC_RegionChanged; RegionUC.UniverseSystemSelect += RegionUC_UniverseSystemSelect; UniverseUC.MapConf = MapConf; UniverseUC.Init(); UniverseUC.RequestRegionSystem += UniverseUC_RequestRegionSystem; RegionsViewUC.MapConf = MapConf; RegionsViewUC.Init(); RegionsViewUC.RequestRegion += RegionsViewUC_RequestRegion; AppStatusBar.DataContext = EVEManager.ServerInfo; // load the anom data string anomDataFilename = EVEManager.SaveDataVersionFolder + @"\Anoms.dat"; if (File.Exists(anomDataFilename)) { try { XmlSerializer xms = new XmlSerializer(typeof(EVEData.AnomManager)); FileStream fs = new FileStream(anomDataFilename, FileMode.Open); XmlReader xmlr = XmlReader.Create(fs); ANOMManager = (EVEData.AnomManager)xms.Deserialize(xmlr); fs.Close(); } catch { ANOMManager = new EVEData.AnomManager(); } } else { ANOMManager = new EVEData.AnomManager(); } RegionUC.ANOMManager = ANOMManager; List <EVEData.System> globalSystemList = new List <EVEData.System>(EVEManager.Systems); globalSystemList.Sort((a, b) => string.Compare(a.Name, b.Name)); RouteSystemDropDownAC.ItemsSource = globalSystemList; ColoursPropertyGrid.SelectedObject = MapConf.ActiveColourScheme; ColoursPropertyGrid.PropertyValueChanged += ColoursPropertyGrid_PropertyValueChanged;; MapConf.PropertyChanged += MapConf_PropertyChanged; Closed += MainWindow_Closed; EVEManager.IntelAddedEvent += OnIntelAdded; uiRefreshTimer = new System.Windows.Threading.DispatcherTimer(); uiRefreshTimer.Tick += UiRefreshTimer_Tick; uiRefreshTimer.Interval = new TimeSpan(0, 0, 1); uiRefreshTimer.Start(); ZKBFeed.ItemsSource = EVEManager.ZKillFeed.KillStream; CollectionView zKBFeedview = (CollectionView)CollectionViewSource.GetDefaultView(ZKBFeed.ItemsSource); zKBFeedview.Refresh(); zKBFeedview.Filter = ZKBFeedFilter; foreach (EVEData.LocalCharacter lc in EVEManager.LocalCharacters) { lc.WarningSystemRange = MapConf.WarningRange; lc.Location = ""; } }