protected override object GetPropertyValue(Property property) { if (!(checkServer())) { return(null); } if (!P4EXPProgram.connected) { P4EXPProgram.Connect(); } if (TargetFile != null) { try { IList <FileMetaData> fmd = P4EXPProgram.rep.GetFileMetaData(null, new FileSpec(null, null, new LocalPath(TargetFile), null)); if (property.CanonicalName == "P4File.State") { if (fmd != null && fmd[0] != null) { if (fmd[0].Action != FileAction.None && fmd[0].HaveRev == fmd[0].HeadRev) { if (fmd[0].Action == FileAction.Add) { return("Marked for add"); } else { return("Checked out"); } } else if (fmd[0].HaveRev == fmd[0].HeadRev) { return("Up-to-date"); } else { return("Needs Update"); } } return("Not on Server"); } if (property.CanonicalName == "P4File.Action") { if (fmd != null && fmd[0] != null && fmd[0].Action != FileAction.None) { return(fmd[0].Action.ToString()); } return(null); } if (property.CanonicalName == "P4File.Rev") { if (fmd != null && fmd[0] != null) { if (fmd[0].HaveRev != -1 && fmd[0].HeadRev != -1) { return("#" + fmd[0].HaveRev + "/" + fmd[0].HeadRev); } } return(null); } } catch (P4Exception ex) { if (P4EXPProgram.showP4Exception()) { string message = ex.Message + "\n" + ex.StackTrace + "\n" + ex.TargetSite.Name; Message dlg = new Message("P4Exception", message); dlg.ShowDialog(); } FileLogger.LogException("Get column value", ex); } catch (Exception ex) { if (P4EXPProgram.showException()) { string message = ex.Message + "\n" + ex.StackTrace + "\n" + ex.TargetSite.Name; Message dlg = new Message("Exception", message); dlg.ShowDialog(); } FileLogger.LogException("Get column value", ex); } } return(null); }