![]() |
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.
|
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 |
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 |
Tabular UI |
|
|
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 |
|
|
Popup-Menu |
|
|
Jump |
|
|
Query Dialog |
|
|
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 |
|
|
LOV Small Editor |
|
|
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 |
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. |
|
I nPowerForms
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. |
|
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. |
|
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. |
|
|
|
|
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. |
|
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. |
|
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
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. |
|
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. |
|
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. |
|
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.

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.
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.
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.
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.
Data
Source normal got displayed in Tabular style for a bird's eye view
of data within a Block.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
nPowerForms
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.
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.
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.
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 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.
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.
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
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.
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.
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.
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.