68 lines
2.5 KiB
C#
Executable File
68 lines
2.5 KiB
C#
Executable File
using ThoughtWorks.CruiseControl.Core.Reporting.Dashboard.Navigation;
|
|
|
|
namespace ThoughtWorks.CruiseControl.WebDashboard.Dashboard
|
|
{
|
|
public class DefaultLinkFactory : ILinkFactory
|
|
{
|
|
private readonly IUrlBuilder urlBuilder;
|
|
private readonly ICruiseUrlBuilder cruiseUrlBuilder;
|
|
private readonly IBuildNameFormatter buildNameFormatter;
|
|
|
|
public DefaultLinkFactory(IUrlBuilder urlBuilder, ICruiseUrlBuilder cruiseUrlBuilder, IBuildNameFormatter buildNameFormatter)
|
|
{
|
|
this.urlBuilder = urlBuilder;
|
|
this.cruiseUrlBuilder = cruiseUrlBuilder;
|
|
this.buildNameFormatter = buildNameFormatter;
|
|
}
|
|
|
|
public IAbsoluteLink CreateBuildLink(IBuildSpecifier buildSpecifier, string text, string action)
|
|
{
|
|
return new BuildLink(cruiseUrlBuilder, buildSpecifier, text, action);
|
|
}
|
|
|
|
public IAbsoluteLink CreateBuildLink(IBuildSpecifier buildSpecifier, string action)
|
|
{
|
|
return new BuildLink(cruiseUrlBuilder, buildSpecifier, buildNameFormatter.GetPrettyBuildName(buildSpecifier), action);
|
|
}
|
|
|
|
public IAbsoluteLink CreateProjectLink(IProjectSpecifier projectSpecifier, string text, string action)
|
|
{
|
|
return new ProjectLink(cruiseUrlBuilder, projectSpecifier, text, action);
|
|
}
|
|
|
|
public IAbsoluteLink CreateProjectLink(IProjectSpecifier projectSpecifier, string action)
|
|
{
|
|
return new ProjectLink(cruiseUrlBuilder, projectSpecifier, projectSpecifier.ProjectName, action);
|
|
}
|
|
|
|
public IAbsoluteLink CreateServerLink(IServerSpecifier serverSpecifier, string text, string action)
|
|
{
|
|
return new ServerLink(cruiseUrlBuilder, serverSpecifier, text, action);
|
|
}
|
|
|
|
public IAbsoluteLink CreateServerLink(IServerSpecifier serverSpecifier, string action)
|
|
{
|
|
return new ServerLink(cruiseUrlBuilder, serverSpecifier, serverSpecifier.ServerName, action);
|
|
}
|
|
|
|
public IAbsoluteLink CreateFarmLink(string text, string action)
|
|
{
|
|
return new FarmLink(urlBuilder, text, action);
|
|
}
|
|
|
|
public IAbsoluteLink CreateStyledBuildLink(IBuildSpecifier specifier, string action)
|
|
{
|
|
IAbsoluteLink link = CreateBuildLink(specifier, buildNameFormatter.GetPrettyBuildName(specifier), action);
|
|
link.LinkClass = buildNameFormatter.GetCssClassForBuildLink(specifier);
|
|
return link;
|
|
}
|
|
|
|
public IAbsoluteLink CreateStyledSelectedBuildLink(IBuildSpecifier specifier, string action)
|
|
{
|
|
IAbsoluteLink link = CreateBuildLink(specifier, buildNameFormatter.GetPrettyBuildName(specifier), action);
|
|
link.LinkClass = buildNameFormatter.GetCssClassForSelectedBuildLink(specifier);
|
|
return link;
|
|
}
|
|
}
|
|
}
|