Esempio n. 1
0
		/// <summary>
		/// 
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void mainTree_BeforeSelect(object sender, TreeViewCancelEventArgs e)
		{
			// Check if the control have been modified
			if( mainPanel.Controls.Count != 0 )
			{
				if( !(mainPanel.Controls[0] is XmlViewer) )
				{
					BaseControl baseControl = mainPanel.Controls[0] as BaseControl;

					mainTree.SelectedNode.NodeFont = new Font( mainTree.Font, FontStyle.Regular );
					NoBoldNode oNode = null;
					if( baseControl is CustomControls.PolicySet )
					{
						oNode = new PolicySet(((CustomControls.PolicySet)baseControl).PolicySetElement);
					}
					else if( baseControl is CustomControls.PolicySet )
					{
						oNode = new Policy(((CustomControls.Policy)baseControl).PolicyElement);
					}
					else if( baseControl is CustomControls.Rule )
					{
						oNode = new Rule(((CustomControls.Rule)baseControl).RuleElement);
					}
					else if( baseControl is CustomControls.TargetItem )
					{
						pol.TargetItemBaseReadWrite element = ((CustomControls.TargetItem)baseControl).TargetItemBaseElement;
						oNode = new TargetItem(element);
					}
					else if( baseControl is CustomControls.Obligations )
					{
						oNode = new Obligations(((CustomControls.Obligations)baseControl).ObligationsElement);
					}
					else if( baseControl is ContextCustomControls.Attribute )
					{
						oNode = new Attribute( ((ContextCustomControls.Attribute)baseControl).AttributeElement );
					}
					else if( baseControl is ContextCustomControls.Resource )
					{
						oNode = new Resource( ((ContextCustomControls.Resource)baseControl).ResourceElement );
					}
				
					if( oNode != null )
					{
						mainTree.SelectedNode = oNode;
						mainTree.SelectedNode.Text = oNode.Text;
					}
				}
			}
		}
Esempio n. 2
0
		private void DeleteFromTarget( TargetItem childNode )
		{
			Target parentNode = (Target)mainTree.SelectedNode.Parent;

			pol.TargetItemBaseReadWrite element = childNode.TargetItemDefinition;

			if( element is pol.ActionElementReadWrite )
			{
				AnyAction anyAction = new AnyAction();
				parentNode.Nodes.Add( anyAction );
				parentNode.TargetDefinition.Actions.ItemsList = null;
				parentNode.TargetDefinition.Actions.IsAny = true;
			}
			else if( element is pol.ResourceElementReadWrite )
			{
				AnyResource anyResource = new AnyResource();
				parentNode.Nodes.Add( anyResource );
				parentNode.TargetDefinition.Resources.ItemsList = null;
				parentNode.TargetDefinition.Resources.IsAny = true;
			}
			else if( element is pol.SubjectElementReadWrite )
			{
				AnySubject anySubject = new AnySubject();
				parentNode.Nodes.Add( anySubject );
				parentNode.TargetDefinition.Subjects.ItemsList = null;
				parentNode.TargetDefinition.Subjects.IsAny = true;
			}
		}
