Browse Source

ProjectImports

pull/30/head
PeterForstmeier 13 years ago
parent
commit
14c1bfb554
  1. 2
      src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageOptionsPanelXaml.xaml
  2. 0
      src/AddIns/BackendBindings/VBNetBinding/Project/Resources/old_ProjectImports.xfrm
  3. 48
      src/AddIns/BackendBindings/VBNetBinding/Project/Src/OptionPanels/ProjectImportsOptions.xaml
  4. 38
      src/AddIns/BackendBindings/VBNetBinding/Project/Src/OptionPanels/ProjectImportsOptions.xaml.cs
  5. 75
      src/AddIns/BackendBindings/VBNetBinding/Project/Src/OptionPanels/ProjectImportsXaml.xaml
  6. 171
      src/AddIns/BackendBindings/VBNetBinding/Project/Src/OptionPanels/ProjectImportsXaml.xaml.cs
  7. 2
      src/AddIns/BackendBindings/VBNetBinding/Project/Src/OptionPanels/old_ProjectImports.cs
  8. 13
      src/AddIns/BackendBindings/VBNetBinding/Project/VBNetBinding.addin
  9. 10
      src/AddIns/BackendBindings/VBNetBinding/Project/VBNetBinding.csproj

2
src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageOptionsPanelXaml.xaml

@ -8,8 +8,6 @@ @@ -8,8 +8,6 @@
xmlns:widgets="http://icsharpcode.net/sharpdevelop/widgets">
<!--xmlns:local="clr-namespace:ICSharpCode.CodeCoverage"-->
<GroupBox
Header="{core:Localize ICSharpCode.CodeCoverage.OptionsPanel.CodeCoverageColoursGroupBoxText}">
<Grid >

0
src/AddIns/BackendBindings/VBNetBinding/Project/Resources/ProjectImports.xfrm → src/AddIns/BackendBindings/VBNetBinding/Project/Resources/old_ProjectImports.xfrm

48
src/AddIns/BackendBindings/VBNetBinding/Project/Src/OptionPanels/ProjectImportsOptions.xaml

@ -1,48 +0,0 @@ @@ -1,48 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<gui:OptionPanel
x:Class="ICSharpCode.VBNetBinding.OptionPanels.ProjectImportsOptions" xmlns:gui="clr-namespace:ICSharpCode.SharpDevelop.Gui;assembly=ICSharpCode.SharpDevelop" xmlns:addin="clr-namespace:ICSharpCode.VBNetBinding.OptionPanels" xmlns:sd="http://icsharpcode.net/sharpdevelop/core" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:widgets="http://icsharpcode.net/sharpdevelop/widgets">
<GroupBox
Header="${res:Dialog.ProjectOptions.ProjectImports.Title}"
Grid.Column="0"
Grid.Row="0"
HorizontalAlignment="Left"
VerticalAlignment="Top">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition
Width="*" />
<ColumnDefinition
Width="Auto" />
</Grid.ColumnDefinitions>
<ListBox
Grid.Column="0"
Grid.Row="0"
Margin="3,3,3,3"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
<widgets:StackPanelWithSpacing
SpaceBetweenItems="5"
Grid.Column="1"
Grid.Row="0"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Margin="3,3,3,3">
<Label
Content="${res:Dialog.ProjectOptions.ProjectImports.Title}" />
<ComboBox
Height="20"
Name="namespaces" />
<widgets:UniformGridWithSpacing>
<Button
Content="${res:Dialog.ProjectOptions.ProjectImports.AddImport}"
Name="addImport"
Click="AddImportClick" />
<Button
Content="${res:Dialog.ProjectOptions.ProjectImports.RemoveImport}"
Name="removeImport"
Click="RemoveImportClick" />
</widgets:UniformGridWithSpacing>
</widgets:StackPanelWithSpacing>
</Grid>
</GroupBox>
</gui:OptionPanel>

38
src/AddIns/BackendBindings/VBNetBinding/Project/Src/OptionPanels/ProjectImportsOptions.xaml.cs

@ -1,38 +0,0 @@ @@ -1,38 +0,0 @@
// 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.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.VBNetBinding.OptionPanels
{
/// <summary>
/// Interaction logic for ProjectImportsOptions.xaml
/// </summary>
public partial class ProjectImportsOptions : OptionPanel
{
public ProjectImportsOptions()
{
InitializeComponent();
}
void AddImportClick(object sender, RoutedEventArgs e)
{
}
void RemoveImportClick(object sender, RoutedEventArgs e)
{
}
}
}

75
src/AddIns/BackendBindings/VBNetBinding/Project/Src/OptionPanels/ProjectImportsXaml.xaml

