Jargon ReaderX - BUILD 98 README FILE - March 29, 2006 _________________________________________________________________ CONFIDENTIAL - FOR USE BY JARGON SOFTWARE AND ITS CUSTOMERS ONLY ===== NOTES ===== 1. Tracking numbers have the structure [Type][Build].[Issue], where "Type" is: D - Defects or known issues (bugs in implemented features) U - Unimplemented features (if in Reader but not in ReaderX) N - New features (planned new features for ReaderX) L - Limitations in ReaderX (features not planned to be done) "Build" is the build number where the item was added "Issue" is a sequential number within that type/build. Example: D47.1 is the first defect reported in build 47. 2. This list replaces all previous Jargon ReaderX lists. 3. There is a possiblity that hangs may occur in Internet Explorer after ending a ReaderX session, if a certain IE option is set. To check if this may be causing hangs, go to the "Advanced" tab in the IE "Internet Options" window. In IE4, select "View-->Internet Options" menu choices. In IE5+, select "Tools-->Options" menu choices. If "Browse in a new process" is checked, unchecking it may help to prevent future hangs. This appears to be a bug in IE, not in our software, since it only appears after ReaderX has completely ended and then the IE startup window itself is closed. ==================================================== CORRECTIONS AND ENHANCEMENTS INCLUDED IN THIS BUILD: ==================================================== The following corrections and new features are included in this build: N97.1 (HIGH) SUMMARY: Updated code signing certificate DETAILS: The installation CAB file contains an updated Verisign code signing certificate. The previous one expired 2/28/2006. N97.2 (HIGH) SUMMARY: New client and host methods to dynamically change label image DETAILS: Added new client method label.setIconName(string pathname) to change the image displayed in a label component dynamically at runtime. Also implemented the existing host method jsi/label/seticon.i which had previously been supported only in the Java Reader version. D97.1 (MEDIUM) SUMMARY: Corrected display problems when manually resizing nested frames DETAILS: Corrected display problems that showed up when dragging the edges of a parent frame that contained an inner frame. The bottom 44 pixels would display random garbage patterns when doing this. ================================================================ The following items were included in build 97: D95.1 (HIGH) SUMMARY: Corrected problems using SSL on host tasks DETAILS: Corrected problems using SSL on host tasks. Both the global parameter "Secure=true" and the host task option "isSecure=true" now correctly use SSL for the http request. ================================================================ The following items were included in build 95: D94.1 (MEDIUM) SUMMARY: Correct focus problem with table and new frame DETAILS: When double-clicking on a table row, which ran a tasklist that rendered a new window, sometimes focus would not be given to the new window (being caused by a "mouse up" event within the table). ================================================================ The following items were included in build 94: D93.1 (MEDIUM) SUMMARY: Correct appearance in Windows XP Theme DETAILS: This release corrects the appearance of disabled fields when running in Windows XP Theme. Also corrected the default window background, which was too dark, causing labels to appear in lighter colored boxes. ================================================================ The following items were included in build 93: D92.1 (HIGH) SUMMARY: Correction to fix D84.2 in build 87-92 DETAILS: The client dispose method in builds 87-92 was not removing the app from memory. After disposing an app "X", if "X" was run again, the previous component contents and values were still used, instead of loading a new copy of the xml app from disk. This is now fixed. ================================================================ The following items were included in build 92: D84.2 (HIGH) SUMMARY: Correction to fix D84.1 in builds 87-91 DETAILS: The fixes in builds 87-91 introduced some new bugs which caused some tasklist invoke functions to be ignored. This build corrects this problem and other related issues with disposes. We believe the dispose function now works properly in all cases including on WinXP SP2 operating system versions. ================================================================ The following items were included in build 87: D84.1 (HIGH) SUMMARY: Changes and corrections to app dispose features DETAILS: This release corrects several problems and implements some changes in how xml apps are "disposed" (removed from memory) after being run. We recommend a design review and thorough testing before deploying this release. It is possible that minor changes in your XML apps may be required to keep the same behavior as in prior releases. CHANGES: (1) The frame.isDisposalFrame property now has no affect, it is ignored by ReaderX, regardless of its value. (2) The frame.dispose() method no longer does anything, it is ignored. (3) An app will be disposed automatically when it no longer has any visible window frames, if the app.isPersistent property is set to "false". This will happen when an app's last visible frame is closed by the user clicking the "X" button in the frame title bar, or when the last frame is closed by doing a frame.setVisible(false) task. (4) To prevent the disposal of an app, set the app.isPersistent property to "true", so that the app will stay in memory until an app.dispose client task is done or until ReaderX is terminated. CORRECTIONS: (1) Problems with further processing that Windows was doing with memory after it was no longer allocated have been fixed. This was sometimes causing Internet Explorer to crash after disposing certain large applications. NOTES: (1) If an app disposes itself using the app.dispose() method, it must not try to do any more tasks after that in the same tasklist, particularly any tasks that refer to objects in the disposed app. The dispose task can be the last task of a tasklist in an "IF" statement, that is ok. (2) Doing a client dispose task in a tasklist linked to a WindowClosing event will no longer cause an error, but is not recommended. N84.1 (MEDIUM) SUMMARY: New table method: setRowSelectionInterval(fromRow, thruRow) DETAILS: Implemented a new table method to select a range of rows in a table which has been set to multi-selection mode. The method is: setRowSelectionInterval(int fromRow, int thruRow). ================================================================ The following items were included in build 84: N82.1 (HIGH) SUMMARY: New host method "jsi/combobox/addlist.i" to send choices with commas DETAILS: This new host method allows adding combobox choices with a specified delimiter. Choosing a delimiter other than a comma thus allows choices that contain commas. N82.2 (HIGH) SUMMARY: New "maxChars" attribute on text components to limit input DETAILS: This new attribute allows limiting input to a specified number of characters in textfield, textarea and password components. If the value is -1 (the default) then any number of characters can be added. ================================================================ The following items were included in build 82: D80.1 (HIGH) SUMMARY: GetDataFromAllRows uses wrong values on cells with logical edit masks DETAILS: If table cells with a data type of "logical" have an edit mask, the 'GetDataFromAllRows' method uses the values from the last row for all row values. N80.1 (HIGH) SUMMARY: Allow deselection of individual rows in multi-row table selections DETAILS: When a table is in multi-row selection mode, allow deselecting a row by CTRL-clicking it, like the normal Windows selection behavior. ================================================================ The following items were included in build 80 and previous releases: D67.1 Plus/minus keys in a selected decimal textfield don't clear D69.2 HostURL does not work with alternate port number D70.2 Using colors on disabled textfields eventually crashes ReaderX D71.1 Suppress spurious "duplicate hashtable" messages D71.1 When sending all table rows in host task, empty rows cause data loss. D71.2 Minus sign dropped when sending host task integer values. D72.1 Vertical scrollbar is disabled on textpanes. D72.2 Host method jsi/listbox/addlist.i always delimits commas D72.3 Cannot change tooltip if there is no initial tooltiptext value D75.1 Correct a variety of memory leaks and resource problems. D76.1 Correct a limit on number of child nodes in XML files in Build 77. D78.1 Edit masks in table cells cause GetDataFromAllRows to fail. D79.1 Update VeriSign license for ReaderX CAB install file. N67.1 Listbox is missing an "addObject(String)" method. N67.2 Provide a way to prevent users from closing a frame N67.3 Allow commas in message box and warning box text N67.4 Allow commas in choices added to listbox N67.5 Provide a method to change table column headings N72.1 Provide support for Netscape 6 and 7 in install files. N72.2 Remember which component has focus when frame reselected N74.1 Math utilities for decimals N74.2 Table column headings as buttons with action events N74.3 New client table method getDataFromRangeOfRows(int fromRowNum, int thruRowNum) N74.4 New host method to add items to a combobox in a table cell N74.5 Add options to use SSL encryption on all or selected host tasks U72.1 Host method "jsi/component/settooltiptext.i" not implemented. U72.2 Client method tabpanel.setSelectedIndex not implemented. ================================================================ KNOWN DEFECTS AND PROBLEMS IN EXISTING FEATURES: ================================================================ D47.10 (MEDIUM) SUMMARY: Missing and hard-to-find tooltips. DETAILS: Tooltips on menu items don't work. Tooltips on editable comboboxes only work if you position the cursor on the border of the field. D47.11 (MEDIUM) SUMMARY: Error box does not have a VSB. DETAILS: Error box does not have a VSB, so long errors cannot be viewed in full (such as the lengthy webspeed "debug" HTML page). Also can't see the OK button, but can dismiss it with "ESC" key. D47.14 (LOW) SUMMARY: Radio buttons must be in their own subpanel. DETAILS: Radio buttons in a button group may cause hangs unless they are in their own sub-panel, or are in strict Z-Order (left to right, top to bottom) without any intervening components of other kinds. D56.2 (MEDIUM) SUMMARY: Panel method setVisible(false) fails in some cases DETAILS: If a panel is placed directly in a frame which also contains an internalFrameContainer (for child frames), then the panel method panel.setVisible(false) does not work. The panel stays visible. Testing shows that the frame is not repainting properly because of the internalFrameContainer. WORKAROUND: put the panel to be hidden inside a parent panel which always stays visible, then the method works correctly. D56.3 (MEDIUM) SUMMARY: Frame displays "bleed-through" contents in some cases DETAILS: If a frame contains an internalFrameContainer (for child frames), then the areas of the frame that do not contain any components or panels may show "bleed-through" contents from the screen wallpaper or other application windows. Testing shows that the frame is not repainting properly because of the internalFrameContainer. WORKAROUND: Fill all areas of the frame with panels or other containers, using horizontal/vertical fill as necessary, to "cover up" all areas of the frame. D61.5 (MEDIUM) SUMMARY: Table row selection and editing not being disabled. DETAILS: When a table is disabled by using setComponentEnabledStates(false) method on a panel or tab that contains the table, it still allows row selection. This happens in both ReaderX and Writer/Reader. Also if the columns are editable, they can still be edited. Whereas, in Writer/Reader it disables the column where focus is, but not other columns in the row. D64.1 (HIGH) SUMMARY: Newlines (\n) in textarea initial values display incorrectly DETAILS: When a textarea has an initial value that contains the "\n" string to symbolize a newline, the field is displayed with a newline (decimal 10 character) at that point in the string, but the "\n" characters are also still displayed, and should not be. D64.2 (HIGH) SUMMARY: Hidden date textfields not populated correctly from host DETAILS: There is a problem populating hidden date textfields from a host method, where the hidden textfield is in a miscContainer. There are 2 different problems, depending on how the host task is formatting the date value being sent to the hidden field. A 6- digit date like 08/15/01 is stored as an incorrect date value, like 07/31/05. An 8-digit date like 08/15/2001 is stored as null. D69.1 (MED) SUMMARY: Host method jsi/table/collabel.i does not work DETAILS: The host method jsi/table/collabel.i does not set the column titles of a table correctly. The workaround is to use jsi/invoke.i to run the corresponding client method. D70.1 (MED) SUMMARY: Table combobox cell editing mode not ending properly DETAILS: When a table combobox cell is being edited, clicking on another component such as a button shuts off editing mode but does not fire the action event of the button. The cell editor should go away anytime another component receives focus, and if that other component is a button the action event should get fired. ================================================================ UNIMPLEMENTED FEATURES (TO MATCH JARGON READER FUNCTIONALITY) ================================================================ U47.2 (HIGH) SUMMARY: Button mnemonics. DETAILS: Button mnemonics are not recognized (underlined characters used as accelerator keys with ALT-). U47.3 (HIGH) SUMMARY: Menubar horizontal line. DETAILS: Menubar needs horizontal line beneath it. U47.5 (MEDIUM) SUMMARY: Text area and text pane scrollbars as needed. DETAILS: Need text area and text pane to produce scrollbars as needed. Currently only the "Always" and "Never" options in the HSB and VSB properties are implemented. U47.6 (MEDIUM) SUMMARY: Asynchronous download of images. DETAILS: Asynchronous download of images and notification to update layout U47.7 (MEDIUM) SUMMARY: XML configuration files. DETAILS: Initialize ReaderX via XML configuration files, like Reader. U47.8 (MEDIUM) SUMMARY: Error message files. DETAILS: Create necessary error message files. U47.9 (LOW) SUMMARY: Arrow through group items. DETAILS: Ability to arrow through group items U47.10 (LOW) SUMMARY: Implement button.setMargin method. DETAILS: The button.setMargin method exists but does nothing (no-op). U47.12 (LOW) SUMMARY: Implement the 17 component/container "add.i" host methods. DETAILS: The textfield/add.i and similar host-side methods do not work in either Reader or ReaderX. U47.16 (LOW) SUMMARY: Table method setVisibleRowCount does not work. DETAILS: table.setVisibleRowCount does not work (no error, does nothing). See demo/tables.xml which resizes the table (works in java). U47.17 (LOW) SUMMARY: Table method editNextCell is not implemented DETAILS: The table.editNextCell method is not implemented. A workaround can be done by using table.editCell with table.getSelectedRow and a constant column number as params, to emulate it. U48.1 (MEDIUM) SUMMARY: label method setIconName is not implemented DETAILS: The label.setIconName method is not implemented. This method allows the image displayed in a label to be changed dynamically at runtime. Should be implemented so it works with both local image files (directory address) and remote files (URL address). U48.2 (MEDIUM) SUMMARY: "CR" and "DR" sign symbols not implemented in edit masks. DETAILS: The "CR" and "DR" trailing symbols in an integer or decimal edit mask are being treated as constant insertion characters and will always display. They should be treated like a "-" or "()" negative value indicator. Now that table columns are honoring their edit masks when a host task populates them, any integer or decimal table columns with edit masks containing "CR" or "DR" negative symbols will always display those characters, even for positive amounts. The workaround is either (a) change the "CR"/"DR" to "-" or surrounding "()" characters (which both work), or else (b) change the data type to "character" and let the Progress host code preformat the value for now with a "CR/DR" symbol. U49.3 (LOW) SUMMARY: Implement button.setBorderPainted(boolean) method. DETAILS: Implement the button.setBorderPainted(boolean) method to allow the rectangular border around a button image to be hidden if desired. U54.1 (MEDIUM) SUMMARY: Text area and text pane ignore linewrap attribute. DETAILS: The "line wrapping" feature in text areas and text panes is only controlled by the value of the HSB Policy in ReaderX. If HSB is "NEVER" then long lines of text will line wrap. If HSB is "ALWAYS" then no line wrap will be done. This is different from Writer/Reader where the linewrap attribute controls this feature. =============================================================== REQUESTED NEW FEATURES ================================================================ N48.2 (LOW) SUMMARY: Strip HTML tags out of WebSpeed HTML error msgs DETAILS: (revised 7/31/00) When displaying host error messages that begin with "" (i.e. WebSpeed error messages), strip out any HTML tags and display text only. This will make messages a lot easier for users (and testers!) to read. N48.3 (LOW) SUMMARY: See if a "cancel" feature for host tasks could be done DETAILS: Investigate the ability to have a way to cancel a host task that appears to be hanging (server down, host program blew up). Possibly by double-clicking the host communication image, or via a new method that could be hooked up to a button by a developer? N48.4 (LOW) SUMMARY: See if a timeout parameter for host tasks could be used DETAILS: Investigate the ability to have a ReaderX startup parameter that sets the timeout value (in seconds) for host tasks to complete. N54.2 (LOW) SUMMARY: Allow developers to change the icon in ReaderX frames DETAILS: Provide a dynamic property that could be used at runtime to utilize a specified icon. This would probably be accomplished by another ReaderX startup parameter. CURRENT WORKAROUND: The icon displayed in the upper left-hand corner of ReaderX frames is bundled into JReaderX.dll just as any other Windows resource is (bitmaps, icons, string tables, etc.). There are Windows resource editors (Borland, etc.) that can edit the resources of any Windows EXE or DLL. This would allow replacing the icon or the AVI with one of your choosing. N63.1 (MEDIUM) SUMMARY: Enhance editing and error messages for tree icon image list DETAILS: Add a verification routine in ReaderX that reports any differences in image sizes or missing files for the image filenames listed in the tree root "imageList". Provide error messages such as: - "Image file(s) not found" if one or more filenames are not found - "Image sizes not consistent" if files have different pixel sizes N72.3 (MEDIUM) SUMMARY: New host method jsi/combobox/addlist.i with optional delimiter DETAILS: Add a new host method jsi/combobox/addlist.i to support an explicit delimiter character (other than the default comma delimiter) just as the corresponding listbox method (jsi/listbox/addlist.i) does. ================================================================ KNOWN LIMITATIONS VS. JAVA-BASED JARGON READER ================================================================ L47.1 SUMMARY: No text with images on buttons, menus and labels DETAILS: Buttons and labels defined with both text and an image will only display the image. We may add an HTML param to allow displaying only the text. The combined text/image feature is not planned to be implemented in ReaderX due to complexity and code size. L47.3 SUMMARY: Default font sizes not same as in Reader. DETAILS: Using the setFont method causes fonts that appear to be larger in ReaderX than in Reader, however the ReaderX fonts are the same size as those in MS-Word (etc.), so it is the java font sizes that are not correct, and that is low-level java stuff we can't fix. L49.1 SUMMARY: Color features not exactly the same as in Reader. DETAILS: Due to limitations and/or bugs in the underlying routines that Windows uses to paint its native components, some color features do not work the same as in the Java-based Reader equivalents. The limitations are listed below by component type: BUTTONS There is no way to set the FG/BG color of a button. Workaround is to use a color image instead of text (with a graphic or text or both, using desired colors, in the image file). TABPANEL There is no support for changing tabpanel color. Neither the tab background nor the tab text colors can be changed, so the tabs themselves will always have black text on a grey background, even though the panels in the tabpanel can have colors. COMBOBOX Not able to change the background of the selected item of a non- editable combobox. It will always have a white background. STATUSBAR Although it is possible to control the color of this control, it does not work right. The "pull tab" does not conform to the specified color. TEXT CLASSES For read only fields, the windows standard is to set the background of the text control to the color of its container and keep the text color the same. This is opposite of how Reader currently works. LABELS/RADIO BUTTONS/CHECKBOXES Again, the windows standard is to set the background color of these controls to their container's background color. SPINNER The disabled color painting doesn't work right. The up/down buttons will look disabled; the textfield portion will look enabled. MENUBAR The menubar colors cannot be changed. TREE The background of tree nodes is always white, so the tree only looks good if the tree background is set to white. With any other background color, the tree appears to have "white holes" around each node. L49.2 SUMMARY: Cannot disable tabs in a tabpanel. DETAILS: Due to limitations in the underlying routines that Windows uses for tabpanel controls, there is no way to disable a tab. The existing "setEnabledAt" method does not cause an error, but has no effect. A workaround is to disable the tab contents instead of the tab. L50.1 SUMMARY: Space for hidden components is pre-allocated in ReaderX. DETAILS: When components in a frame (or in a subcontainer within a frame) are hidden (visible=false), space for them is still reserved in the layout grid in ReaderX, but is not reserved in Reader. If the component is subsequently made visible, it simply "appears" in the ReaderX application, but in Reader the frame layout must be redrawn and will look different than before due to rearrangement of the components to "make room" for the now-visible component. We believe that the ReaderX approach makes more sense and do not intend to change it. L63.1 SUMMARY: Tree icon images must all have the same pixel dimensions DETAILS: The image files used in a tree (in root "imageList" property) must all have the same pixel dimensions in ReaderX, unlike in Writer/Reader where they can be different sizes. A workaround to this limitation is to pick a standard pixel size (such as 12x12 pixels) and then resize any existing images to this size. L63.2 SUMMARY: Cannot use setVisible method on menubar choices DETAILS: The setVisible method has no effect on the menubar choices or menu choices in dropdowns from the menubar. These objects cannot be hidden from view in ReaderX. _________________________________________________________________ ** end of readme file - Copyright 2005 Jargon Software Inc. **