Skip to content
This repository was archived by the owner on Oct 16, 2020. It is now read-only.

Commit 844a90b

Browse files
committed
Finished context menu commands of ResourceEditor.
1 parent 30b7002 commit 844a90b

15 files changed

+525
-251
lines changed

src/AddIns/DisplayBindings/ResourceEditor/Project/ResourceEditor.csproj

Lines changed: 6 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -63,37 +63,9 @@
6363
<Compile Include="Src\Commands\CopyResourceNameCommand.cs" />
6464
<Compile Include="Src\Commands\EditCommentCommand.cs" />
6565
<Compile Include="Src\Commands\RenameEntryCommand.cs" />
66+
<Compile Include="Src\Commands\ResourceItemCommand.cs" />
6667
<Compile Include="Src\Commands\SaveEntryAsCommand.cs" />
6768
<Compile Include="Src\ResourceEditorDisplayBinding.cs" />
68-
<Compile Include="Src\ResourceEdit\AbstractImageView.cs">
69-
<SubType>Component</SubType>
70-
</Compile>
71-
<Compile Include="Src\ResourceEdit\BinaryView.cs">
72-
<SubType>UserControl</SubType>
73-
</Compile>
74-
<Compile Include="Src\ResourceEdit\BitmapView.cs">
75-
<SubType>Component</SubType>
76-
</Compile>
77-
<Compile Include="Src\ResourceEdit\BooleanView.cs">
78-
<SubType>Component</SubType>
79-
</Compile>
80-
<Compile Include="Src\ResourceEdit\CursorView.cs">
81-
<SubType>Component</SubType>
82-
</Compile>
83-
<Compile Include="Src\ResourceEdit\IconView.cs">
84-
<SubType>Component</SubType>
85-
</Compile>
86-
<Compile Include="Src\ResourceEdit\IResourceView.cs" />
87-
<Compile Include="Src\ResourceEdit\ResourceEditor.cs">
88-
<SubType>UserControl</SubType>
89-
</Compile>
90-
<Compile Include="Src\ResourceEdit\ResourceItem.cs" />
91-
<Compile Include="Src\ResourceEdit\ResourceList.cs">
92-
<SubType>Component</SubType>
93-
</Compile>
94-
<Compile Include="Src\ResourceEdit\TextView.cs">
95-
<SubType>Component</SubType>
96-
</Compile>
9769
<Compile Include="Src\ViewModels\ResourceEditorViewModel.cs" />
9870
<Compile Include="Src\ViewModels\ResourceItem.cs" />
9971
<Compile Include="Src\Views\BinaryView.xaml.cs">
@@ -108,6 +80,10 @@
10880
<DependentUpon>ImageViewBase.xaml</DependentUpon>
10981
<SubType>Code</SubType>
11082
</Compile>
83+
<Compile Include="Src\Views\InPlaceEditLabel.xaml.cs">
84+
<DependentUpon>InPlaceEditLabel.xaml</DependentUpon>
85+
<SubType>Code</SubType>
86+
</Compile>
11187
<Compile Include="Src\Views\IResourceEditorView.cs" />
11288
<Compile Include="Src\Views\IResourceItemView.cs" />
11389
<Compile Include="Src\Views\ResourceEditorView.xaml.cs">
@@ -166,6 +142,7 @@
166142
<Page Include="Src\Views\BinaryView.xaml" />
167143
<Page Include="Src\Views\BooleanView.xaml" />
168144
<Page Include="Src\Views\ImageViewBase.xaml" />
145+
<Page Include="Src\Views\InPlaceEditLabel.xaml" />
169146
<Page Include="Src\Views\ResourceEditorView.xaml" />
170147
<Page Include="Src\Views\TextView.xaml" />
171148
</ItemGroup>

src/AddIns/DisplayBindings/ResourceEditor/Project/Src/Commands/AddNewFileCommand.cs

Lines changed: 41 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -28,56 +28,50 @@
2828

