- Nova.0.6.zip
- Nova.CLI
- Nova.CodeDOM
- CodeDOM
- Annotations
- Base
- Expressions
- AnonymousMethods
- Base
- Operators
- Other
- References
- Base
- GotoTargets
- Methods
- Namespaces
- Other
- Properties
- Types
- Variables
- Projects
- Statements
- Base
- Conditionals
- Exceptions
- Generics
- Iterators
- Jumps
- Loops
- Methods
- Miscellaneous
- Namespaces
- Properties
- Types
- Variables
- Configuration.cs
- Log.cs
- Nova.CodeDOM.csproj
- Parsing
- Properties
- Rendering
- Resolving
- Utilities
- Nova.Examples
- Nova.sln
- Nova.Studio
- Nova.Test
- Nova.UI
- CodeDOM
- Annotations
- Base
- Expressions
- AnonymousMethods
- Base
- Operators
- Other
- References
- Base
- GotoTargets
- Methods
- Namespaces
- Other
- Properties
- Types
- Variables
- Projects
- Statements
- Base
- Conditionals
- Exceptions
- Generics
- Iterators
- Jumps
- Loops
- Methods
- Miscellaneous
- Namespaces
- Properties
- Types
- Variables
- CodeRenderer.cs
- Nova.UI.csproj
- Properties
- Resolving
- Utilties
- Nova.0.6.exe.zip
|
// Nova.Studio - a GUI test framework for the Nova.CodeDOM C# object model library.
// Copyright (C) 2007-2012 Inevitable Software, all rights reserved.
// Released under the Common Development and Distribution License, CDDL-1.0: http://opensource.org/licenses/cddl1.php
using System.Reflection;
using System.Windows;
using Attribute = System.Attribute;
using Nova.CodeDOM;
namespace Nova.Studio
{
/// <summary>
/// Interaction logic for AboutWindow.xaml
/// </summary>
public partial class AboutWindow : Window
{
public AboutWindow()
{
InitializeComponent();
// Populate the About window
Title = string.Format("About {0}", AssemblyTitle);
labelProduct.Content = DisplayProductAndVersion(AssemblyProduct, AssemblyVersion);
labelLibrary.Content = DisplayProductAndVersion(NovaCoreAssemblyProduct, NovaCoreAssemblyVersion);
labelCopyright.Content = AssemblyCopyright;
textBoxDescription.Text = AssemblyDescription + "\n" + NovaCoreAssemblyDescription;
}
private static string DisplayProductAndVersion(string product, string version)
{
string[] parts = version.Split('.');
string majorVersion = parts[0] + '.' + parts[1];
string buildNumber = parts[2] + '.' + parts[3];
return product + " " + majorVersion + " (build " + buildNumber + ")";
}
#region Assembly Attribute Accessors
private static string AssemblyTitle
{
get { return GetAssemblyCustomAttribute<AssemblyTitleAttribute>().Title; }
}
private static string AssemblyVersion
{
get { return Assembly.GetExecutingAssembly().GetName().Version.ToString(); }
}
private static string AssemblyDescription
{
get { return GetAssemblyCustomAttribute<AssemblyDescriptionAttribute>().Description; }
}
private static string AssemblyProduct
{
get { return GetAssemblyCustomAttribute<AssemblyProductAttribute>().Product; }
}
private static string AssemblyCopyright
{
get { return GetAssemblyCustomAttribute<AssemblyCopyrightAttribute>().Copyright; }
}
private static T GetAssemblyCustomAttribute<T>() where T : Attribute
{
object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(T), false);
return (attributes.Length > 0 ? (T)attributes[0] : null);
}
private static string NovaCoreAssemblyVersion
{
get { return Assembly.GetAssembly(typeof(CodeObject)).GetName().Version.ToString(); }
}
private static string NovaCoreAssemblyProduct
{
get { return GetNovaCoreCustomAttribute<AssemblyProductAttribute>().Product; }
}
private static string NovaCoreAssemblyDescription
{
get { return GetNovaCoreCustomAttribute<AssemblyDescriptionAttribute>().Description; }
}
private static T GetNovaCoreCustomAttribute<T>() where T : Attribute
{
object[] attributes = Assembly.GetAssembly(typeof(CodeObject)).GetCustomAttributes(typeof(T), false);
return (attributes.Length > 0 ? (T)attributes[0] : null);
}
#endregion
private void buttonOK_Click(object sender, RoutedEventArgs e)
{
DialogResult = true;
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
I've been writing software since the late 70's, currently focusing mainly on C#.NET. I also like to travel around the world, and I own a Chocolate Factory (sadly, none of my employees are oompa loompas).