@ -0,0 +1,75 @@ @@ -0,0 +1,75 @@
<?xml version="1.0" encoding="utf-8"?>
<optionpanels:ProjectOptionPanel
x:Class="ICSharpCode.VBNetBinding.OptionPanels.ProjectImportsXaml"
xmlns:gui="clr-namespace:ICSharpCode.SharpDevelop.Gui;assembly=ICSharpCode.SharpDevelop"
xmlns:optionpanels="clr-namespace:ICSharpCode.SharpDevelop.Gui.OptionPanels;assembly=ICSharpCode.SharpDevelop"
xmlns:addin="clr-namespace:ICSharpCode.VBNetBinding.OptionPanels"
xmlns:core="http://icsharpcode.net/sharpdevelop/core"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:widgets="http://icsharpcode.net/sharpdevelop/widgets">
<ScrollViewer VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Auto" >
<GroupBox
Header="{core:Localize Dialog.ProjectOptions.ProjectImports.Title}"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<ListBox
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
ItemsSource="{Binding ProjectItems}"
SelectedItem="{Binding SelectedProjectItem}">
</ListBox>
<Grid Grid.Column="1" Grid.ColumnSpan="2" Margin="3,0,3,0"
HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Label Grid.ColumnSpan="2"
HorizontalAlignment="Left" VerticalAlignment="Center"
Content="{core:Localize Dialog.ProjectOptions.ProjectImports.Namespace}" />
<ComboBox Grid.Row="1" Grid.ColumnSpan="2"
VerticalAlignment="Center"
ItemsSource="{Binding NameSpaceItems}"
SelectedItem="{Binding SelectedNameSpace}"
></ComboBox>
<Button Grid.Row="2"
Content="{core:Localize Dialog.ProjectOptions.ProjectImports.AddImport}"
Style="{x:Static core:GlobalStyles.ButtonStyle}"
IsEnabled="{Binding AddButtonEnable}"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
Click="AddButton_Click">
</Button>
<Button Grid.Row="3"
Content="{core:Localize Dialog.ProjectOptions.ProjectImports.RemoveImport}"
Style="{x:Static core:GlobalStyles.ButtonStyle}"
IsEnabled="{Binding RemoveButtonEnable}"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
Click="RemoveButton_Click"></Button>
</Grid>
</Grid>
</GroupBox>
</ScrollViewer>
</optionpanels:ProjectOptionPanel>

171
src/AddIns/BackendBindings/VBNetBinding/Project/Src/OptionPanels/ProjectImportsXaml.xaml.cs

@ -0,0 +1,171 @@ @@ -0,0 +1,171 @@
// 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.Collections.Generic;
using System.Collections.ObjectModel;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Linq;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Gui.OptionPanels;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.VBNetBinding.OptionPanels
{
/// <summary>
/// Interaction logic for ProjectImportsOptions.xaml
/// </summary>
public partial class ProjectImportsXaml : ProjectOptionPanel
{
public ProjectImportsXaml()
{
InitializeComponent();
}
protected override void Load(MSBuildBasedProject project, string configuration, string platform)
{
base.Load(project, configuration, platform);
Initialize();
}
protected override bool Save(MSBuildBasedProject project, string configuration, string platform)
{
List<ProjectItem> imports = new List<ProjectItem>();
foreach(ProjectItem item in project.Items)
{
if(item.ItemType == ItemType.Import)
{
imports.Add(item);
}
}
foreach(ImportProjectItem item in imports)
{
ProjectService.RemoveProjectItem(project, item);
}
foreach(string importedNamespace in ProjectItems)
{
ProjectService.AddProjectItem(project, new ImportProjectItem(project, importedNamespace));
}
return base.Save(project, configuration, platform);
}
private ObservableCollection<string> projectItems;
public ObservableCollection<string> ProjectItems {
get { return projectItems; }
set { projectItems = value;
base.RaisePropertyChanged(() => ProjectItems);
}
}
private string selectedProjectItem;
public string SelectedProjectItem {
get { return selectedProjectItem; }
set { selectedProjectItem = value;
base.RaisePropertyChanged(() => SelectedProjectItem);
RemoveButtonEnable = true;
AddButtonEnable = false;
}
}
private ObservableCollection <string> nameSpaceItems;
public ObservableCollection<string> NameSpaceItems {
get { return nameSpaceItems; }
set { nameSpaceItems = value;
base.RaisePropertyChanged(() => NameSpaceItems);
}
}
private string selectedNameSpace;
public string SelectedNameSpace {
get { return selectedNameSpace; }
set { selectedNameSpace = value;
base.RaisePropertyChanged(()=>SelectedNameSpace);
AddButtonEnable = true;
}
}
private bool addButtonEnable;
public bool AddButtonEnable {
get { return addButtonEnable; }
set { addButtonEnable = value;
base.RaisePropertyChanged(() => AddButtonEnable);
}
}
private bool removeButtonEnable;
public bool RemoveButtonEnable {
get { return removeButtonEnable; }
set { removeButtonEnable = value;
base.RaisePropertyChanged(() => RemoveButtonEnable);
}
}
private void Initialize()
{
ProjectItems = new ObservableCollection<string>();
NameSpaceItems = new ObservableCollection<string> ();
foreach(ProjectItem item in base.Project.Items)
{
if(item.ItemType == ItemType.Import) {
ProjectItems.Add(item.Include);
}
}
IProjectContent projectContent = ParserService.GetProjectContent(base.Project);
foreach(IProjectContent refProjectContent in projectContent.ThreadSafeGetReferencedContents()) {
AddNamespaces(refProjectContent);
}
AddNamespaces(projectContent);
}
private void AddNamespaces(IProjectContent projectContent)
{
foreach(string projectNamespace in projectContent.NamespaceNames) {
if (!string.IsNullOrEmpty(projectNamespace)) {
if (!NameSpaceItems.Contains(projectNamespace)) {
NameSpaceItems.Add(projectNamespace);
}
}
}
}
void AddButton_Click(object sender, RoutedEventArgs e)
{
ProjectItems.Add(SelectedNameSpace);
IsDirty = true;
}
void RemoveButton_Click(object sender, RoutedEventArgs e)
{
ProjectItems.Remove(SelectedProjectItem);
SelectedProjectItem = null;
RemoveButtonEnable = false;
AddButtonEnable = false;
IsDirty = true;
}
}
}

