0

Resolved

0001 Database Capability (Phase 1) - 03 Manage AbstraX Extensions - Build Extension

description

·         Design Extension Interface for review (#59)
·         Create Extension interface as a shared class in AbstraXProvider  (proper) called IAbstraXExtension
·         Create Attribute for AbstraXGenerator called AbstraXExtensionAttribute that accepts two strings as a constructor parameters and sets two properties called InterfaceName and ImplementationName (#61)
·         Add method to ServerInterface IBase called LoadExtension (#62)
·         Add method to ClientInterfaces IBase called LoadExtension (#62)
LoadExtension (IBase baseObject, ITreeNode treeNode)
 
·         Refactor all classes that implement this interface, return null by default
·         Create an empty Interface in EntityProvider called IEntityProviderExtension that inherits from IAbstraXExtension (the reasons for doing this will be explained in #20)
·         Create Extension class as a shared class in EntityProvider called EntityProviderExtension that implements interface
·         Add Attribute from above to LoadExtension method of all EntityProvider Entities that will have menus
[AbstraxExtension(“IEntityProviderExtension”, “EntityProviderExtension”)]
public IAbstraXExtension LoadExtension()
{
                return null;
}
 
Related requirements:
 
  1. Maintains the extensibility of the project in regards to:
    o AbstraX Providers
    o Code Project Providers
    o AbstraX Extensions (new)
    o Type Mappings
     
    • Provided by AbstraX Provider.
     
    59 - The Base AbstraXProvider will provide a shared interface that must be implemented by all AbstraX Extensions.
    60 - The EntityProvider will have a shared class (i.e. EntityProviderExtension.shared.cs) that will provide functionality to the front-end.
    61 - The Base AbstraXProvider will provide the definition of an Attribute that will be acquired by the Silverlight front-end code generator (AbstraXGenerator) to instantiate and provide an instance of the extension.
    62 - A method will be added to the IBase server and client interfaces for returning an extension.
    63 - The EntityProvider back-end Entities will be refactored to provide the interface method
    64 - The back-end implementation of the interface method will be decorated with the Attribute as described above and will return null by default.
    65 - The AbstraXGenerator will read the Attribute from this method to instantiate and return the AbstraXExtension via a Unity IoC container.
     
    • Provides custom menu items
     
    66 - The AbstraXProvider Extension will provide all custom menu items.
     
    • Handles Tree View events.
     
    67 - The Base AbstraXProvider tree view node classes will query each internal node for an AbstraX Extension interface.
    68 - The Base AbstraXProvider tree view node classes forward all necessary fired events to the extension.
     
    • Handles Tree View events - Create New
     
    69 - AbstraX Provider extension will handle the following events:
     
    o Delete
    o Rename
    o Drag & Drop Copy & Paste (out-of-scope)
    o Greater than keyboard event.
    o “Shift-N” keystrokes to create a new node by default.
     
    • Provides User Interface for schema changes.
     
    70 - AbstraX Provider extension will provide all necessary front-end user interfaces.
    71 - All front-end user interfaces will conform to the MVVM design pattern.
     
    • Can be swapped out.
     
    72 - AbstraX Provider extension as provided by the Unity IoC container will allow for unit testing of both the extension itself as well as the Base AbstraX Provider front-end tree nodes.
     
Reproduction Steps

NOTE: Context menus may contain an item "Build Middle Layer". This menu item is unrelated to this project and should be ignored.

EntityContainer
1 - Select an EntityContainer node in tree view.
2 - Right-click on the selected node. A context menu should appear with the following items:
*Rename EntityContainer
*Delete EntityContainer
*Add New EntityType
3 - In addition, the context menu will have comment items.
*Add Comments will appear if the EntityContainer does not have comments.
*View Comments and Edit Comments will appear if the EntityContainer has comments.

EntitySet
1 - Select an EntitySet node in tree view.
2 - Right-click on the selected node. A context menu should appear with the following items:
*Rename EntitySet
3 - In addition, the context menu will have comment items.
*Add Comments will appear if the EntitySet does not have comments.
*View Comments and Edit Comments will appear if the EntitySet has comments.

EntityType
1 - Select an EntityType node in tree view.
2 - Right-click on the selected node. A context menu should appear with the following items:
*Rename EntityType
*Delete EntityType
*Add New Property
*Add New NavigationProperty
3 - In addition, the context menu will have comment items.
*Add Comments will appear if the EntityType does not have comments.
*View Comments and Edit Comments will appear if the EntityType has comments.

Property
1 - Select a Property node in tree view. The NodeExpander should appear.
2 - Right-click on the selected node. A context menu should appear with the following items:
*Rename Property
*Delete Property
3 - In addition, the context menu will have comment items.
*Add Comments will appear if the Property does not have comments.
*View Comments and Edit Comments will appear if the Property has comments.

NavigationProperty
1 - Select an Navigation node in tree view. The NodeExpander should appear.
2 - Right-click on the selected node. A context menu should appear with the following items:
*Rename NavigationProperty
*Delete NavigationProperty
3 - In addition, the context menu will have comment items.
*Add Comments will appear if the NavigationProperty does not have comments.
*View Comments and Edit Comments will appear if the NavigationProperty has comments.
 
NOTE: Drag and drop , and keyboard short cuts are not yet been implemented.

comments

wrote Mar 30, 2012 at 3:58 AM

Associated with changeset 13509.

wrote Jul 22, 2012 at 7:33 PM

wrote Jul 24, 2012 at 1:47 AM

dezrtluver wrote Sep 21, 2012 at 2:03 AM

No Repro steps.

wrote Sep 21, 2012 at 2:10 AM

wrote Oct 2, 2012 at 12:33 AM

Anureeta wrote Oct 19, 2012 at 9:43 PM

CONTRADICTORY STATEMENT
right click on enitycontainer node and verify the context menu. it should allow options to add entity type and not entityset. on selecting it make sure that event is handled and entity type and entity set are created.
  1. right click on entity type and verify the context menu. it should have option to add property, rename entity type( it should also rename entityset ), delete entity type( it should also delete entity set) verify all events are handled by selecting each option on context menu.----------Failed
3.right click on property to get rename and delete option on context menu.----------Passed

wrote Oct 19, 2012 at 10:02 PM

wrote Feb 13, 2013 at 10:51 PM

jtalwar wrote Apr 19, 2013 at 1:35 AM

deleting the entity type does not delete the entity set

jtalwar wrote Apr 19, 2013 at 1:46 AM

add comment is not working on any of the nodes.

wrote Apr 23, 2013 at 12:12 AM

wrote Apr 23, 2013 at 6:45 PM

wrote May 1, 2013 at 12:22 AM

wrote May 16, 2013 at 9:30 AM

wrote May 16, 2013 at 9:30 AM

wrote Jun 14, 2013 at 6:53 AM