Features

Overview

InPowerForms 2.0 ADF edition is an advanced platform that enables a slightly trained Java engineer to create very sophisticated and reliable yet feature rich database driven applications with several times productivity compare to most tools on the market. The productivity gain can easily be more beneficial than the benefit of out-sourcing practice to companies outside U.S.
The following list are InPowerForms basic system features which are quite practical and sufficient for most enterprise application requirements. InPowerForms can easily be extend to cover more features not available at present time. IInPowerForms was architected and implemented with most rigorous software development disciplines and make heavy and judicial use of programming patterns. We focus on ease of development as much as delivery a fully interactive and pleasant experience to your application end users. The entire InPowerForms framework has given painstaking attention to ensure it is 100% keyboard navigable.

Features marked with a sign indicates it is only available in the enterprise version.

 

Navigator Tree

Navigation Tree presents a inventory of all the available Forms that are invoke-able within an application. The each tree node can be encapsulated with a folder. The leaf of the tree are the Forms, URL or Java actions that can be invoked. The tree ties into the security mechanism within InPowerForms such that it display only the invoke-able objects that are accessible to a user who belongs to a designated Role. The security setting is by User, by Role and by Objects. See security setting below. The navigator is an Eclipse View.

Form

A Form encapsulate a database transaction. It normally contains zero or more Blocks. There is also non-data bounded Form where no database transaction is involved. In such Form it acts as a place-holder for UI presentation. Multiple Forms will be displayed as Eclipse Editors. Close a Form release all the resource consumed by the Form.

Block

A Block is an encapsulation of some user interface composites that display one underlying ADF View Object. Normally table components are used to display theview object in a tabular style. There could be more than one Block within a Form. These Blocks can be peers or chained in a master-detail relationship such that the navigation of a parent automatically fetched its corresponding children for presentation. Note one can have an arbitrary depth of hierarchy of master-detail relationship within a single Form. There are many Block layout container (managers). The picture shows there is a master block Customers with three children Blocks Contracts,Invoice and Contact Info. The children Blocks are arranged in this particular container with a JTabbedPane component.

Block Title Bar

Each Block has a title bar that is used to display the name of the Block. When a Block is active, it will show the active color. To the right end of the title bar, developer can add other components such buttons such that action can be invoked. Most actions are Block related by convention.

Tool Bar

There is only one Tool Bar in the entire application. However, the tool bar will be attached to an active Block at run time. The Tool Bar provides a place where transaction can be saved or rolled back, the records within the active Block can be navigated, insertion or deletion of records can be initiated, query mode can be entered or canceled, the Block can be refreshed of data from the database and Presentations within a Block can be rotated.

Status Bar

The status bar shows the current Block's Data Source name, the record number within the Data Source. In addition, it shows the memory consumption by the application. Double clicking on the memory gauge will cause the application to do garbage collecting. The current user, the role and the machine IP are shown in the icons. Developer can add custom icons. If warnings occur such as enter malformed data, they will be displayed on the status bar for 3 seconds.

ADF View Objects

ADF View Object is an advanced Java business layer that binds to database tables,views, etc. A view object can be a sophisticated SQL statements that spans across multiple entities and thus multiple database tables. Each view object consists of definition attributes. Developer can set a wide variety of parameters on these attributes to affect its run time behaviors.

 

Presentation

Each Block can contain multiple presentations. Only one presentation can be visible at any given time within a Block. A user can use to switch or rotate the presentation. A presentation is a InPowerForms object that will take up the client area of the Block. By convention, a Block can contain two presentations, one in tabular view and another in single record view (see below). Single record is convenient for data entry while tabular is good for navigation. A user will normally switch in tabular presentation , quickly choose a record and switch to single record for more finer manipulation of record. Both tabular and single record presentations can good for all allowable data manipulations. All presentations are in-synchronization at all time. A block can have more than one presentations is needed. All the subsequent presentation can be made to instantiate on-demand.

Tabular UI

Data Source normal got displayed in Tabular style for a bird's eye view of data within a Block.

Single Record UI

Developer may choose to add a Single Record UI and form another Presentation for data entry. All UI and within each presentation are completed synchronized in its access and modifications of the underlying View Object.

Filter/Sort

