コード例 #1
0
 private void OnAddComponent( ComponentUiElement element, ComponentTypeUiElement addTypeElement )
 {
     //	TODO: AP: Switch to factory pattern
     object component = Activator.CreateInstance( addTypeElement.ComponentType );
     m_Aggregator.Add( element.Component, component );
     m_View.AddComponent( element, m_UiFactory.GetElement( element, component ) );
 }
コード例 #2
0
 /// <summary>
 /// Adds all child components of the parent composite in a UI element, to the view
 /// </summary>
 private void AddComponents( ComponentUiElement parentElement )
 {
     foreach ( object component in m_Aggregator.GetChildComponents( parentElement.Component ) )
     {
         ComponentUiElement uiElement = m_UiFactory.GetElement( parentElement, component );
         m_View.AddComponent( parentElement, uiElement );
         AddComponents( uiElement );
     }
 }
コード例 #3
0
 private void OnEditComponent( ComponentUiElement element )
 {
     Type[] allowedComponentTypes = m_Dependencies.GetAllowedComponentTypes( element.Component.GetType( ) );
     ComponentTypeUiElement[] allowedComponentTypeUiElements = new ComponentTypeUiElement[ allowedComponentTypes.Length ];
     for ( int i = 0; i < allowedComponentTypes.Length; ++i )
     {
         allowedComponentTypeUiElements[ i ] = m_UiFactory.GetTypeElement( allowedComponentTypes[ i ] );
     }
     m_View.ShowEditOptions( element, allowedComponentTypeUiElements );
 }
コード例 #4
0
 private void OnRemoveComponent( ComponentUiElement element )
 {
     m_Aggregator.Remove( element.ParentUiElement.Component, element.Component );
     m_View.RemoveComponent( element );
 }
 /// <summary>
 /// Creates a component UI element from the specified component
 /// </summary>
 /// <param name="parentUiElement">Parent UI element (null if new element is a root element)</param>
 /// <param name="component">Component requiring UI element</param>
 /// <returns>Returns a new component UI element for the component</returns>
 public ComponentUiElement GetElement( ComponentUiElement parentUiElement, object component )
 {
     Arguments.CheckNotNull( component, "component" );
     return new ComponentUiElement( component, component.ToString( ), parentUiElement, GetTypeElement( component.GetType( ) ) );
 }
コード例 #6
0
 /// <summary>
 /// Raises a <see cref="ComponentSelectedEvent"/> in the envionment events service
 /// </summary>
 private void OnSelectionChanged( ComponentUiElement element )
 {
     IEventService events = m_Environment.EnsureGetService<IEventService>( );
     events.Raise( this, new ComponentSelectedEvent( element.Component, new object[] { element.Component } ) );
 }
コード例 #7
0
 /// <summary>
 /// Adds a component to the view, adding it to the specified parent item
 /// </summary>
 /// <param name="parent">Parent item</param>
 /// <param name="component">Component item to add</param>
 public void AddComponent( ComponentUiElement parent, ComponentUiElement component )
 {
     TreeNode parentNode = m_NodeMap[ parent ];
     TreeNode node = CreateTreeNode( component );
     parentNode.Nodes.Add( node );
     m_NodeMap.Add( component, node );
 }
コード例 #8
0
 /// <summary>
 /// Adds a component to the view
 /// </summary>
 /// <param name="component">Component to add</param>
 public void AddComponent( ComponentUiElement component )
 {
     TreeNode node = CreateTreeNode( component );
     compositeTreeView.Nodes.Add( node );
     m_NodeMap.Add( component, node );
 }
コード例 #9
0
 private static TreeNode CreateTreeNode( ComponentUiElement component )
 {
     TreeNode node = new TreeNode( component.Text );
     node.Tag = component;
     return node;
 }
コード例 #10
0
 /// <summary>
 /// Shows options for editing an element
 /// </summary>
 public void ShowEditOptions( ComponentUiElement component, ComponentTypeUiElement[] addTypes )
 {
     ContextMenuStrip strip = new ContextMenuStrip( );
     ToolStripMenuItem addSubMenu = ( ToolStripMenuItem )strip.Items.Add( "Add" );
     foreach ( ComponentTypeUiElement typeElement in addTypes )
     {
         ComponentTypeUiElement curTypeElement = typeElement;
         ToolStripItem addItem = addSubMenu.DropDownItems.Add( typeElement.Name, typeElement.Image );
         addItem.Click += delegate { AddToComponent( component, curTypeElement ); };
     }
     ToolStripItem removeItem = strip.Items.Add( "Remove" );
     removeItem.Click += delegate { RemoveSelectedComponent( component ); };
     strip.Show( this, m_LastClickLocation );
 }
コード例 #11
0
 /// <summary>
 /// Removes the specified component from the view (and all child elements)
 /// </summary>
 /// <param name="component">Component to remove</param>
 public void RemoveComponent( ComponentUiElement component )
 {
     TreeNode node = m_NodeMap[ component ];
     node.Remove( );
     m_NodeMap.Remove( component );
 }