private void AddTreeToInsertionList(InsertScopeNodesCommandWriter writer, ScopeNode[] nodeList, ref int currentNodesIndex, int index, ScopeNode[] nodes) { foreach (ScopeNode node in nodes) { if (this._nodes.ContainsKey(node.Id)) { throw new Exception(Microsoft.ManagementConsole.Internal.Utility.LoadResourceString(Microsoft.ManagementConsole.Internal.Strings.NodeSyncManagerAddTreeToInsertionListNodeExistInOneLocation)); } if (node == null) { throw new Exception(Microsoft.ManagementConsole.Internal.Utility.LoadResourceString(Microsoft.ManagementConsole.Internal.Strings.NodeSyncManagerInvalidNodeType)); } ScopeNodeInsert insert = new ScopeNodeInsert(); insert.NodeData = (ScopeNodeData) node.Data; ActionsPaneRootData data = new ActionsPaneRootData(); data.Write(node.ActionsPaneItems.Data); insert.Actions = data; data = new ActionsPaneRootData(); data.Write(node.ActionsPaneHelpItems.Data); insert.HelpActions = data; insert.InitialSharedData.SetAddedFormats(this.GenerateSharedDataFormatConfiguration(node)); insert.InitialSharedData.SetUpdatedData(this.GenerateClipboardData(node)); if (node.Parent != null) { insert.ParentScopeNodeId = node.Parent.Id; } insert.InsertionIndex = index; writer.WriteScopeNodeInsert(insert); nodeList[currentNodesIndex++] = node; index++; if (node.Children.Count > 0) { this.AddTreeToInsertionList(writer, nodeList, ref currentNodesIndex, 0, node.Children.ToArray()); } } }
internal void OnNodeSharedDataChanged(object sender, WritableSharedDataChangedEventArgs e) { if (!this._initialized) { throw new Exception(Microsoft.ManagementConsole.Internal.Utility.LoadResourceString(Microsoft.ManagementConsole.Internal.Strings.NodeSyncManagerNotInitialized)); } ScopeNode node = sender as ScopeNode; if (node == null) { throw new ArgumentException(Microsoft.ManagementConsole.Internal.Utility.LoadResourceString(Microsoft.ManagementConsole.Internal.Strings.NodeSyncManagerOnNodeSharedDataChangedScopeNodeExpected), "sender"); } WritableSharedDataItem sharedDataItem = e.SharedDataItem; if (sharedDataItem == null) { throw new Exception(Microsoft.ManagementConsole.Internal.Utility.LoadResourceString(Microsoft.ManagementConsole.Internal.Strings.NodeSyncManagerOnNodeSharedDataChangedWritableSharedDataItemExpected)); } bool flag = false; UpdateScopeNodeCommand command = new UpdateScopeNodeCommand(); command.NodeData = (ScopeNodeData) node.Data; ActionsPaneRootData data = new ActionsPaneRootData(); data.Write(node.ActionsPaneItems.Data); command.Actions = data; data = new ActionsPaneRootData(); data.Write(node.ActionsPaneHelpItems.Data); command.HelpActions = data; switch (e.ChangeType) { case WritableSharedDataChangeType.Add: case WritableSharedDataChangeType.Modify: { DataFormatConfiguration configuration = new DataFormatConfiguration(); configuration.ClipboardFormatId = sharedDataItem.ClipboardFormatId; configuration.RequiresQuery = sharedDataItem.RequiresCallback; SharedDataObjectUpdate update = new SharedDataObjectUpdate(); if (!sharedDataItem.RequiresCallback) { ClipboardData data2 = new ClipboardData(); data2.ClipboardFormatId = sharedDataItem.ClipboardFormatId; data2.SetValue(sharedDataItem.GetData()); ClipboardData[] updatedData = new ClipboardData[] { data2 }; update.SetUpdatedData(updatedData); } command.UpdatedSharedData = update; if (e.ChangeType == WritableSharedDataChangeType.Add) { DataFormatConfiguration[] addedFormats = new DataFormatConfiguration[] { configuration }; command.UpdatedSharedData.SetAddedFormats(addedFormats); } else { DataFormatConfiguration[] changedFormats = new DataFormatConfiguration[] { configuration }; command.UpdatedSharedData.SetChangedFormats(changedFormats); } flag = true; break; } case WritableSharedDataChangeType.Remove: command.UpdatedSharedData.SetRemovedClipboardFormatIds(new string[] { sharedDataItem.ClipboardFormatId }); flag = true; break; } if (flag) { this._snapInPlatform.ProcessCommand(command); } }
internal void OnNodeChanged(object sender, NodeChangedEventArgs e) { if (!this._initialized) { throw new Exception(Microsoft.ManagementConsole.Internal.Utility.LoadResourceString(Microsoft.ManagementConsole.Internal.Strings.NodeSyncManagerNotInitialized)); } if (!(e.Source is ScopeNode)) { throw new Exception(Microsoft.ManagementConsole.Internal.Utility.LoadResourceString(Microsoft.ManagementConsole.Internal.Strings.NodeSyncManagerInvalidNodeType)); } UpdateScopeNodeCommand command = new UpdateScopeNodeCommand(); command.NodeData = (ScopeNodeData) e.Source.Data; ActionsPaneRootData data = new ActionsPaneRootData(); data.Write(((ScopeNode) e.Source).ActionsPaneItems.Data); command.Actions = data; data = new ActionsPaneRootData(); data.Write(((ScopeNode) e.Source).ActionsPaneHelpItems.Data); command.HelpActions = data; this._snapInPlatform.ProcessCommand(command); }
private ActionsPaneRootData ReadNextActions() { ActionsPaneRootData data = new ActionsPaneRootData(); int length = this._source.Get_Actions_Id_Count()[this._currentIndex]; int[] destinationArray = null; if (length >= 0) { destinationArray = new int[length]; Array.Copy(this._source.Get_Actions_Id(), this._Actions_Id_Offset, destinationArray, 0, length); this._Actions_Id_Offset += length; } data.SetId(destinationArray); int num2 = this._source.Get_Actions_ItemType_Count()[this._currentIndex]; ActionsPaneRootItemType[] typeArray = null; if (num2 >= 0) { typeArray = new ActionsPaneRootItemType[num2]; } int index = 0; for (index = 0; index < num2; index++) { typeArray[index] = (ActionsPaneRootItemType) this._source.Get_Actions_ItemType()[this._Actions_ItemType_Offset]; this._Actions_ItemType_Offset++; } data.SetItemType(typeArray); int num4 = this._source.Get_Actions_InsertionLocation_Count()[this._currentIndex]; ActionsInsertionLocation[] locationArray = null; if (num4 >= 0) { locationArray = new ActionsInsertionLocation[num4]; } int num5 = 0; for (num5 = 0; num5 < num4; num5++) { locationArray[num5] = (ActionsInsertionLocation) this._source.Get_Actions_InsertionLocation()[this._Actions_InsertionLocation_Offset]; this._Actions_InsertionLocation_Offset++; } data.SetInsertionLocation(locationArray); int num6 = this._source.Get_Actions_DisplayName_Count()[this._currentIndex]; string[] strArray = null; if (num6 >= 0) { strArray = new string[num6]; } int num7 = 0; for (num7 = 0; num7 < num6; num7++) { strArray[num7] = this._strings.ReadString(); this._Actions_DisplayName_Offset++; } data.SetDisplayName(strArray); int num8 = this._source.Get_Actions_MnemonicDisplayName_Count()[this._currentIndex]; string[] strArray2 = null; if (num8 >= 0) { strArray2 = new string[num8]; } int num9 = 0; for (num9 = 0; num9 < num8; num9++) { strArray2[num9] = this._strings.ReadString(); this._Actions_MnemonicDisplayName_Offset++; } data.SetMnemonicDisplayName(strArray2); int num10 = this._source.Get_Actions_Description_Count()[this._currentIndex]; string[] strArray3 = null; if (num10 >= 0) { strArray3 = new string[num10]; } int num11 = 0; for (num11 = 0; num11 < num10; num11++) { strArray3[num11] = this._strings.ReadString(); this._Actions_Description_Offset++; } data.SetDescription(strArray3); int num12 = this._source.Get_Actions_LanguageIndependentName_Count()[this._currentIndex]; string[] strArray4 = null; if (num12 >= 0) { strArray4 = new string[num12]; } int num13 = 0; for (num13 = 0; num13 < num12; num13++) { strArray4[num13] = this._strings.ReadString(); this._Actions_LanguageIndependentName_Offset++; } data.SetLanguageIndependentName(strArray4); int num14 = this._source.Get_Actions_ImageIndex_Count()[this._currentIndex]; int[] numArray2 = null; if (num14 >= 0) { numArray2 = new int[num14]; Array.Copy(this._source.Get_Actions_ImageIndex(), this._Actions_ImageIndex_Offset, numArray2, 0, num14); this._Actions_ImageIndex_Offset += num14; } data.SetImageIndex(numArray2); int num15 = this._source.Get_Actions_State_Count()[this._currentIndex]; ActionStates[] statesArray = null; if (num15 >= 0) { statesArray = new ActionStates[num15]; } int num16 = 0; for (num16 = 0; num16 < num15; num16++) { statesArray[num16] = (ActionStates) this._source.Get_Actions_State()[this._Actions_State_Offset]; this._Actions_State_Offset++; } data.SetState(statesArray); int num17 = this._source.Get_Actions_ExecuteSync_Count()[this._currentIndex]; bool[] flagArray = null; if (num17 >= 0) { flagArray = new bool[num17]; Array.Copy(this._source.Get_Actions_ExecuteSync(), this._Actions_ExecuteSync_Offset, flagArray, 0, num17); this._Actions_ExecuteSync_Offset += num17; } data.SetExecuteSync(flagArray); int num18 = this._source.Get_Actions_RenderAsRegion_Count()[this._currentIndex]; bool[] flagArray2 = null; if (num18 >= 0) { flagArray2 = new bool[num18]; Array.Copy(this._source.Get_Actions_RenderAsRegion(), this._Actions_RenderAsRegion_Offset, flagArray2, 0, num18); this._Actions_RenderAsRegion_Offset += num18; } data.SetRenderAsRegion(flagArray2); int num19 = this._source.Get_Actions_ItemsCount_Count()[this._currentIndex]; int[] numArray3 = null; if (num19 >= 0) { numArray3 = new int[num19]; Array.Copy(this._source.Get_Actions_ItemsCount(), this._Actions_ItemsCount_Offset, numArray3, 0, num19); this._Actions_ItemsCount_Offset += num19; } data.SetItemsCount(numArray3); return data; }
internal void SetActionData(ActionsPaneRootData actionsPaneRootData) { ActionsPaneItemCollectionData actionsData = actionsPaneRootData.Read(); }
private void WriteNextHelpActions(ActionsPaneRootData obj) { int[] id = obj.GetId(); int length = -1; if (id != null) { this._HelpActions_Id.AddRange(id); length = id.Length; } this._HelpActions_Id_Count[this._currentIndex] = length; ActionsPaneRootItemType[] itemType = obj.GetItemType(); int num2 = -1; if (itemType != null) { num2 = itemType.Length; int index = 0; for (index = 0; index < num2; index++) { this._HelpActions_ItemType.Add((int) itemType[index]); } } this._HelpActions_ItemType_Count[this._currentIndex] = num2; ActionsInsertionLocation[] insertionLocation = obj.GetInsertionLocation(); int num4 = -1; if (insertionLocation != null) { num4 = insertionLocation.Length; int num5 = 0; for (num5 = 0; num5 < num4; num5++) { this._HelpActions_InsertionLocation.Add((int) insertionLocation[num5]); } } this._HelpActions_InsertionLocation_Count[this._currentIndex] = num4; string[] displayName = obj.GetDisplayName(); int num6 = -1; if (displayName != null) { num6 = displayName.Length; int num7 = 0; for (num7 = 0; num7 < num6; num7++) { this.WriteString(displayName[num7]); } } this._HelpActions_DisplayName_Count[this._currentIndex] = num6; string[] mnemonicDisplayName = obj.GetMnemonicDisplayName(); int num8 = -1; if (mnemonicDisplayName != null) { num8 = mnemonicDisplayName.Length; int num9 = 0; for (num9 = 0; num9 < num8; num9++) { this.WriteString(mnemonicDisplayName[num9]); } } this._HelpActions_MnemonicDisplayName_Count[this._currentIndex] = num8; string[] description = obj.GetDescription(); int num10 = -1; if (description != null) { num10 = description.Length; int num11 = 0; for (num11 = 0; num11 < num10; num11++) { this.WriteString(description[num11]); } } this._HelpActions_Description_Count[this._currentIndex] = num10; string[] languageIndependentName = obj.GetLanguageIndependentName(); int num12 = -1; if (languageIndependentName != null) { num12 = languageIndependentName.Length; int num13 = 0; for (num13 = 0; num13 < num12; num13++) { this.WriteString(languageIndependentName[num13]); } } this._HelpActions_LanguageIndependentName_Count[this._currentIndex] = num12; int[] imageIndex = obj.GetImageIndex(); int num14 = -1; if (imageIndex != null) { this._HelpActions_ImageIndex.AddRange(imageIndex); num14 = imageIndex.Length; } this._HelpActions_ImageIndex_Count[this._currentIndex] = num14; ActionStates[] state = obj.GetState(); int num15 = -1; if (state != null) { num15 = state.Length; int num16 = 0; for (num16 = 0; num16 < num15; num16++) { this._HelpActions_State.Add((int) state[num16]); } } this._HelpActions_State_Count[this._currentIndex] = num15; bool[] executeSync = obj.GetExecuteSync(); int num17 = -1; if (executeSync != null) { this._HelpActions_ExecuteSync.AddRange(executeSync); num17 = executeSync.Length; } this._HelpActions_ExecuteSync_Count[this._currentIndex] = num17; bool[] renderAsRegion = obj.GetRenderAsRegion(); int num18 = -1; if (renderAsRegion != null) { this._HelpActions_RenderAsRegion.AddRange(renderAsRegion); num18 = renderAsRegion.Length; } this._HelpActions_RenderAsRegion_Count[this._currentIndex] = num18; int[] itemsCount = obj.GetItemsCount(); int num19 = -1; if (itemsCount != null) { this._HelpActions_ItemsCount.AddRange(itemsCount); num19 = itemsCount.Length; } this._HelpActions_ItemsCount_Count[this._currentIndex] = num19; }