IST Home page  



PRODUCTS

 X-Designer  Specification  Products
 Code Generation


From a single design X-Designer can generate:

Java Code
C++ for Microsoft Windows (MFC)
C++ for X/Motif
Fully portable C
UIL
Ada 95
In addition Makefiles and Resource Files can be generated easily.

You do not need to run X-Designer on the target platform - it can be used to design GUIs for applications running on almost any system, inlcuding real-time embedded operating systems such as VxWorks and QNX.

X-Designer solves the 'thin-client' problem for Motif development. Even if you do not yet know you will want to move applications to Java or to Microsoft Windows the future is assured with X-Designer

By generating code for Motif, Microsoft Windows and Java from a single interface design X-Designer ensures a consistent interface across all three platforms.

Even Motif interfaces that were not produced using X-Designer can be moved to Java or Windows by using X-Designer's Capture facility.

Java Code Generation

X-Designer 4.6 saw the introduction of a Java code generator. In addition to being able to generate Java code for every Motif widget, X-Designer has Motif equivalents of all the Java interface components.

X-Designer can generate 100% Java source code in either Java 1.0, 1.1, 1.2, 2 and Swing flavors. Both 1.0 and 1.1 event models are supported.

With X-Designer you can generate Java for a Motif design and you can design with Java in mind. X-Designer maps Motif's constructs over to Java's Abstract Windowing Toolkit (AWT) or Swing, and uses an additional class library, the Motif Windowing Toolkit (MWT) for anything with no direct equivalent. For Java layouts, such as the GridBagLayout, support is provided on the Motif side with a set of Motif Java Layout emulation widgets. This lets you design layouts that will map directly to Java.

X-Designer can generate either Java Applications or Applets.

Fully Portable Code

X-Designer generates standard K&R C, ANSI C, C++ or UIL. For Motif interfaces it uses only the X and Motif toolkits and you can easily port the generated code to any platform that supports X and Motif; for Windows interfaces only the MFC toolkit is required; and for Java interfaces the generated code is pure Java and is therefore portable to any JVM.

IST draws upon considerable experience in porting X-Designer across more than twenty platforms to ensure that the generated C or C++ code is completely portable. There are no proprietary libraries or languages and no run-time system beyond the native windowing toolkits.

C++ for Microsoft Windows (MFC)

X-Designer delivers a flexible, non-proprietary solution for software developers who are porting applications between Motif and Windows by targeting the Microsoft Foundation Class library (MFC). X-Designer's All configurable resources can be generated as Windows resources for easy adjustment on the Microsoft Windows platform.

This approach assures compatibility with all existing and future Windows platforms: Windows 95, Windows 98, and Windows NT, for example, without recourse to any proprietary libraries and environments that emulate the Windows look-and-feel.

X-Designer can steer the developer towards designing an interface composed of GUI elements common to the Motif and Windows environments.

Structured C & C++ Code Generation

X-Designer provides complete control over the structure of the C or C++ code generated. Any widget hierarchy can be encapsulated in the generated code as a C function or structure, or a C++ class. Widget data structures can be declared global, static, local, public, Protected or private in scope. X-Designer will make intelligent choices for the default code structure.

Structured code generation comes into its own when you use C++. X-Designer follows the widely accepted Douglas Young approach where individual widgets or widget hierarchies can be encapsulated within a C++ class. Each of these can then become a reusable element in the X-Designer palette and may be subclassed to suit changing requirements. Incremental generation of callback stubs files and Makefiles allows the interface design to evolve in step with the application code. This reduces the chance of developer code being accidentally overwritten.

Reusable Components

Reuse is central to X-Designer's design philosophy. Any widget hierarchy, or sub-hierarchy, can be saved as a reusable definition that appears as a new 'composite widget' on the X-Designer palette. Instances of this definition can be used both to speed the development of subsequent designs and to provide cross-platform conformity. All resource settings and callbacks can either be inherited from the definition or overridden in the instance. New widgets can be added within an instance hierarchy, thus customising the object across different applications and contexts. Definitions are especially useful when generating C++ code since instances are implemented as subclasses from the class encapsulating the definition's hierarchy. This provides all the power of object-oriented inheritance.

Thin-Client Partitioning

X-Designer 5 has all the necessary facilities to enable you to partition your application into a thin client and application server. You can now choose to generate a thin client front end in Motif, Java or Windows MFC, and have it talk to the rest of your application sitting as a C or C++ server anywhere else on the Internet or your Intranet.

X-Designer uses the toolkit independent layer to pass the application specific data between the client and server. Hooks are provided to allow you to perform processing on both the client and server ends.

Tri-platform Interface Portability

X-Designer 5 introduced a portable interface to user interface controls. Instead of having to write your code using the toolkit's programming interface, and writing it again for other toolkits you support, X-Designer allows you to set up and retrieve values for any control using a standard interface. So for example the code to set the contents of a text control is the same in Motif, Windows MFC, and Java AWT. This is done in the tradition of X-Designer with straight forward source code, not with the use of proprietary libraries.

Internet Connectivity

Direct Internet access is supported from the X-Designer generated code, with MIME handling, HTML reading and URL manipulation. X-Designer uses private MIME types for its client-server communication and gives you the ability to write your own MIME handlers for any data available across the Internet. X-Designer 5 has an HTML reader that allows you to pick important data from web pages without having to write a parser. Also included is a small footprint URL library to give you the ability to perform sophisticated web access with minimal programming.

Migration Path for Legacy Applications

With X-Designer's Capture tool, you can grab the interface from any Motif application, even if you do not have the source, and bring it into X-Designer. Using the Capture tool's 'Java ready' flag, the imported design is already pre-structured for best Java code generation. With support for the latest Java and Windows MFC, together with the Visaj export facility, X-Designer gives you the ideal path to convert old Motif applications into Internet and Intranet applications.

Ada Code Generation

OC Systems have supplied XDA which converts X-Designer's output to Ada 95, so that users of X-Designer can now use it to build Motif applications in Ada95.

XDA is a Perl script which creates Ada 95 bindings to C code generated by X-Designer.
It is available at no charge here: xda.tar

XDA works on all platforms supported by X-Designer and all Ada 95 compilers. Users requiring support should contact IST's Support desk, support@ist-inc.com.

Source Code - Your Rights

You have full rights over generated code and limited rights over files in the X-Designer distribution.

 


 COPYRIGHT ©1995-2012 IST Limited. ALL RIGHTS RESERVED Twitter | Legal Info | Privacy | Search | Sitemap | Contact Us Version without menus