Esempio n. 3
0
		/// <summary>
		/// 
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="args"></param>
		private void CreateTargetItem( object sender, EventArgs args )
		{
			if( mainTree.SelectedNode is AnySubject )
			{
				AnySubject anyNode = (AnySubject)mainTree.SelectedNode;
				Target targetNode = (Target)anyNode.Parent;

				int idx = targetNode.Nodes.IndexOf( anyNode );
				targetNode.Nodes.RemoveAt( idx );

				pol.TargetMatchReadWriteCollection matchCollection = new pol.TargetMatchReadWriteCollection();
				matchCollection.Add( 
					new pol.SubjectMatchElementReadWrite( 
						InternalFunctions.StringEqual, 
						new pol.AttributeValueElementReadWrite( InternalDataTypes.XsdString, "Somebody", XacmlVersion.Version11 ),  //TODO: check version
						new pol.SubjectAttributeDesignatorElement( InternalDataTypes.XsdString, false, SubjectElement.ActionSubjectId, "", "", XacmlVersion.Version11 ), XacmlVersion.Version11 ) );  //TODO: check version
				pol.SubjectElementReadWrite targetItem = new pol.SubjectElementReadWrite( matchCollection, XacmlVersion.Version11 );  //TODO: check version

				TargetItem targetItemNode = new TargetItem( targetItem );

				targetNode.Nodes.Insert( idx, targetItemNode ); 
				targetNode.TargetDefinition.Subjects.IsAny = false;
				targetNode.TargetDefinition.Subjects.ItemsList.Add( targetItem );
				targetItemNode.NodeFont = new Font( mainTree.Font, FontStyle.Bold );

				mainTree.SelectedNode = targetItemNode;
			}
			else if( mainTree.SelectedNode is AnyAction )
			{
				AnyAction anyActionNode = (AnyAction)mainTree.SelectedNode;
				Target targetNode = (Target)anyActionNode.Parent;

				int idx = targetNode.Nodes.IndexOf( anyActionNode );
				targetNode.Nodes.RemoveAt( idx );

				pol.TargetMatchReadWriteCollection matchCollection = new pol.TargetMatchReadWriteCollection();
				matchCollection.Add( 
					new pol.ActionMatchElementReadWrite( 
						InternalFunctions.StringEqual, 
						new pol.AttributeValueElementReadWrite( InternalDataTypes.XsdString, "DoSomething", XacmlVersion.Version11 ),  //TODO: check version
						new pol.ActionAttributeDesignatorElement( InternalDataTypes.XsdString, false, ActionElement.ActionId, "", XacmlVersion.Version11 ), XacmlVersion.Version11 ) ); //TODO: check version
				pol.ActionElementReadWrite action = new pol.ActionElementReadWrite( matchCollection, XacmlVersion.Version11 ); //TODO: check version

				TargetItem actionNode = new TargetItem( action );

				targetNode.Nodes.Insert( idx, actionNode ); 
				targetNode.TargetDefinition.Actions.IsAny = false;
				targetNode.TargetDefinition.Actions.ItemsList.Add( action );
				actionNode.NodeFont = new Font( mainTree.Font, FontStyle.Bold );

				mainTree.SelectedNode = actionNode;
			}
			else if( mainTree.SelectedNode is AnyResource )
			{
				AnyResource anyNode = (AnyResource)mainTree.SelectedNode;
				Target targetNode = (Target)anyNode.Parent;

				int idx = targetNode.Nodes.IndexOf( anyNode );
				targetNode.Nodes.RemoveAt( idx );

				pol.TargetMatchReadWriteCollection matchCollection = new pol.TargetMatchReadWriteCollection();
				matchCollection.Add( 
					new pol.ResourceMatchElementReadWrite( 
						InternalFunctions.StringEqual, 
						new pol.AttributeValueElementReadWrite( InternalDataTypes.XsdString, "Something", XacmlVersion.Version11 ),  //TODO: check version
						new pol.ResourceAttributeDesignatorElement( InternalDataTypes.XsdString, false, ResourceElement.ResourceId, "", XacmlVersion.Version11 ), XacmlVersion.Version11 ) ); //TODO: check version
				pol.ResourceElementReadWrite targetItem = new pol.ResourceElementReadWrite( matchCollection, XacmlVersion.Version11 ); //TODO: check version

				TargetItem targetItemNode = new TargetItem( targetItem );

				targetNode.Nodes.Insert( idx, targetItemNode ); 
				targetNode.TargetDefinition.Resources.IsAny = false;
				targetNode.TargetDefinition.Resources.ItemsList.Add( targetItem );
				targetItemNode.NodeFont = new Font( mainTree.Font, FontStyle.Bold );

				mainTree.SelectedNode = targetItemNode;
			}			
		}