Visual Ada Developer

Leonid Dulman DES Inc 38361, Six Days War 17a/18, Hadera, Israel Email: [email protected] Phone: 972-6-6344970

Abstract: • scientific: to contain packages of the scientific subroutines Programming language popularity depends not only on its for the important sections of mathematicians (differential properties and quality, but also on service which the user gets equations, theory of probability, combinatorial and others); in its environment. Gui and visual developer are important • engineering: the engineering drawing, finite-differences components of IDE (Integrated-Development Environment). methods, method of finite elements and others; Visual Ada Developer (VAD) helps Ada programmers easily • multi-media: transformations of various graphic formats create OS independent application, using standard set of (image edition), animation, creation of the documents and components, such as GUI elements, Multimedia elements, information systems, support sound and video; Network connections, DB connections and others. • various database systems support; Categories & Subject Descriptor: • client/server systems and networks: working with html and D. SOFTWARE; D.1 PROGRAMMING TECHNIQUES xml documents; D.1.7 Visual Programming • real time applications. General Terms: Design The peculiarity of Ada visual system is language opportunities and a range of soluble problems. Keywords: Ada-95, Gui, Ide , Tcl/, Widget It is desirable to include into system:

• a special real time debugger and timer-debugger for 1 Introduction debugging multi-task applications with scaling of time, The development of visual programming systems today is the suspension of time in check points and step-by-step mode; most dynamic and quickly developing part of tool software. It's • a special distributed debugger for debugging distributed the future of programming and today it is possible to speak of systems. visual language as a new algorithm-programming meta- language, which operates with forms, properties, methods and • an emulators of input/output ports and interruptions, events. generators for the test i/o operations and interruptions, a Visual developers should become as integral part of operating special absolute address data record programs through system as a various office systems are, for example QT 3.0 has given time intervals to ensure reiteration of data and events Gui builder. at debugging real time systems and to check up survivability of system at a various sort failures. 2 The Requirements to Ada Visual System • maximum undisguised, opportunity to add new visual 3 VAD (Visual Ada Developer) components and to change the existing. no static rc files. We have realized some of the formulated above requirements in All widgets may be dynamically created, destroyed, Visual Ada Developer (VAD). removed and resized. • maximum system-independence. All system functions Main window should be latent by visual developer functions, so that it Main menu panel would be possible to realize application in various File menu operating systems. New Project Dialog • the system should provide development applications in Load New Project Dialog various areas of programming. Open Project Dialog Load Open Project Dialog (*.gui files) Save Project button Permission to make digital or hard copies of all or part of this work for Save current project personal or classroom use is granted without fee provided that copies Save As Project Dialog are not made or distributed for profit or commercial advantage and that Load SaveAs Dialog copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, Exit button requires prior specific permission and/or a fee. Close VAD SIGAda’02, December 8–12, 2002, Houston, Texas, USA. Build menu (Mark needed components) Copyright 2002 ACM 1-58113-611-0/02/0012…$5.00.

30

Figure 1. VAD 6.0

TCL Script Generate check button TCL Script menu ADA Main Program Source Generate check button Create Embedded Window Form button ADA Init Package Specification Generate check button Load Form to create embedded window ADA Init Package Body Generate check button in Canvas or Text widget ADA Event Package Specification Generate check button Configure Script Form button ADA Event Package Body Generate check button Load Form to build configure script Gui File Generate check button Bind Script Form button Shell Script Project building check button Load Form to build bind command, if need to use View menu event ,which is absent Redraw button in events part of Properties Inspector or need to Redraw Project Form build virtual event View Widgets tree button Image menu Load Window with Project Widget Tree Image Builder Form button Load Properties Inspector button Before using image in widget it must be building As a role Properties Inspector is loaded automatic from image file. for selected Widget, but it Load Form to build image and add it to image table. may be closed and need to load it Icons Builder Form button Wizard menu Load Icons collection to add needed to image table. Layout Wizard Form button Image Editor (TKpaint) load button Load Layout Wizard Form, which helps to build Load Image Editor TKpaint selected layout properties Image Processor (XBit) load button Widget Depended Options Form button Load Image Processor XBit Because TK widgets have many properties, Image Viewer (Whiteboard) load button fixed properties set and special Load Image Viewer Whiteboard addcreate property is available in Properties Inspector. TCL packages menu Wizard helps to build this property. Internal Supported TCL Packages include buttons Copy Properties From … Form button Before using TCL package in VAD Load form to copy properties from existed ,it must be loaded. widget to new Editors and parsers menu

31