In any given presentation, for any tabular or single record composite, a user can filter on a particular View Object Attributes displayed by the UI component or can sort each Attribute by invoking the Pop-up menu or clicking on the column header of a tabular composite. As soon as the filter or sorting is completed, the Tool Bar's cancel query symbol appears indicating there is a filter apply on the Block's querying logic. Unless a user click this button, the filtering logic will persist as long as the owning Form exists.

Popup-Menu

Developer can add their custom Popup Menu item onto the standard Popup Menu. Developer can decide what menu item should be added when the mouse cursor is on a particular column/field that display a View Object's attribute. The Popup Menu will be available to all Presentations.

Jump

InPowerForms has a special type of filtering a Block. It is a Jump. A Jump gather one or more data attributes from the current Block's View Object, use these data attributes and open a different Form by applying these attributes to formulate a filter strategy on any block within the target Form. This feature is particular useful for example you have a customer's contract Block (see picture above), and you want to zoom in the actual contract Form to see more contract detail. Developer can install these Jump very easily. Once the target Form is open, it will only display the records that fulfill the filter conditions. The picture shows the filtered contract details in the contract Form.

 

Query Dialog

A Query Dialog allows very sophisticated filtering of data within a particular block. Upon invoking the dialog, it will display all the query-able data attributes the current Presentation display. Note you can have more data attributes than what is displayed in the UI. If a data attribute is marked non-query-able, it will be participate in the Query Dialog. Normally database columns that does not have efficient index built for query will be marked non-query-able. Each data attribute can be marked of its comparison type as scalar or string. Scalar comparison type is normally for number and derivative data types such that all the comparison operators including BETWEEN can be application. String comparison operator will have LIKE and NOT LIKE operators. Sometime you might have only = operator for data type such as a image or binary data. On each data attribute, you can choose to do # (OR), +(AND) concatenation of the filter conditions. All data types that has a editor or renderer will be used to capture and display the input and output.

Editors

Editors and its associate infrastructure are the most crucial constructs within InPowerForms. Each data type has its own characteristics. For example, a date time data will allow user to input a variety of data time convention according to the user's locale. The editor should parse and detect erroneous user input and reject them by not committing to the database which would surely raise an exception. The idea of InPowerForms is to do as much validation as possible up front and give user a very pleasant and interactive experience of using the application. There are many possible derived data types such as social security number that requires a specific mask for data entry. InPowerForms internally has several generic editors to handle these derived data types that require validation of input data according to prescribed mask. Whenever an editor is invoked in place, it will show a light blue background color in addition to other visible border cues. Double clicking or Enter key will cause editor to appear if the field is editable. While in edit mode, another Enter will exit and post the changes. Escape will always cancel the edit. Whenever an editor fails to validate the data input according to the mask, it will warn the user and revert the cell's data to its original value. Only when the new input is valid and it is different from the underlyingView Object, will it try to post the changes. Note, InPowerForms also takes non-required field into consideration which typically required more sophisticate testing logic within the editors.

Date Time Editor

Date Time editor allows user to pick from a pop-up calendar (CTRL-Down Arrow or CTRL click), The calendar has both the date and time portion. Many keys allow fast navigation of choosing a date in addition to traditional mouse support. The calendar is fully internationalized and will display appropriately according to each Locale. There are six built-in verification masks when a user choose to type instead of picking. In addition, developer can also supply addition date format for input verification.

LOV Editor

Using foreign key relationship is a very common database design. Normally you will have foreign keys in a child table to a parent table where more detail information are kept. InPowerForms allows you to compose a list of value from the parent table and present to a user as possible candidates to modify the foreign key association. Developer can choose what to display in the lookup editors and how many column's data attribute to copy from the parent table to the child table. Note, the parent table can be of underdetermine length of entries. InPowerForms will cache the display of parent table entries on-demand. A user can also filter the Lookup Editor by typing in few characters, available choices will be present if there are partial matches, it a full match is typed, the editor will accept the entry without pop-up the list picker When the Lookup Editor's choice pick is display (by mean of CTRL-DOWN KEY or CTRL click), a user can type in the search box and incrementally filter the choice list as well.

LOV Small Editor

Similar to LOV Editor, but if you have a shorter or fixed size list, normally no longer than 20-30 entries, using Lov Small Editor is more efficient because it does not involve issue SQL to database for incremental lookup. This editor also only allow you to pick rather than offering additional typing capability. The choices from the parent table are displayed in List component.

