Skip to content

Commit 6b360c4

Browse files
TELERIK\manevTELERIK\manev
TELERIK\manev
authored and
TELERIK\manev
committed
reflexil fixes
1 parent 89aa96f commit 6b360c4

File tree

3 files changed

+80
-55
lines changed

3 files changed

+80
-55
lines changed

Reflexil.JustDecompile/JustDecompileCecilStudioPackage.cs

+12
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ namespace Reflexil.JustDecompile
2626
{
2727
internal class JustDecompileCecilStudioPackage : CecilStudioPackage
2828
{
29+
public static event EventHandler HandleItemRequest = delegate { };
30+
2931
public JustDecompileCecilStudioPackage() { }
3032

3133
public override object ActiveItem
@@ -38,16 +40,22 @@ public override object ActiveItem
3840
public ITreeViewItem SelectedTreeViewItem { get; set; }
3941
public void Delete()
4042
{
43+
HandleItemRequest(this, EventArgs.Empty);
44+
4145
this.DeleteMember(this, EventArgs.Empty);
4246
}
4347

4448
public void Rename()
4549
{
50+
HandleItemRequest(this, EventArgs.Empty);
51+
4652
this.RenameItem(this, EventArgs.Empty);
4753
}
4854

4955
internal AssemblyDefinition GetCurrentAssemblyDefinition()
5056
{
57+
HandleItemRequest(this, EventArgs.Empty);
58+
5159
return base.GetCurrentAssemblyDefinition();
5260
}
5361

@@ -63,11 +71,15 @@ internal string GetProductVersion()
6371

6472
internal void Inject(EInjectType injectType)
6573
{
74+
HandleItemRequest(this, EventArgs.Empty);
75+
6676
base.Inject(injectType);
6777
}
6878

6979
internal void ReloadAssembly()
7080
{
81+
HandleItemRequest(this, EventArgs.Empty);
82+
7183
this.ReloadAssembly(this, EventArgs.Empty);
7284

7385
////string originallocation = GetCurrentModuleOriginalLocation();

Reflexil.JustDecompile/MenuItems/MenuItemBase.cs

+56-54
Original file line numberDiff line numberDiff line change
@@ -19,68 +19,70 @@
1919

2020
namespace Reflexil.JustDecompile
2121
{
22-
internal abstract class MenuItemBase : MenuItem
23-
{
24-
public JustDecompileCecilStudioPackage StudioPackage;
25-
public MenuItemBase(IEventAggregator eventAggregator) : base()
26-
{
27-
this.StudioPackage = new JustDecompileCecilStudioPackage();
28-
29-
this.Header = StudioPackage.GetProductVersion();
22+
internal abstract class MenuItemBase : MenuItem
23+
{
24+
public JustDecompileCecilStudioPackage StudioPackage;
3025

31-
eventAggregator.GetEvent<SelectedTreeViewItemChangedEvent>().Subscribe(SetReflexilHandler);
32-
}
26+
public MenuItemBase(IEventAggregator eventAggregator)
27+
: base()
28+
{
29+
this.StudioPackage = new JustDecompileCecilStudioPackage();
3330

34-
public override void AddMenuItems()
35-
{
36-
this.Collection.Add(new MenuItem { Header = "Inject class", Command = new DelegateCommand(OnInjectClass) });
37-
this.Collection.Add(new MenuItem { Header = "Inject interface", Command = new DelegateCommand(OnInterfaceClass) });
38-
this.Collection.Add(new MenuItem { Header = "Inject struct", Command = new DelegateCommand(OnStructClass) });
39-
this.Collection.Add(new MenuItem { Header = "Inject enum", Command = new DelegateCommand(OnEnumClass) });
40-
}
31+
this.Header = StudioPackage.GetProductVersion();
4132

42-
public void AddRenameDeleteNodes()
43-
{
44-
this.Collection.Add(new MenuItem { Header = "Rename...", Command = new DelegateCommand(OnRename) });
45-
this.Collection.Add(new MenuItem { Header = "Delete", Command = new DelegateCommand(OnDelete) });
46-
}
33+
eventAggregator.GetEvent<SelectedTreeViewItemChangedEvent>().Subscribe(SetReflexilHandler);
34+
}
4735

48-
private void OnDelete()
49-
{
50-
StudioPackage.Delete();
51-
}
36+
public override void AddMenuItems()
37+
{
38+
this.Collection.Add(new MenuItem { Header = "Inject class", Command = new DelegateCommand(OnInjectClass) });
39+
this.Collection.Add(new MenuItem { Header = "Inject interface", Command = new DelegateCommand(OnInterfaceClass) });
40+
this.Collection.Add(new MenuItem { Header = "Inject struct", Command = new DelegateCommand(OnStructClass) });
41+
this.Collection.Add(new MenuItem { Header = "Inject enum", Command = new DelegateCommand(OnEnumClass) });
42+
}
5243

53-
private void OnEnumClass()
54-
{
55-
StudioPackage.Inject(EInjectType.Enum);
56-
}
44+
public void AddRenameDeleteNodes()
45+
{
46+
this.Collection.Add(new MenuItem { Header = "Rename...", Command = new DelegateCommand(OnRename) });
47+
this.Collection.Add(new MenuItem { Header = "Delete", Command = new DelegateCommand(OnDelete) });
48+
}
5749

58-
private void OnInjectClass()
59-
{
60-
StudioPackage.Inject(EInjectType.Class);
61-
}
50+
private void OnDelete()
51+
{
52+
StudioPackage.Delete();
53+
}
6254

63-
private void OnInterfaceClass()
64-
{
65-
StudioPackage.Inject(EInjectType.Interface);
66-
}
55+
private void OnEnumClass()
56+
{
57+
StudioPackage.Inject(EInjectType.Enum);
58+
}
6759

68-
private void OnRename()
69-
{
70-
StudioPackage.Rename();
71-
}
60+
private void OnInjectClass()
61+
{
62+
StudioPackage.Inject(EInjectType.Class);
63+
}
7264

73-
private void OnStructClass()
74-
{
75-
StudioPackage.Inject(EInjectType.Struct);
76-
}
65+
private void OnInterfaceClass()
66+
{
67+
StudioPackage.Inject(EInjectType.Interface);
68+
}
7769

78-
private void SetReflexilHandler(ITreeViewItem selectedTreeItem)
79-
{
80-
if (selectedTreeItem != null)
81-
{
82-
this.StudioPackage.SelectedTreeViewItem = selectedTreeItem;
83-
}
84-
}
85-
}
70+
private void OnRename()
71+
{
72+
StudioPackage.Rename();
73+
}
74+
75+
private void OnStructClass()
76+
{
77+
StudioPackage.Inject(EInjectType.Struct);
78+
}
79+
80+
private void SetReflexilHandler(ITreeViewItem selectedTreeItem)
81+
{
82+
if (selectedTreeItem != null)
83+
{
84+
this.StudioPackage.SelectedTreeViewItem = selectedTreeItem;
85+
}
86+
}
87+
}
8688
}

Reflexil.JustDecompile/ReflexilModule.cs

+12-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,10 @@ public class ReflexilModule : IModule, IPartImportsSatisfiedNotification, IPacka
5050
private ModuleDefinitionContextMenu moduleDefinitionNodeContextMenu;
5151
#endregion
5252

53-
public ReflexilModule() { }
53+
public ReflexilModule()
54+
{
55+
JustDecompileCecilStudioPackage.HandleItemRequest += JustDecompileCecilStudioPackageHandleItemRequest;
56+
}
5457

5558
public IHandler ActiveHandler { get; set; }
5659

@@ -92,6 +95,14 @@ public void OnImportsSatisfied()
9295
this.eventAggregator.GetEvent<TreeViewItemCollectionChangedEvent>().Subscribe(LoadAssembliesIntoPlugin);
9396
}
9497

98+
private void JustDecompileCecilStudioPackageHandleItemRequest(object sender, EventArgs e)
99+
{
100+
if (this.selectedItem != null)
101+
{
102+
ActiveHandler = ReflexilWindow.HandleItem(this.selectedItem);
103+
}
104+
}
105+
95106
private void OnClickExecuted()
96107
{
97108
if (!IsReflexilHostLoaded)

0 commit comments

Comments
 (0)