private void parseFiles() { try { string cmlfolderpath = Properties.Settings.Default.CMLDirectory + "\\" + Defaults.CML.FusionFolderName + "\\" + Defaults.CML.FusionBayesianNetworkFolderName + "\\"; string schemespath = cmlfolderpath + "schemes.set"; string sessionsspath = cmlfolderpath + "sessions.set"; StreamReader reader = File.OpenText(schemespath); string line; while ((line = reader.ReadLine()) != null) { string[] items = line.Split(':'); SchemeAnnotatorPair sap = new SchemeAnnotatorPair { Name = items[0], Annotator = items[1] }; SchemeandAnnotatorBox.Items.Add(sap); } SchemeandAnnotatorBox.SelectAll(); StreamReader reader2 = File.OpenText(sessionsspath); while ((line = reader2.ReadLine()) != null) { DatabaseSession session = ((List <DatabaseSession>)SessionsBox.ItemsSource).Find(a => a.Name == line); SessionsBox.SelectedItems.Add(session); } SessionsBox.ScrollIntoView(SessionsBox.SelectedItem); } catch { } }
private void Ok_Click(object sender, RoutedEventArgs e) { Properties.Settings.Default.DataServerLogin = serverLogin.Text; Properties.Settings.Default.DataServerPass = MainHandler.Encode(serverPassword.Password); Properties.Settings.Default.Save(); if (SessionsBox.SelectedItem != null) { DatabaseSession session = (DatabaseSession)SessionsBox.SelectedItem; if (DatabaseHandler.ChangeSession(session.Name)) { // DialogResult = true; } } if (StreamsBox.SelectedItem != null) { closeAfterDownload = true; downloadSelectedFiles(); } else { DialogResult = true; Close(); } }
private void EditSession_Click(object sender, RoutedEventArgs e) { if (SessionsBox.SelectedItem != null) { DatabaseSession session = (DatabaseSession)SessionsBox.SelectedItem; string name = session.Name; DatabaseAdminSessionWindow dialog = new DatabaseAdminSessionWindow(ref session); dialog.WindowStartupLocation = WindowStartupLocation.CenterScreen; dialog.ShowDialog(); if (dialog.DialogResult == true) { DatabaseHandler.UpdateSession(name, session); var sessions = SessionsBox.SelectedItems; foreach (DatabaseSession s in sessions) { if (session != s) { session.Name = s.Name; DatabaseHandler.UpdateSession(s.Name, session); } } GetSessions(session.Name); } } }
private void CopySession_Click(object sender, RoutedEventArgs e) { if (SessionsBox.SelectedItem != null) { DatabaseSession session = (DatabaseSession)SessionsBox.SelectedItem; Dictionary <string, UserInputWindow.Input> input = new Dictionary <string, UserInputWindow.Input>(); input["names"] = new UserInputWindow.Input() { Label = "Name", DefaultValue = session.Name }; UserInputWindow dialog = new UserInputWindow("Enter new name (if several separate by ';')", input); dialog.ShowDialog(); if (dialog.DialogResult == true) { string names = dialog.Result("names"); string[] tokens = names.Split(';'); foreach (string token in tokens) { DatabaseSession newSession = new DatabaseSession() { Name = token, Date = session.Date, Language = session.Language, Location = session.Location }; DatabaseHandler.AddSession(newSession); } GetSessions(session.Name); } } }
public void GetSessions() { if (SessionsBox.HasItems) { SessionsBox.ItemsSource = null; } List <string> sessionNames = new List <string>(); List <DatabaseSession> allSessions = DatabaseHandler.Sessions; foreach (DatabaseSession s in allSessions) { sessionNames.Add(s.Name); } List <DatabaseSession> sessions = new List <DatabaseSession>(); foreach (string sessionName in sessionNames) { DatabaseSession session = new DatabaseSession() { Name = sessionName }; if (DatabaseHandler.GetSession(ref session)) { sessions.Add(session); } } SessionsBox.ItemsSource = sessions.OrderBy(s => s.Name).ToList(); }
public void GetAnnotations(DatabaseSession session) { if (session == null) { return; } Action EmptyDelegate = delegate() { }; LoadingLabel.Visibility = Visibility.Visible; this.UpdateLayout(); this.Dispatcher.Invoke(DispatcherPriority.Render, EmptyDelegate); bool onlyme = showonlymine.IsChecked.Value; bool onlyunfinished = showOnlyUnfinished.IsChecked.Value; AnnotationsBox.ItemsSource = null; this.annotations.Clear(); var annotations = DatabaseHandler.Database.GetCollection <BsonDocument>(DatabaseDefinitionCollections.Annotations); var builder = Builders <BsonDocument> .Filter; var filter = builder.Eq("session_id", session.Id); List <DatabaseAnnotation> list = DatabaseHandler.GetAnnotations(filter, onlyme, onlyunfinished); AnnotationsBox.ItemsSource = list; LoadingLabel.Visibility = Visibility.Collapsed; }
private void SelectFinishedSessions() { List <DatabaseSession> sessions = (List <DatabaseSession>)SessionsBox.ItemsSource; if (sessions == null) { return; } DatabaseScheme scheme = (DatabaseScheme)SchemesBox.SelectedItem; DatabaseAnnotator annotator = (DatabaseAnnotator)AnnotatorsBox.SelectedItem; foreach (DatabaseRole role in RolesBox.SelectedItems) { List <DatabaseAnnotation> annotations = DatabaseHandler.GetAnnotations(scheme, role, annotator); foreach (DatabaseAnnotation annotation in annotations) { if (annotation.IsFinished) { DatabaseSession session = sessions.Find(s => s.Name == annotation.Session); if (session != null) { SessionsBox.SelectedItems.Add(session); } } } } }
private void SessionsBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (SessionsBox.SelectedItem != null) { DatabaseSession session = (DatabaseSession)SessionsBox.SelectedItem; //GetStreams(session); } }
private void SessionsBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (SessionsBox.SelectedItem != null) { searchTextBox.Text = ""; DatabaseSession session = (DatabaseSession)SessionsBox.SelectedItem; GetAnnotations(session); GetStreams(); } }
//not used anymore public void addAnnoToList(BsonDocument annotation, DatabaseSession session, bool onlyMe, bool onlyUnfinished) { ObjectId id = annotation["_id"].AsObjectId; string roleName = ""; DatabaseHandler.GetObjectName(ref roleName, DatabaseDefinitionCollections.Roles, annotation["role_id"].AsObjectId); string schemeName = ""; DatabaseHandler.GetObjectName(ref schemeName, DatabaseDefinitionCollections.Schemes, annotation["scheme_id"].AsObjectId); string annotatorName = ""; DatabaseHandler.GetObjectName(ref annotatorName, DatabaseDefinitionCollections.Annotators, annotation["annotator_id"].AsObjectId); string annotatorFullName = DatabaseHandler.GetUserInfo(annotatorName).Fullname; //DatabaseHandler.GetObjectField(ref annotatorFullName, DatabaseDefinitionCollections.Annotators, annotation["annotator_id"].AsObjectId, "fullname"); bool isFinished = false; try { isFinished = annotation["isFinished"].AsBoolean; } catch { } bool islocked = false; try { islocked = annotation["isLocked"].AsBoolean; } catch { } DateTime date = DateTime.Today; try { date = annotation["date"].ToUniversalTime(); } catch { } bool isOwner = Properties.Settings.Default.MongoDBUser == annotatorName || DatabaseHandler.CheckAuthentication() > DatabaseAuthentication.DBADMIN; if (!onlyMe && !onlyUnfinished || onlyMe && !onlyUnfinished && Properties.Settings.Default.MongoDBUser == annotatorName || !onlyMe && onlyUnfinished && !isFinished || onlyMe && onlyUnfinished && !isFinished && Properties.Settings.Default.MongoDBUser == annotatorName) { annotations.Add(new DatabaseAnnotation() { Id = id, Role = roleName, Scheme = schemeName, Annotator = annotatorName, AnnotatorFullName = annotatorFullName, Session = session.Name, IsFinished = isFinished, IsLocked = islocked, Date = date, IsOwner = isOwner }); } }
private void showOnlyMine_Unchecked(object sender, RoutedEventArgs e) { Properties.Settings.Default.DatabaseShowOnlyMine = false; Properties.Settings.Default.Save(); if (DatabaseBox.SelectedItem != null && SessionsBox.SelectedItem != null) { DatabaseSession session = (DatabaseSession)SessionsBox.SelectedItem; GetAnnotations(session); } }
private void CopyAnnotation_Click(object sender, RoutedEventArgs e) { if (AnnotationsBox.SelectedItem != null) { string annotatorName = DatabaseHandler.SelectAnnotator(); if (annotatorName != null) { DatabaseSession session = (DatabaseSession)SessionsBox.SelectedItem; var annotations = DatabaseHandler.Database.GetCollection <BsonDocument>(DatabaseDefinitionCollections.Annotations); ObjectId annotid_new = new ObjectId(); DatabaseHandler.GetObjectID(ref annotid_new, DatabaseDefinitionCollections.Annotators, annotatorName); foreach (var item in AnnotationsBox.SelectedItems) { ObjectId roleID = GetIdFromName(DatabaseDefinitionCollections.Roles, ((DatabaseAnnotation)(item)).Role); ObjectId schemeID = GetIdFromName(DatabaseDefinitionCollections.Schemes, ((DatabaseAnnotation)(item)).Scheme); ObjectId annotatorID = GetIdFromName(DatabaseDefinitionCollections.Annotators, ((DatabaseAnnotation)(item)).Annotator); ObjectId sessionID = GetIdFromName(DatabaseDefinitionCollections.Sessions, session.Name); var builder = Builders <BsonDocument> .Filter; var filter = builder.Eq("role_id", roleID) & builder.Eq("scheme_id", schemeID) & builder.Eq("annotator_id", annotatorID) & builder.Eq("session_id", sessionID); var anno = annotations.Find(filter).Single(); anno.Remove("_id"); anno["annotator_id"] = annotid_new; try { anno["isFinished"] = false; } catch { } try { anno["isLocked"] = false; } catch { } UpdateOptions uo = new UpdateOptions(); uo.IsUpsert = true; filter = builder.Eq("role_id", roleID) & builder.Eq("scheme_id", schemeID) & builder.Eq("annotator_id", annotid_new) & builder.Eq("session_id", sessionID); var result = annotations.ReplaceOne(filter, anno, uo); } GetAnnotations(session); } } }
private void ImportfromFolder_Click(object sender, RoutedEventArgs e) { string path = ""; var dialog = new System.Windows.Forms.FolderBrowserDialog(); dialog.SelectedPath = Properties.Settings.Default.DatabaseDirectory; dialog.ShowNewFolderButton = true; dialog.Description = "Select the root folder of your sessions."; System.Windows.Forms.DialogResult result = System.Windows.Forms.DialogResult.None; try { dialog.SelectedPath = Properties.Settings.Default.DatabaseDirectory; result = dialog.ShowDialog(); } catch { dialog.SelectedPath = ""; result = dialog.ShowDialog(); } if (result == System.Windows.Forms.DialogResult.OK) { path = dialog.SelectedPath; DatabaseSession session = new DatabaseSession(); DatabaseAdminSessionWindow sessiondialog = new DatabaseAdminSessionWindow(ref session, false); sessiondialog.WindowStartupLocation = WindowStartupLocation.CenterScreen; sessiondialog.ShowDialog(); if (sessiondialog.DialogResult == true) { foreach (var d in System.IO.Directory.GetDirectories(path)) { var dir = new DirectoryInfo(d); var dirName = dir.Name; DatabaseSession newSession = new DatabaseSession() { Name = dirName, Date = session.Date, Language = session.Language, Location = session.Location }; DatabaseHandler.AddSession(newSession); } GetSessions(); } } }
private void AnnotationResultBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (AnnotationsBox.SelectedValue != null) { DatabaseSession session = (DatabaseSession)SessionsBox.SelectedItem; IMongoCollection <BsonDocument> annotations = DatabaseHandler.Database.GetCollection <BsonDocument>(DatabaseDefinitionCollections.Annotations); for (int i = 0; i < AnnotationsBox.SelectedItems.Count; i++) { if (DatabaseHandler.CheckAuthentication() > DatabaseAuthentication.READWRITE || Properties.Settings.Default.MongoDBUser == ((DatabaseAnnotation)(AnnotationsBox.SelectedValue)).Annotator) { DeleteAnnotation.Visibility = Visibility.Visible; //CopyAnnotation.Visibility = Visibility.Visible; } } foreach (var item in AnnotationsBox.SelectedItems) { ObjectId roleID = GetIdFromName(DatabaseDefinitionCollections.Roles, ((DatabaseAnnotation)(item)).Role); ObjectId schemeID = GetIdFromName(DatabaseDefinitionCollections.Schemes, ((DatabaseAnnotation)(item)).Scheme); ObjectId annotatorID = GetIdFromName(DatabaseDefinitionCollections.Annotators, ((DatabaseAnnotation)(item)).Annotator); ObjectId sessionID = GetIdFromName(DatabaseDefinitionCollections.Sessions, session.Name); var builder = Builders <BsonDocument> .Filter; var filter = builder.Eq("role_id", roleID) & builder.Eq("scheme_id", schemeID) & builder.Eq("annotator_id", annotatorID) & builder.Eq("session_id", sessionID); var annotation = annotations.Find(filter).ToList(); if (annotation.Count == 0) { return; } BsonElement value; if (StreamsBox.Items != null && annotation[0].TryGetElement("streams", out value)) { //StreamsBox.SelectedItems.Clear(); foreach (BsonString doc in annotation[0]["streams"].AsBsonArray) { string name = doc.AsString; foreach (StreamItem stream in StreamsBox.Items) { if (stream.Name == name) { StreamsBox.SelectedItems.Add(stream); } } } } } } }
private void SelectSessionsFromFile(SessionSet set) { if (File.Exists(set.Path)) { string[] items = File.ReadAllLines(set.Path); foreach (string item in items) { List <DatabaseSession> sessions = (List <DatabaseSession>)SessionsBox.ItemsSource; DatabaseSession session = sessions.Find(s => s.Name == item); if (session != null) { SessionsBox.SelectedItems.Add(session); } } } }
public DatabaseAdminSessionWindow(ref DatabaseSession session, bool showname = true) { InitializeComponent(); this.session = session; if (showname == false) { NameField.Visibility = Visibility.Collapsed; NameLabel.Visibility = Visibility.Collapsed; } NameField.Text = session.Name; LanguageField.Text = session.Language; LocationField.Text = session.Location; DatePicker.SelectedDate = session.Date.Year == 1 ? DateTime.Today : session.Date; }
private void Window_Loaded(object sender, RoutedEventArgs e) { switchMode(); GetDatabases(DatabaseHandler.DatabaseName); if (mode == Mode.COMPLETE) { AnnoList annoList = AnnoTierStatic.Selected.AnnoList; DatabaseScheme scheme = ((List <DatabaseScheme>)SchemesBox.ItemsSource).Find(s => s.Name == annoList.Scheme.Name); if (scheme != null) { SchemesBox.SelectedItem = scheme; SchemesBox.ScrollIntoView(scheme); } DatabaseRole role = ((List <DatabaseRole>)RolesBox.ItemsSource).Find(r => r.Name == annoList.Meta.Role); if (role != null) { RolesBox.SelectedItem = role; RolesBox.ScrollIntoView(role); } DatabaseAnnotator annotator = ((List <DatabaseAnnotator>)AnnotatorsBox.ItemsSource).Find(a => a.Name == Properties.Settings.Default.MongoDBUser); if (annotator != null) { AnnotatorsBox.SelectedItem = annotator; AnnotatorsBox.ScrollIntoView(annotator); } DatabaseSession session = ((List <DatabaseSession>)SessionsBox.ItemsSource).Find(s => s.Name == DatabaseHandler.SessionName); if (session != null) { SessionsBox.SelectedItem = session; SessionsBox.ScrollIntoView(session); } Update(); } ApplyButton.Focus(); handleSelectionChanged = true; }
private void DeleteAnnotation_Click(object sender, RoutedEventArgs e) { if (AnnotationsBox.SelectedItem != null) { IMongoCollection <BsonDocument> annotations = DatabaseHandler.Database.GetCollection <BsonDocument>(DatabaseDefinitionCollections.Annotations); DatabaseSession session = (DatabaseSession)SessionsBox.SelectedItem; foreach (var item in AnnotationsBox.SelectedItems) { ObjectId roleID = GetIdFromName(DatabaseDefinitionCollections.Roles, ((DatabaseAnnotation)(item)).Role); ObjectId schemeID = GetIdFromName(DatabaseDefinitionCollections.Schemes, ((DatabaseAnnotation)(item)).Scheme); ObjectId annotatorID = GetIdFromName(DatabaseDefinitionCollections.Annotators, ((DatabaseAnnotation)(item)).Annotator); ObjectId sessionID = GetIdFromName(DatabaseDefinitionCollections.Sessions, session.Name); var builder = Builders <BsonDocument> .Filter; var filter = builder.Eq("role_id", roleID) & builder.Eq("scheme_id", schemeID) & builder.Eq("annotator_id", annotatorID) & builder.Eq("session_id", sessionID); var result = annotations.Find(filter).ToList(); bool isLocked = false; try { isLocked = result[0]["isLocked"].AsBoolean; } catch { } if (!isLocked) { ObjectId id = result[0]["_id"].AsObjectId; DatabaseHandler.DeleteAnnotation(id); } else { MessageBox.Show("Annotation is locked and cannot be deleted"); } } GetAnnotations(session); } }
private void AddSession_Click(object sender, RoutedEventArgs e) { if (DatabaseBox.SelectedItem != null) { DatabaseSession session = new DatabaseSession() { Date = DateTime.Today }; DatabaseAdminSessionWindow dialog = new DatabaseAdminSessionWindow(ref session); dialog.WindowStartupLocation = WindowStartupLocation.CenterScreen; dialog.ShowDialog(); if (dialog.DialogResult == true) { if (DatabaseHandler.AddSession(session)) { GetSessions(session.Name); } } } }
private void DatabaseResultsBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (DatabaseBox.SelectedItem != null) { DatabaseHandler.ChangeDatabase(DatabaseBox.SelectedItem.ToString()); DatabaseDBMeta meta = new DatabaseDBMeta { Name = DatabaseBox.SelectedItem.ToString() }; if (DatabaseHandler.GetDBMeta(ref meta)) { ServerLoginPanel.Visibility = meta.ServerAuth? Visibility.Visible : Visibility.Collapsed; } GetSessions(); GetStreams(); AnnotationsBox.ItemsSource = null; DatabaseSession session = (DatabaseSession)SessionsBox.SelectedItem; GetAnnotations(session); } }
public void GetSessions() { if (SchemesBox.SelectedItem == null || RolesBox.SelectedItem == null || AnnotatorsBox.SelectedItem == null) { return; } if (mode == Mode.TRAIN || mode == Mode.EVALUATE) { // show user sessions only List <DatabaseSession> sessions = new List <DatabaseSession>(); DatabaseAnnotator annotator = (DatabaseAnnotator)AnnotatorsBox.SelectedItem; DatabaseScheme scheme = (DatabaseScheme)SchemesBox.SelectedItem; foreach (DatabaseRole role in RolesBox.SelectedItems) { List <DatabaseAnnotation> annotations = DatabaseHandler.GetAnnotations(scheme, role, annotator); foreach (DatabaseAnnotation annotation in annotations) { DatabaseSession session = DatabaseHandler.Sessions.Find(s => s.Name == annotation.Session); if (session != null) { if (!sessions.Contains(session)) { sessions.Add(session); } } } } SessionsBox.ItemsSource = sessions.OrderBy(s => s.Name).ToList(); } else { SessionsBox.ItemsSource = DatabaseHandler.Sessions; } }
public void GetSessions() { //if (AnnotationSelectionBox.SelectedItem == null) //{ // return; ////} if (AnnotationSelectionBox.HasItems) { AnnotationSelectionBox.ItemsSource = null; } // show sessions for which an annotation exists or is missing List <BsonDocument> annotations = new List <BsonDocument>(); if (AnnotationSelectionBox.Items.Count > 0) { List <string> sessionNames = new List <string>(); { var item = (SchemeRoleAnnotator)AnnotationSelectionBox.Items[0]; string schemeName = item.Name; ObjectId schemeID = new ObjectId(); DatabaseHandler.GetObjectID(ref schemeID, DatabaseDefinitionCollections.Schemes, schemeName); string roleName = item.Role; ObjectId roleID = new ObjectId(); DatabaseHandler.GetObjectID(ref roleID, DatabaseDefinitionCollections.Roles, roleName); string annotatorName = DatabaseHandler.Annotators.Find(a => a.FullName == item.Annotator).Name; ObjectId annotatorID = new ObjectId(); DatabaseHandler.GetObjectID(ref annotatorID, DatabaseDefinitionCollections.Annotators, annotatorName); var builder = Builders <BsonDocument> .Filter; var filter = builder.Eq("scheme_id", schemeID) & builder.Eq("annotator_id", annotatorID); annotations.AddRange(DatabaseHandler.GetCollection(DatabaseDefinitionCollections.Annotations, true, filter)); foreach (BsonDocument annotation in annotations) { string sessionName = ""; DatabaseHandler.GetObjectName(ref sessionName, DatabaseDefinitionCollections.Sessions, annotation["session_id"].AsObjectId); if (sessionName != "" && !sessionNames.Contains(sessionName)) { sessionNames.Add(sessionName); } } } for (int i = 1; i < AnnotationSelectionBox.Items.Count; i++) { List <BsonDocument> annotationstemp = new List <BsonDocument>(); List <string> sessionNamestemp = new List <string>(); var item = (SchemeRoleAnnotator)AnnotationSelectionBox.Items[i]; string schemeName = item.Name; ObjectId schemeID = new ObjectId(); DatabaseHandler.GetObjectID(ref schemeID, DatabaseDefinitionCollections.Schemes, schemeName); string roleName = item.Role; ObjectId roleID = new ObjectId(); DatabaseHandler.GetObjectID(ref roleID, DatabaseDefinitionCollections.Roles, roleName); string annotatorName = DatabaseHandler.Annotators.Find(a => a.FullName == item.Annotator).Name; ObjectId annotatorID = new ObjectId(); DatabaseHandler.GetObjectID(ref annotatorID, DatabaseDefinitionCollections.Annotators, annotatorName); var builder = Builders <BsonDocument> .Filter; var filter = builder.Eq("scheme_id", schemeID) & builder.Eq("annotator_id", annotatorID); annotationstemp.AddRange(DatabaseHandler.GetCollection(DatabaseDefinitionCollections.Annotations, true, filter)); foreach (BsonDocument annotation in annotationstemp) { string sessionName = ""; DatabaseHandler.GetObjectName(ref sessionName, DatabaseDefinitionCollections.Sessions, annotation["session_id"].AsObjectId); if (sessionName != "" && !sessionNamestemp.Contains(sessionName)) { sessionNamestemp.Add(sessionName); } } sessionNames.RemoveAll(thing => !sessionNamestemp.Contains(thing)); } List <DatabaseSession> sessions = new List <DatabaseSession>(); foreach (string sessionName in sessionNames) { DatabaseSession session = new DatabaseSession() { Name = sessionName }; if (DatabaseHandler.GetSession(ref session)) { sessions.Add(session); } } SessionsBox.ItemsSource = sessions.OrderBy(s => s.Name).ToList(); if (SessionsBox.HasItems) { if (SessionsBox.SelectedItem == null) { SessionsBox.SelectedIndex = 0; } } } }