Money Editor

InPowerForms offers a Money data type and its corresponding editor. The Money type support Java Locales for parsing the type input and displaying the output correctly.

Boolean Editor

Boolean Editor is used to display true or false value. It maps to the Java Boolean data type. While in the editor, you can press DOWN KEY to rotate the value or key Y/N, T/F to set the value in addition of using the mouse.

Other Editors

There are many other editors for basic Java types such as BigDecimal, String, Long, etc. In addition, developer can extend more specific editors in their domain of work. An example shown here is an editor for picking icons bundled with the application.

Presenter

Developer can choose the implement the Presenter interface such that a underlying data type can present in various visual form such as an icon or apply a Java Format object to print the text differently than the underlying data type would normally convert using toString() function.

Data Type Input Verifier

Each data type can be provided a data mask to verify the type inputs. For example, a social security, or U.S, telephone number or U.S postal code all have their verifier. The verifier can be any Java code but typically is written in regular expression syntax.

InPowerForms Objects

InPowerForms has many Form level objects the are displayed within the Navigator. They are Folder, Form, URL and Java Code. Each object has its capability that can be set dynamically by an administrator according to one's role. Each time a user log into the system, the appropriate objects available according to the security setting will be displayed for that user. In addition available capability will be provide or restricted on the objects from the user. Objects have to be registered with InPowerForms runtime system via a Objects Form. Developer can register custom capability on special objects to provide security by value. For example, a billing analyst can access a submit bill button within a Form but the button will be invisible to a clerk.

Capability

Each object can be defined a set of capability available. For example, a data bound Form can have INSERT,DELETE,UPDATE,QUERY,ACCESS as its base capabilities. Additional capabilities can be defined by administrator and developer. The entire security protocol within InPowerForms can also be implemented and integrated with an external authentication or directory services via API. The enterprise edition use database datable to store the capability attributes. Administrator register the capability via the Capabilities Form.

Roles

InPowerForms enterprise edition use database table to store Roles mechanism. A Role is a membership which a group of users belong. The role has a set of capabilities granted by the security system at runtime. Use Roles Form to administer the roles.

User/Users

Administrator will use Users Form to maintain users information. Note, administrator an deny a particular capability to an object to a specific user enough whose role was granted access to that capability. This is a fine tune feature in InPowerForms.

 

 

 

A user will use User Form to maintain his/her information.

Role Tree

Role tree is a Form where administrator can design run time security setting by pointing and clicking. Capabilities can be assigned or denied by object and by role. The Navigation tree can be designed into any hierarchical structure with the desired objects accessible to a role. Administrator can also drag and drop many of these objects from one place to another. The Combo Box display the role of interested and can be changed. The bottom pane display the granted or denied capability of currently selected object to the role. Again, interface API are available for integration with an external directory service.

Screen Captured

InPowerForms can allow user to capture the screen for documentation or diagnostic purpose. The captured screen picture can be save on file, send off as an email or printed.

System Logger

InPowerForms provides a table driven system logger. The logger can chain a bunch of log events for diagnostic purpose. This logger is especially useful to captured server side events. Other forms normally use Jump mechanism to filter the View Logs Form.

Java Invoke-able Object

Developer can install executable Java code such that when a user click on it within the Navigator, it will execute the code. This mechanism is particular useful to automate some tasks such as opening all Forms for regression test purpose.

Externalized Text

Externalized texts are normally handle with Java message bundles. However, in a multiple developer environment adding or deleting handle by any individual cause synchronization problems for the others. InPowerForms use a database drive approach to ensure uniqueness of the text handle and instance propagation of new handles to all developers at development. At production time, the external texts will be put into Java properties files. Use UIText Form to manage the mechanism.

Generic Properties

Many enterprise applications use generic properties table to store custom information at the customization phase. InPowerForms has made a Properties Form to manage the generic property table.

Generic Elements

Elements is another pattern in the database design to store custom information. The element does not change value but its children normally change values across some date effectively. InPowerForms has Element Forms for such use.

Generic Short List

Many database architecture use a generic list to store finite list of data such as a list of 50 States. This architecture will reduce the number of tables substantially for trivial storage of auxiliary data. InPowerForms use ShortList Form for such use.

 

 


Copyright. © 2002-2006 InPowerSoft Corporation  All rights reserved.