Browse Source

move XAML-related Behaviors to XAML binding

pull/18/head
Siegfried Pammer 14 years ago
parent
commit
23907c2d2c
  1. 46
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlBehavior.cs
  2. 5
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlBinding.addin
  3. 1
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlBinding.csproj
  4. 31
      src/Main/Base/Project/Src/Project/Behaviors/ProjectBehavior.cs

46
src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlBehavior.cs

@ -0,0 +1,46 @@ @@ -0,0 +1,46 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;
using ICSharpCode.AvalonEdit.Document;
using ICSharpCode.AvalonEdit.Xml;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.XamlBinding
{
public class XamlBehavior : ProjectBehavior
{
public override ItemType GetDefaultItemType(string fileName)
{
if (".xaml".Equals(Path.GetExtension(fileName), StringComparison.OrdinalIgnoreCase))
return ItemType.Page;
return base.GetDefaultItemType(fileName);
}
}
public class SilverlightBehavior : ProjectBehavior
{
public override bool IsStartable {
get { return TestPageFileName.Length > 0; }
}
public override ProcessStartInfo CreateStartInfo()
{
string pagePath = "file:///" + Path.Combine(((CompilableProject)Project).OutputFullPath, TestPageFileName);
return new ProcessStartInfo(pagePath);
}
public string TestPageFileName {
get { return ((MSBuildBasedProject)Project).GetEvaluatedProperty("TestPageFileName") ?? ""; }
set { ((MSBuildBasedProject)Project).SetProperty("TestPageFileName", string.IsNullOrEmpty(value) ? null : value); }
}
}
}

5
src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlBinding.addin

@ -49,6 +49,11 @@ @@ -49,6 +49,11 @@
class="ICSharpCode.XamlBinding.XamlLanguageBinding"
extensions=".xaml" />
</Path>
<Path name="/SharpDevelop/Workbench/ProjectBehaviors">
<Class id="SilverlightBehavior" class="ICSharpCode.XamlBinding.SilverlightBehavior" />
<Class id="XamlBehavior" class="ICSharpCode.XamlBinding.XamlBehavior" />
</Path>
<!-- Options panel -->
<Path name="/SharpDevelop/Dialogs/OptionsDialog/TextEditorOptions">

1
src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlBinding.csproj

@ -130,6 +130,7 @@ @@ -130,6 +130,7 @@
<Compile Include="Utils.cs">
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="XamlBehavior.cs" />
<Compile Include="XamlClassReturnType.cs" />
<Compile Include="XamlCodeCompletionBinding.cs" />
<Compile Include="XamlCompilationUnit.cs" />

31
src/Main/Base/Project/Src/Project/Behaviors/ProjectBehavior.cs

@ -113,35 +113,4 @@ namespace ICSharpCode.SharpDevelop.Project @@ -113,35 +113,4 @@ namespace ICSharpCode.SharpDevelop.Project
next.SetMemento(memento);
}
}
public class XamlBehavior : ProjectBehavior
{
public override ItemType GetDefaultItemType(string fileName)
{
if (".xaml".Equals(Path.GetExtension(fileName), StringComparison.OrdinalIgnoreCase))
return ItemType.Page;
return base.GetDefaultItemType(fileName);
}
}
public class SilverlightBehavior : ProjectBehavior
{
public override bool IsStartable {
get { return TestPageFileName.Length > 0; }
}
public override ProcessStartInfo CreateStartInfo()
{
string pagePath = "file:///" + Path.Combine(((CompilableProject)Project).OutputFullPath, TestPageFileName);
return new ProcessStartInfo(pagePath);
}
public string TestPageFileName {
get { return ((MSBuildBasedProject)Project).GetEvaluatedProperty("TestPageFileName") ?? ""; }
set { ((MSBuildBasedProject)Project).SetProperty("TestPageFileName", string.IsNullOrEmpty(value) ? null : value); }
}
}
}
Loading…
Cancel
Save