Please take the time needed to complete this introduction to devPad, even if you've read a previous version of this document. This way, you'll learn what you can do with it, and how to use it.
To browse this document, activate it -- press mouse button 1 while the pointer is over it -- and use PageUp/PageDown or the vertical scroll bar.
If you are using JDK 1.1, be sure to read the Special note for JDK 1.1 users section in the devPad Installation and User's Guide.
What's devPad ?
devPad is a development environment for NetRexx and Java. It is completely written in NetRexx and so is not tied to a particular platform. All you need is a system that implements a Java Virtual Machine.
devPad also differs from other existing development environments in that it does not offer a visual builder. It instead tries to help users store and organize their projects.
To do that, devPad uses a simple interface: an area in which you can freely place the various components of your projects. A devPad consists of zero or more areas, each of these representing one of your project's components.
For example, the devPad you are currently using contains two areas:In addition to those basic features, devPad allows you to browse the various classes and packages installed on your system or defined by your project.
- an HTML area (yes, the one you are reading :-) ;
- an editable area.
The Main Window
The main window consists of
The Pad menu presents options relative to the main devPad. It allows you to open the Properties notebook, add new areas, save the whole project and recompile it.
The Edit menu applies to the currently selected area (or the main area if nothing is selected). It allows you to delete the selection, select all contained elements (either areas or text) and to clear the selection. (The Cut, Copy and Paste options are only available through the toolbar in this release.)
The View menu applies to the main devPad. It allows you to choose the
displayed view ( Layout by default,
Details for a more synthetic view) and refresh the display.
The Selected menu applies to the selected area(s). Its content depends on the currently selected elements (the possible options are described later in this document).
The Window menu is currently irrelevant.
The Help menu offers quick access to useful reference documents and allows you to query the product information.
Working with Areas
Activating Areas
In a devPad, there is either an active area or zero or more selected areas. When an area is active, a thin double frame is drawn around it. To activate an area, just click on it with mouse button 1. An active area is special in that all commands issued and keys pressed apply or are sent to it.
Try it now! Just click on various places, and see the result. After experimenting, click again here, to re-activate this area. Note the changes in the toolbar and/or the Selected menu.
As stated above, when an area is active, you can direct commands to it. The commands you can use for a given area are located in the Edit and Selected entries of the main menu bar as well as in the area's popup menu. (Please note that in this release, menu options in the Edit menu are not automatically disabled if you select an area that does not accept them. In these cases, nothing occurs if you select them.)
Let's compile the area below. To do this, just click on it then select theCompile icon in the toolbar or the Compile option in the Selected menu. On the console the standard output from the NetRexx compiler is displayed.
Once the compilation is completed, you may notice that the frame border color has changed. It is done so to inform you of the result of the compilation. If it is OK, the frame color is turned green. If one (or more) warnings are issued, the frame color is turned yellow. If one (or more) errors are issued, the frame color is turned red. When you re-activate the area, the original frame color is restored.
Selecting Areas
To select an area, you can either click mouse button 1 on its double frame if it was active or press the Ctrl key while clicking mouse button 1 when the mouse pointer is on the area. You can select more than one area. If you mistakenly select an area, you can press the Ctrl key while clicking mouse button 1 over it again to deselect it. When an area is selected, a large border is drawn around it.
Try it now! Select this area (If it was active, just click mouse button 1 on the double frame border. If the area wasn't active, press the Ctrl key while clicking mouse button 1 with pointer on the area). Press the Ctrl key while clicking mouse button 1 with pointer over the other area. Now, both areas should have a large frame around them.
You can also use the Select all and Deselect all options in the Edit menu if the current active area is a devPad (if the active area is an Editable area, these commands select/deselect the contained text).
Deleting Areas
To delete an area, select it and choose the Delete selection command in the Edit menu. When an area is removed, the file it is linked to remains unchanged. (If more than one area were selected, they are all deleted -- as its name implies, the Delete selection command applies to the selection.)
Creating Areas
To create an area in which you will be able to enter text, do one of the following action over an empty space of a devPad:
Some platforms do not offer mouses with more than one button. In these cases, you have to press the META key while clicking or dragging mouse button 1 (check your documentation to find out your META key).
Whenever an area is created, its Properties notebook is opened, allowing you to define the area's properties. In this notebook, you can change the area's name as well as its background color.
Let's create our own area... But, first, we will make some room for our experimentations. We could scroll the devPad, but then, this text would be hidden. Hence, we will delete the ViewerComponent area. To do so, select it and then choose ... yes, that's it, the Delete selection option in the Edit menu. (Remember, the area is removed but not the associated file.)
Now, we will create an area that uses about half the available space. To do so, we move the mouse over the location intended for the upper left corner, then we press mouse button 2 and drag the mouse to the intended location for the lower right corner. As soon as the mouse button is released, an empty area is framed and a Properties notebook displayed.
Let's fill the properties notebook. On its first page, we have to enter a file name. Each area requires a name. If we select the Load from disk... pushbutton, we'll load an existing file in the area. If we enter an existing file name, but don't select the aforementioned pushbutton, the file will not be loaded. In fact, its original content will be overwritten by the area's content when it will be saved. In such cases, a warning is issued.
If your default devPad background is white, you may want to change the area's background color, as it defaults to white too (and it's not easy to spot an empty white area in a white area :-). To do so, select the Background tab. Ouch! Yes, you currently have to enter the red, green and blue values directly... (On some platforms, the specified color is used when the area is not selected, but a different one is used when the area is active.)
Close the notebook to validate your choices. In the remaining space, try to create another area. You can also use the devPad's scroll bars to enlarge your working space.
Even if nothing prevents you to create two or more area pointing to a given file, it is not recommended to do so yet, as the content of editable areas are not synchronized in the current release.
Resizing Areas
To resize an area, activate it and place the mouse cursor over one of the eight handles that are drawn on the frame (one in each corner, and one in the middle of each side). The cursor changes to help you locate the handles. Then, press mouse button 2 and drag to reshape the area.
Moving Areas
To move an active area, place the mouse cursor on its frame, but not on one of the eight handles described above. Then, press mouse button 2 and drag to move the area.
To move selected areas, place the mouse cursor on one of the selected areas, press mouse button 2 and drag to move the selected areas. (You can also place the mouse pointer on the large border drawn around the selected areas. Doing so is in fact required if you for example want to move a devPad area, as mouse button 2 drag is also used to create an area.)
Finally, you can also move an unselected (and inactive) area by simply placing the mouse cursor over it and mouse button 2 drag. (But as explained in the preceding paragraph, you can't do so for devPad areas.)
Let's move the two areas we have just created. To do so, we first have to select them. Then, we can drag them (with mouse button 2). If we want to move the area outside the currently visible portion of the work area, we can. The work area will scroll automatically.
If your mouse has only one button, see the relevant red notice above.
Popup Menus
To display an area's popup menu, press and release mouse button 2 when the mouse pointer is either over the area (if it is neither active nor selected) or over its border (if it is either active or selected). A rounded rectangle is drawn around the area(s) the popup menu refers to.
In this release, the rounded rectangle is not correctly removed if you cancel the popup menu without selecting an option in it. Just refresh the display to correct this.
Saving Changes
To save the various areas definitions, select the Save pad
option in the Pad menu or the Save icon in the toolbar. The
definitions of all areas (their colors, positions, etc.) are saved in
a devPad file, and the content of all modified areas is saved to disk.
Commands and Areas
There is currently three supported kind of area in devPad: HTML areas, like the one containing this text, devPad areas, like the one containing the aforementioned HTML area, and editable areas.
Commands in the Selected menu are specific to the selection (or active area, if no such selection exists). If areas of different types are selected, only commands common to the selected areas are listed.
If a command is issued on a selection, the command is send sequentially on all elements of the selection.
There is no explicit command to save a particular area to disk. Such saves occurs when needed. (If you really want to save an area, you can choose the Save pad option in the Pad menu, but all modified areas will be saved too, as well as the devPad definition. Another solution is to select the Compile option -- even if the content is an invalid NetRexx or Java program, it will be saved.)
There are several limitation with the current implementation of the editable areas, the most noticeable one being that when an editable area is not selected, it only displays its first few lines. This will changes in future releases.
Working with package and class browsers
Being able to logically group project data together is nice, but, when developing a program, it's often interesting to be able to view the various documentation related to the development environment we are using. With Java, the most interesting information is the description of the various classes packages.
devPad can read Java classes definitions, and present them through a browser. It does not rely on a static definition of a limited set of packages, so you can automatically browse your own packages. (In this release, the classes definitions are read one time. It means that if a class change during a session, the browser does not reflect the changes.)
A package browser consists of a list of all classes defined in the package
associated with a Class or
Hierarchy browser. There is no limitation of the number
of browser you can open at a given time.
You can filter the classes to select only those of interest by typing a semicolon-separated list of terms in the text area and pressing Enter. (Leading and trailing '*' are striped. Classes whose name match at least one of the given terms are selected and hence displayed in the list. The optional status bar informs you of the number of matching classes.)
A class browser displays all members of a class, in an organized view (class's members, instance's members, public members, etc.) If available, a class browser can also displays the class documentation and source code.
A hierarchy browser displays all selected classes and their ancestors, up to java.lang.Object, in a inheritance tree. Each node represents a class which can be selected and explored further via its popup menu.
In the current release, devPad looks for a documentation file in the %JAVA_HOME%/docs/api directory, whose name is the complete name of the class with a .html extension. (e.g., java.awt.List.html). It looks for a source file in either the current directory or in the %JAVA_HOME%/src directory whose name is the name of the class with a .java extension (e.g., java/awt/List.java). It's the usual Java convention.
To browse a given package, you have to select its name, and then choose Browse package in the Selected menu, or choose the package you want to browse in the Package reference entry in the Help menu. If an empty name is selected, the default package will be shown.
Try it now! Select java.io in the Package reference entry in the Help menu.Then play with the browser. Since it's read-only, feel free to explore - you can't break anything. :-)
The class notebook contains four tabs. If you don't see them all, enlarge the browser.
On some platforms, you may experience some slowdown while selecting a class with a big documentation file (such as java.awt.Component) for the first time. Even if the loading of the documentation is done in a background thread, some platforms implement multithreading poorly. Anyway, this slowdown only occurs during the first loading. If you re-select this class during the session (from the same browser or another, it does not matter) it will be much faster.
Conclusions
This brief introduction to devPad comes to an end. I hope you've found it interesting, and I would like to hear your comments/ideas/wishes/etc., either positive or negative.
To contact me (Martin Lafaix), send an email to lafaix@ibm.net.
To get the current release of devPad, check
http://wwwi3s.unice.fr/~lafaix/devPad/
Thank you for trying devPad.
Martin Lafaix
Legal stuff
Copyright (c) 1997, 1998 Martin Lafaix.
All rights reserved.
Commercial (re)distribution of this package without the express written authorization of its author is prohibited.