160 likes | 365 Views
Eagle Framework. ANEES-UR-REHMAN. Introduction. Domain Driven Application Plateform It develops any enterprise application for web with any kind of layout by only defining domain objects with meta model information. Central Features. Rich Internet Application Domain Driven Architecture
E N D
Eagle Framework ANEES-UR-REHMAN
Introduction Domain Driven Application Plateform • It develops any enterprise application for web with any kind of layout by only defining domain objects with meta model information.
Central Features • Rich Internet Application • Domain Driven Architecture • Modular Architecture • Dynamic Application Generation • Dynamic Bindable Form Generation • GWT/HTML5 based Application • Dynamic In-memory Compiler
Central Features contd.. • Rules Oriented Service Model • JavaEE 6.0 compatible • Using CDI for service injection • Easy and Fast to Develop and Maintain • Configured and Controlled by Meta Model Architecture
Defining Use case • @Actions(actions = { @Action(actionType = ActionTypes.SUBMIT_ACTION, performerType = ActionPerformerType.JAVA, exeution= UserProfileAction.class), @Action(actionType = ActionTypes.SEARCH_ACTION, performerType = ActionPerformerType.JAVA, exeution = UserProfileSearchAction.class)}) • @DomainObject(domainObject = UsersBean.class, position = "1", groups={@Groups(displayOption=DisplayOptionType.CASCADE, group={@Group(name="User Credentials", position="2", displayOption=DisplayOptionType.TABBED, properties={"userRank","userRoles"})})}) • @ExceptDomainObjectPropertyPolicy(domainObject = UsersBean.class, genralPolicy = DomainPerpertiesAllowType.ALLOW_ALL, properties = { @DomainProperties(property = "titles"), @DomainProperties(property="id"), @DomainProperties(property="address") }) • publicclass UserProfilePanel extends BaseComponentBuilder { • privatestaticfinallongserialVersionUID = 1L; • publicstaticfinal String COMPONENT_ID = UserProfilePanel.class.getName(); • @Override • public String getComponentIdentity() { • returnCOMPONENT_ID; • } • @Override • public String getFormTitle() { • return "User Profile"; • }
Defining Properties for SearchResult Table • Create the file with USECASEID.out and USECASEID.in to define the properties to take part in Searching and then populating in PaggedTable • META-INF/search-table/Usecase_Id.in Usecase_id.out
Defining Domain Object • Component will defined by the return type of property, if not defined by annotation • For Number, BigDecimal, Integer => FormattedTextField • For String => TextField Component • For String with @Password => PasswordField Component • For String with @RadioButton => Radio Group Component • For String with @Tablle => Table Component • For Boolean => CheckBox Component • For java.util.Date => PopupDate Component • For Enumeration with @Enumerated => Combobox Component (For Static Values)
Defining Domain Object contd.. • Component also can be defined by the Meta-Model Information • @ManyToMany => Table Component • @OneToMany => Table Component • @ManyToOne => Combobox Component (retrieved from table) • @RadioButton => RadioButton Group Component • @Table => Table Component • Component constraint information • @PropertyConstraints(isMandatory = MandatoryType.TURE, maxLength = "8", inputCaseType = StringInputCaseType.UPPERCASE, textInputDataType = TextFiledInputDataType.ONLYALPHA)
Defining Domain Object contd.. • Component position can be defined by the Meta-Model Information • @UiComponentPosition( positionColumn = "1", positionRow = "1", tableDisplayColumn= "1") • Only 2 Columns are supported by the template – if more columns are required then Template must be modified accordingly…
Create Container for Use cases • Create the container for usecases by extending BaseContainerBuilder. • Register the usecase IDs with container. • Please follow the example giving in eagle-coders-server-kernui.
Registering the Usecase • The usecase must be registered to conf/ com.eagle.coders.common.ui.interfaces.IComponentfile inside eagle-coders-server-kern project • The container must be registered to conf/ com.eagle.coders.common.ui.component.IUseCasesContainerfile inside eagle-coders-server-kern project
Modularity System • Modularity is done by using Netbeanse org-openide-util.jar • Above file must be in ear file or lib folder of deployable server