Text Editor (FVE) load button Xterminal load button Load FVE text editor with VAD packages help Load Xterminal Emulator HTML Editor (August) load button ASED IDE load button Load HTML Editor AUGUST Load TCL ASED IDE XML Parser Form button Load Form to parse XML document FM load button XML Editor Form button Load File Manager Load Form to parse and edit XML document Corba Parser Form button EXIT button Load Form to translate IDL to ADA Oracle connection menu (available only after Oratcl Component pallet panel package was loaded) Standard Widgets pallet Logon Dialog button Open Page with Standard Widgets Load Logon Dialog Form Scrolled Widgets pallet Open Connection button Open Page with Scrolled Widgets Open connection to Oracle DB BWidgets pallet DB Navigator load button Open Page with BWidgets Load Oracle DB Navigator Add Widgets pallet Close Connection button Open Page with Add Widgets Close Oracle Connection Tcl 8.4 Widgets pallet Query Form button Open Page with New Tcl /Tk 8.4 Widgets Load SQL QUERY Dialog Form Widgets panel Logoff button Widgets buttons for selected Widgets pallet Close Server Connection Status panel Utils menu Show Layout script, Addcreate script, and Pointer Change Widgets Place Form button coordinates Load Form to change two widgets by place Move Widget Form button Properties Inspector New widget in Widgets tree is always last. Widget Selection Load Form to move widget to new place. Select Widget from Project Widgets Tree Delete Widget Dialog button Properties form Delete selected widget Fill Standard Widget Properties Form Import Widgets from other project Form button Events form Load Dialog Form to import part of other Fill Widget Events Form project in current. Add/Correct switch button Gnat menu To add Widget to Project or correct Widget, need to push Settings Environment Variables Form button Add button Load Dialog Form to set GCC Environment Variable Erase button Compile Form button Erase selected Widget from Project Widget Tree Load Dialog Form to compile ADA or (C++) sources by GCC compiler 3.1 Common Description Link (Build Executable) Form button VAD is a gui builder based on Tcl/Tk (tools command Load Dialog Form to build executable language). It generates 100% Ada-95 system independent Run button software, that is portable to Windows, OS/2, UNIX (Linux) Run Executable module and Mac. What you need is only to compile generated code on Settings menu the used platform. VAD is fully open system without black Settings VAD Form button boxes. It has only four functions for Ada - Tcl connection : Demo button Load Demo VAD Session execute - execute Tcl script; Help menu command - add Ada event handler to Tcl handlers list as a new Tcl command; Help Topics in HTML format gettclvalue - save a Tcl variable value in Ada variable; Hot buttons panel getparametervalue - save a Tcl command parameter New Project Dialog (Ada event handler as a Tcl proc with Open Project Dialog parameters) into Ada variable. Save Dialog Save As Dialog

32

Figure 2. OpenGL demo

3.2 What You May Do with VAD • create and edit text files. • build an application based on standard widgets: toplevel • edit html files frame button radiobutton checkbutton menubutton label • edit and parse xml documents entry listbox canvas message menu item scrollbox scale text spinbox panedwindow labelframe; • translate IDL to Ada-95(CORBA) • use wide widgets collection (BWidgets): Button Label • build HTML documents based help system. Entry Listbox ArrowButton ProgressBar MainFrame • work with ftp LabelFrame LabelEntry TitleFrame Dialog ScrolledWindow PanedWindow Buttonbox Notebook • reset system settings for GNAT Ada-95 compiler, compile (page) Spinbox Tree MessageDLG ProgressDLG Ada and C(C++) sources and build executable. ScrollableFrame ScrollView PagesManager PasswdDLG; VAD generates a compact system, which consists of main • use Bryan Oakley widgets: combobox mclistbox; program and two packages: • use direct executable Tcl script: tclscript; • Initialization widgets and handlers package; • use widget from Tktable Package: table; • Empty Ada event handler’s package. • use widgets from BLT package: graph barchart; • VTK (Visualization Tool Kit) package • use cscrollbar (scrollbar analog); • use widget from Tkhtml package: html; 3.3 High level graphic’s support VAD supports high level graphics by XBit package and • use widget from Tkogl (Tom) package: OGLWin; OpenGL ( Tkogl package or Tom packages). • use Scrolled Widgets: text canvas listbox mclistbox table html; 3.4 Multimedia support • use many of image formats such as: bmp, xbm, xpm, gif • VAD supports multimedia sound and video. (with transparency), png, jpeg, tiff and postscript. • Snack package supports all sound formats. • use huge icon collection; • XBit package supports MPEG movie (without sound), • generate adasource from image file by Martin C. Carlisle OpenGL and DirectX(Windows) and Patrick Maes image generator (from RAPID); • QuickTimeTcl package supports Quick Time video in • directly connect to oracle (or odbc) server, navigate on DB; Windows and Mac • use sound and video;

33

Figure 3. VTK demo Figure 4. QuickTime demo.

• XanimTcl package supports Quick Time video and *.avi 5 References video in Unix. 1. Ada 95 RM VAD automatically loads needed package for Quick Time 2. Tcl/Tk - tools command language 4 Summaries and Future Work http://www.ctivestate.com With VAD you may build gui oriented application based on 3. TASH by Terry J. Westley http://tash.calspan.com/ Tcl/Tk standard widget collection, BWidgets collection, 4. RAPID by Martin Carlisle oracle database support, odbc database support, animation, multimedia sound, ftp control and net common control , html 5. VAD 6.0 http://websamba.com/ldulman/vad.htm browsing,xml parsing , idl to ada translation and so on. In next VAD versions we plan to add new features :more powerful database support, expanded xml support, including Common Warehouse Metamodel (OMG CWM Standard)

34