2929
namespace ResourceEditor.Commands
3030
{
31-
class AddNewFileCommand : SimpleCommand
31+
class AddNewFileCommand : ResourceItemCommand
3232
{
33-
public override void Execute(object parameter)
33+
public override void ExecuteWithResourceItems(System.Collections.Generic.IEnumerable<ResourceItem> resourceItems)
3434
{
35-
ResourceEditorViewModel editor = ((ResourceEditViewContent) SD.Workbench.ActiveViewContent).ResourceEditor;
36-
37-
// TODO Reactivate this
3835
// if (editor.ResourceList.WriteProtected) {
3936
// return;
4037
// }
4138

42-
// using (OpenFileDialog fdiag = new OpenFileDialog()) {
43-
// fdiag.AddExtension = true;
44-
// fdiag.Filter = StringParser.Parse("${res:SharpDevelop.FileFilter.AllFiles}|*.*");
45-
// fdiag.Multiselect = true;
46-
// fdiag.CheckFileExists = true;
47-
//
48-
// if (fdiag.ShowDialog()) {
49-
// foreach (string filename in fdiag.FileNames) {
50-
// string oresname = Path.ChangeExtension(Path.GetFileName(filename), null);
51-
// if (oresname == "")
52-
// oresname = "new";
53-
//
54-
// string resname = oresname;
55-
//
56-
// int i = 0;
57-
// TestName:
58-
// if (editor.ResourceList.Resources.ContainsKey(resname)) {
59-
// if (i == 10) {
60-
// continue;
61-
// }
62-
// i++;
63-
// resname = oresname + "_" + i.ToString();
64-
// goto TestName;
65-
// }
66-
//
67-
// object tmp = loadResource(filename);
68-
// if (tmp == null) {
69-
// continue;
70-
// }
71-
// editor.ResourceList.Resources.Add(resname, new ResourceItem(resname, tmp));
72-
//
73-
// }
74-
// editor.ResourceList.InitializeListView();
75-
// }
76-
// }
77-
// editor.ResourceList.OnChanged();
39+
var editor = ResourceEditor;
40+
OpenFileDialog fdiag = new OpenFileDialog();
41+
fdiag.AddExtension = true;
42+
fdiag.Filter = StringParser.Parse("${res:SharpDevelop.FileFilter.AllFiles}|*.*");
43+
fdiag.Multiselect = true;
44+
fdiag.CheckFileExists = true;
45+
46+
if ((bool)fdiag.ShowDialog()) {
47+
foreach (string filename in fdiag.FileNames) {
48+
string oresname = Path.ChangeExtension(Path.GetFileName(filename), null);
49+
if (oresname == "")
50+
oresname = "new";
51+
52+
string resname = oresname;
53+
54+
int i = 0;
55+
TestName:
56+
if (editor.ContainsResourceName(resname)) {
57+
if (i == 10) {
58+
continue;
59+
}
60+
i++;
61+
resname = oresname + "_" + i;
62+
goto TestName;
63+
}
64+
65+
object tmp = LoadResource(filename);
66+
if (tmp == null) {
67+
continue;
68+
}
69+
editor.ResourceItems.Add(new ResourceItem(editor, resname, tmp));
70+
}
71+
}
7872
}
7973

80-
object loadResource(string name)
74+
object LoadResource(string name)
8175
{
8276
switch (Path.GetExtension(name).ToUpperInvariant()) {
8377
case ".CUR":
@@ -93,13 +87,13 @@ object loadResource(string name)
9387
return null;
9488
}
9589
default:
96-
// try to read a bitmap
90+
// Try to read a bitmap
9791
try {
9892
return new System.Drawing.Bitmap(name);
9993
} catch {
10094
}
10195

102-
// try to read a serialized object
96+
// Try to read a serialized object
10397
try {
10498
Stream r = File.Open(name, FileMode.Open);
10599
try {
@@ -113,17 +107,15 @@ object loadResource(string name)
113107
} catch {
114108
}
115109

116-
// try to read a byte array :)
110+
// Try to read a byte array
117111
try {
118112
FileStream s = new FileStream(name, FileMode.Open);
119113
BinaryReader r = new BinaryReader(s);
120-
Byte[] d = new Byte[(int) s.Length];
121-
d = r.ReadBytes((int) s.Length);
114+
Byte[] d = new Byte[(int)s.Length];
115+
d = r.ReadBytes((int)s.Length);
122116
s.Close();
123117
return d;
124118
} catch (Exception) {
125-
126-
127119
string message = ResourceService.GetString("ResourceEditor.Messages.CantLoadResource");
128120
MessageService.ShowWarning(message + " " + name + ".");
129121
}

src/AddIns/DisplayBindings/ResourceEditor/Project/Src/Commands/AddStringEntryCommand.cs

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -24,33 +24,29 @@
2424

2525
namespace ResourceEditor.Commands
2626
{
27-
class AddStringCommand : SimpleCommand
27+
class AddStringCommand : ResourceItemCommand
2828
{
29-
public override void Execute(object parameter)
29+
public override void ExecuteWithResourceItems(System.Collections.Generic.IEnumerable<ResourceEditor.ViewModels.ResourceItem> resourceItems)
3030
{
31-
ResourceEditorViewModel editor = ((ResourceEditViewContent)SD.Workbench.ActiveViewContent).ResourceEditor;
32-
33-
// TODO Reactivate this
3431
// if(editor.ResourceList.WriteProtected) {
3532
// return;
3633
// }
3734
//
38-
// int count = 1;
39-
// string newNameBase = " new string entry ";
40-
// string newName = newNameBase + count.ToString();
41-
// string type = "System.String";
42-
//
43-
// while(editor.ResourceList.Resources.ContainsKey(newName)) {
44-
// count++;
45-
// newName = newNameBase + count.ToString();
46-
// }
47-
//
48-
// ResourceItem item = new ResourceItem(newName, "");
49-
// editor.ResourceList.Resources.Add(newName, item);
50-
// ListViewItem lv = new ListViewItem(new string[] { newName, type, "" }, item.ImageIndex);
51-
// editor.ResourceList.Items.Add(lv);
52-
// editor.ResourceList.OnChanged();
53-
// lv.BeginEdit();
35+
var editor = ResourceEditor;
36+
int count = 1;
37+
string newNameBase = " new string entry ";
38+
string newName = newNameBase + count;
39+
40+
while (editor.ContainsResourceName(newName)) {
41+
count++;
42+
newName = newNameBase + count;
43+
}
44+
45+
ResourceItem item = new ResourceItem(editor, newName, "");
46+
editor.ResourceItems.Add(item);
47+
editor.SelectedItems.Clear();
48+
editor.SelectedItems.Add(item);
49+
editor.StartEditing();
5450
}
5551
}
5652
}

src/AddIns/DisplayBindings/ResourceEditor/Project/Src/Commands/CopyResourceNameCommand.cs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
// DEALINGS IN THE SOFTWARE.
1818

1919
using System;
20+
using System.Linq;
2021
using System.Windows.Forms;
2122
using ICSharpCode.Core;
2223
using ICSharpCode.SharpDevelop;
@@ -25,16 +26,14 @@
2526

2627
namespace ResourceEditor.Commands
2728
{
28-
class CopyResourceNameCommand : SimpleCommand
29+
class CopyResourceNameCommand : ResourceItemCommand
2930
{
30-
public override void Execute(object parameter)
31+
public override void ExecuteWithResourceItems(System.Collections.Generic.IEnumerable<ResourceEditor.ViewModels.ResourceItem> resourceItems)
3132
{
32-
ResourceEditorViewModel editor = ((ResourceEditViewContent)SD.Workbench.ActiveViewContent).ResourceEditor;
33-
34-
// TODO Reactivate this
35-
// if(editor.ResourceList.SelectedItems.Count > 0) {
36-
// Clipboard.SetText(editor.ResourceList.SelectedItems[0].Text);
37-
// }
33+
var firstSelectedItem = resourceItems.First();
34+
if (firstSelectedItem != null) {
35+
Clipboard.SetText(firstSelectedItem.Name);
36+
}
3837
}
3938
}
4039
}

src/AddIns/DisplayBindings/ResourceEditor/Project/Src/Commands/EditCommentCommand.cs

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,16 @@
2424

2525
namespace ResourceEditor.Commands
2626
{
27-
class EditCommentCommand : SimpleCommand
27+
class EditCommentCommand : ResourceItemCommand
2828
{
29-
public override void Execute(object parameter)
29+
public override void ExecuteWithResourceItems(System.Collections.Generic.IEnumerable<ResourceEditor.ViewModels.ResourceItem> resourceItems)
3030
{
31-
ResourceEditorViewModel editor = ((ResourceEditViewContent)SD.Workbench.ActiveViewContent).ResourceEditor;
32-
33-
if (editor.SelectedItems.Count != 0) {
34-
var selectedItem = editor.SelectedItems.OfType<ResourceEditor.ViewModels.ResourceItem>().FirstOrDefault();
35-
string newValue = SD.MessageService.ShowInputBox("${res:ResourceEditor.ResourceEdit.ContextMenu.EditComment}",
36-
"${res:ResourceEditor.ResourceEdit.ContextMenu.EditCommentText}",
37-
selectedItem.Comment);
38-
if (newValue != null && newValue != selectedItem.Comment) {
39-
selectedItem.Comment = newValue;
40-
}
31+
var selectedItem = resourceItems.First();
32+
string newValue = SD.MessageService.ShowInputBox("${res:ResourceEditor.ResourceEdit.ContextMenu.EditComment}",
33+
"${res:ResourceEditor.ResourceEdit.ContextMenu.EditCommentText}",
34+
selectedItem.Comment);
35+
if (newValue != null && newValue != selectedItem.Comment) {
36+
selectedItem.Comment = newValue;
4137
}
4238
}
4339
}

src/AddIns/DisplayBindings/ResourceEditor/Project/Src/Commands/RenameEntryCommand.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,13 @@
2323

2424
namespace ResourceEditor.Commands
2525
{
26-
class RenameEntryCommand : SimpleCommand
26+
class RenameEntryCommand : ResourceItemCommand
2727
{
28-
public override void Execute(object parameter)
28+
public override void ExecuteWithResourceItems(System.Collections.Generic.IEnumerable<ResourceEditor.ViewModels.ResourceItem> resourceItems)
2929
{
30-
ResourceEditorViewModel editor = ((ResourceEditViewContent)SD.Workbench.ActiveViewContent).ResourceEditor;
31-
editor.StartEditing();
30+
var editor = ResourceEditor;
31+
if (editor != null)
32+
editor.StartEditing();
3233
}
3334
}
3435
}

0 commit comments

Comments
 (0)