using System.Windows;
using System.Windows.Data;
using VBASync.Localization;
using VBASync.Model;
namespace VBASync.WPF
{
public static class WpfStatic
{
public static readonly WpfConverter BindingListToVisibleIfHasItemCount = new WpfConverter(
(v, p) => v.Count >= int.Parse(p) ? Visibility.Visible : Visibility.Collapsed);
public static readonly WpfConverter ChangeTypeToDescriptionOneWay = new WpfConverter(
v => {
switch ((ChangeType)v)
{
case ChangeType.AddFile:
return VBASyncResources.CTAddFile;
case ChangeType.MoveFile:
return VBASyncResources.CTMoveFile;
case ChangeType.DeleteFile:
return VBASyncResources.CTDeleteFile;
case ChangeType.AddSub:
return VBASyncResources.CTAddSub;
case ChangeType.DeleteSub:
return VBASyncResources.CTDeleteSub;
case ChangeType.AddLines:
return VBASyncResources.CTAddLines;
case ChangeType.ChangeLines:
return VBASyncResources.CTChangeLines;
case ChangeType.DeleteLines:
return VBASyncResources.CTDeleteLines;
case ChangeType.ReplaceId:
return VBASyncResources.CTReplaceId;
case ChangeType.ChangeFormControls:
return VBASyncResources.CTChangeFormControls;
case ChangeType.DeleteFrx:
return VBASyncResources.CTDeleteFrx;
case ChangeType.ChangeFileType:
return VBASyncResources.CTChangeFileType;
case ChangeType.WholeFile:
return VBASyncResources.CTWholeFile;
case ChangeType.MoveSub:
return VBASyncResources.CTMoveSub;
case ChangeType.Project:
return VBASyncResources.CTProject;
case ChangeType.Licenses:
return VBASyncResources.CTLicenses;
default:
return null;
}
});
public static readonly WpfConverter EnumToBoolean = new WpfConverter(
(v, p) => v.Equals(p),
(v, p) => v.Equals(true) ? p : Binding.DoNothing
);
public static readonly WpfConverter ModuleTypeToDescriptionOneWay = new WpfConverter(
v => {
switch ((ModuleType)v)
{
case ModuleType.Standard:
return VBASyncResources.MTStandard;
case ModuleType.StaticClass:
return VBASyncResources.MTStaticClass;
case ModuleType.Class:
return VBASyncResources.MTClass;
case ModuleType.Form:
return VBASyncResources.MTForm;
case ModuleType.Ini:
return VBASyncResources.MTIni;
default:
return null;
}
});
public static readonly WpfConverter RecentFilesHeader = new WpfConverter(
(v, t, p, c) =>
{
var i = int.Parse(p);
if (i > v.Count)
{
return null;
}
var s = (string)v[i - 1];
var u = (string)p;
if (s.Length > 40)
{
return "_" + u + " " + s.Substring(0, 12) + "…" + s.Substring(s.Length - 24, 24);
}
return "_" + u + " " + s;
});
}
}