2
src/AddIns/BackendBindings/VBNetBinding/Project/Src/OptionPanels/ProjectImports.cs → src/AddIns/BackendBindings/VBNetBinding/Project/Src/OptionPanels/old_ProjectImports.cs

@ -12,7 +12,7 @@ using ICSharpCode.SharpDevelop.Project; @@ -12,7 +12,7 @@ using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.VBNetBinding.OptionPanels
{
public class ProjectImports : AbstractXmlFormsProjectOptionPanel
public class old_ProjectImports : AbstractXmlFormsProjectOptionPanel
{
public override void LoadPanelContents()
{

13
src/AddIns/BackendBindings/VBNetBinding/Project/VBNetBinding.addin

@ -87,12 +87,15 @@ @@ -87,12 +87,15 @@
<OptionPanel id = "DebugOptions"
label = "${res:Dialog.ProjectOptions.DebugOptions}"
class = "ICSharpCode.SharpDevelop.Gui.OptionPanels.DebugOptions"/>
<!--<OptionPanel id = "Publish"
label = "${res:Dialog.ProjectOptions.Publish}"
class = "ICSharpCode.SharpDevelop.Gui.OptionPanels.Publish"/>-->
<OptionPanel id = "ProjectImports"
<!--<OptionPanel id = "ProjectImports"
label = "${res:Dialog.ProjectOptions.ProjectImports}"
class = "ICSharpCode.VBNetBinding.OptionPanels.ProjectImports"/>
class = "ICSharpCode.VBNetBinding.OptionPanels.ProjectImports"/>-->
<OptionPanel id = "ProjectImports1"
label = "${res:Dialog.ProjectOptions.ProjectImports}"
class = "ICSharpCode.VBNetBinding.OptionPanels.ProjectImportsXaml"/>
<Include id = "AllManaged" path="/SharpDevelop/BackendBindings/ProjectOptions/AllManaged"/>
</Path>

10
src/AddIns/BackendBindings/VBNetBinding/Project/VBNetBinding.csproj

@ -65,8 +65,8 @@ @@ -65,8 +65,8 @@
<Compile Include="Src\Extensions.cs" />
<Compile Include="Src\FormattingStrategy\VBStatement.cs" />
<Compile Include="Src\LanguageUtils.cs" />
<Compile Include="Src\OptionPanels\ProjectImportsOptions.xaml.cs">
<DependentUpon>ProjectImportsOptions.xaml</DependentUpon>
<Compile Include="Src\OptionPanels\ProjectImportsXaml.xaml.cs">
<DependentUpon>ProjectImportsXaml.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="Src\OptionPanels\TextEditorOptions.xaml.cs">
@ -89,10 +89,10 @@ @@ -89,10 +89,10 @@
</None>
<Compile Include="Src\VBNetCompletionBinding.cs" />
<Compile Include="Src\MyNamespaceBuilder.cs" />
<Compile Include="Src\OptionPanels\ProjectImports.cs">
<Compile Include="Src\OptionPanels\old_ProjectImports.cs">
<SubType>Form</SubType>
</Compile>
<EmbeddedResource Include="Resources\ProjectImports.xfrm">
<EmbeddedResource Include="Resources\old_ProjectImports.xfrm">
<LogicalName>Resources.ProjectImports.xfrm</LogicalName>
</EmbeddedResource>
<Compile Include="Src\Project\CSharpToVBNetConverter.cs" />
@ -132,7 +132,7 @@ @@ -132,7 +132,7 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Page Include="Src\OptionPanels\ProjectImportsOptions.xaml" />
<Page Include="Src\OptionPanels\ProjectImportsXaml.xaml" />
<Page Include="Src\OptionPanels\TextEditorOptions.xaml" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />

Loading…
Cancel
Save