JSuite(TM)

Java(TM) Controls

Version 7.07 - April, 2004
(C) Copyright Infragistics, Inc., 1997-2004
Infragistics, Inc., Windsor Corporate Park, 50 Millstone Road, Building 200 - Suite 150, East Windsor, NJ  08520  USA
Voice (609) 448-2000, Fax (609) 448-2017, Internet http://www.infragistics.com
 

This document contains release notes for JSuite. Information in this document is more current than the on-line Help.


Included Samples

The Samples sub-folder of your product installation folder contains various samples demonstrating the use of the product.

Problems Corrected, New Features, and Changes In This Release (7.07.000) April, 2004:
JST127 - Column Header loses font settings when Row Label width set to zero
JPVTable:setHeaderAlignment (not visible by user bug,- only wrong value of internal variable)
PVTableModel:setRowTracking (first row might be skipped)
PVTable:ROW_LABEL_CLICKED and COLUMN_HEADER_CLICKED events did not fire until table has focus cell
JST96 - Cut and paste does not work in pvEdit with Jsuite 7(AWT), and IE6 in XP
JVC 43 - Scatterchart labels always say "Series #1", "Series #2", etc.
JVC 48 - Using scatter chart, a zero in the groupby column causes the row to not be drawn.
JST 133 -JFCChart demo and relese jars have different behavior when displaying string data
 

Problems Corrected, New Features, and Changes In This Release (7.04.000) November, 2003:
JVC40 - Linechart has different thickness for segments in the same line, pretty much all line segments in the chart are of different thickness depending on angle.  The LineChartAppearance has new boolean property get/setRectangleShapes.
The value of true will enable painting wide lines as rectangles. It will lead to the equal widths of all lines, though connections between lines will not be smooth.
Example to use:
chart.getLineChart().setRectangleShapes(true);
JVC39 - Line for line chart extends off the chart when turning on RowLabels.
JST121 - Setting ColumnHeaderHeight to 0 in a PVTable also removes row labels.
JST120 - When setBorderStyle is zero and setRowLabelWidth is zero, the PVTable has no left vertical line, but does have a right line.
JST115 - When you have JPVTable editmode set to 3 if you select a cell and type into it the first character is overwritten
JST114 - Tree takes a very long time to refresh and repaint large numbers of nodes, 50,000 plus
JST112 - JPVDate and JPVDatePlus replace the wrong character when highlighting and hitting a key
JST111 - Appointments don't show in the calendar when i set the timezone on my machine to Central
JST109 - JPVCalendar does will not let you include today in a range selection if today is the upper limit
JST107 - JPVTable takes a long time to sort large datamodels
JST106 - If the first column in JPVTable uses the First column as row labels then multiple row selection with control key does not work
JST100 - JPVTree does not scroll when you drag a node to the border.

Problems Corrected, New Features, and Changes In This Release (7.0.000) March, 2003:

Now includes JFCChart and ServerChart.  PowerChart removed.

Problems Corrected, New Features, and Changes In This Release (6.1.000) October, 2002:

Now includes PowerChart Server Edition

Problems Corrected, New Features, and Changes In This Release (6.01.000) July, 2002:

All components have been tested and corrected to support JDK 1.4.

JPVCalendar/PVCalendar

New action event:
PAINT_EVENT - it is fired when calendar is painted.

JPVCalculator/PVCalculator

New action event:
PAINT_EVENT - it is fired when calculator is painted.

New property:
get/setKeepPressedOperationButton - ability to keep button that represents current/last operation in pressed state.

Fixes:
1. The methods
setText/setLong/setDouble besides change of value, reset current operation.
2. Under jdk1.4 the first-digit entered by a calculator-button does not highlight all text in entry field and next entry does not erase first digit.

JPVChart/PVChart

Fixes:
1. Properties related to colors and appearance are supported and have effect at design and run time.
2. Text of labels for vertical axis of 2D charts are moved 2 pixels away from axis which prevents overlapping axis by strings
3. Last label on horizontal axis of 2D bar-chart is not painted if its width does not fit in window.
4. Rounding problem of default java conversion "double" to string for interval labels. Java by default after calculation similar to <0.3*3 =0.9> converts 0.9 to "0.899999999996" string which looks strange as an axis label.
5. Restored ability to change colors of charts using Tool dialog of PowerPanel.
6. Some optimization of code that decreased size of some classes.

Changes:
1. Added 3 new styles of color models:
    1) - setRowColorMethod(4) - all rows in a column are painted by the same color which is defined by getColumnColorMethod
    2) - setRowColorMethod(5) - the colors of data are defined by combination of colors of row and column where data is belong
    3) - setColumnColorMethod(4) - all columns in a row are painted by the same color which is defined by getRowColorMethod

2. Support for auto adjustment of intervals when values of data are less than 10.
3. Support for editing and display data which values are less than 1.
4. Edit field is not moved while editing data.
5. Edit mode is closed on mouse click and on focus lost events.
6. Edit field is not blinking while editing.

JPVColor/PVColor

Changes:
1. The ability to get focus by the memory field in drop-down calculator by default has been disabled.
2. Drop-down calculator is closed when Tab key is pressed.
3. If color is never initialized or set to null, then background color of container is used to paint component instead of the first color at the current palette.

Fixes:
1. If color was never initialized, then now it is not automatically set to the first color of the first palette.
2. If color in drop-down palette was modified and
PVColor had that color as the selected color and that new color was selected again, then now PVColor is updated by that new color.
3. Alignment of text when the size of image is set to 0 or when a custom image with large width is set.

New method:
setEditableEvents - allows to specify events that will open palette-editor-dialog: the character (it used to be Space-key) and right-mouse-click (it used to be true).

JPVChoice/PVChoice, JPVDatePlus/PVDatePlus, JPVNumericPlus/PVNumericPlus, JPVColor/PVColor

New feature:
FocusListener can be used to process composite focus events. Focus events are not fired when focus is switched from edit field to drop-down list.

New method:
checkFocus() - returns a flag that represents state/location of input focus.

Fixes:
1. Problems related to jdk1.4.
2. Browser does not raise exception, when it is closed while drop-down list is opened.

PVColorChooser

Fix:
The
DONE and CANCEL action events are fired when Enter/Escape keys are pressed regardless where focus is.

JPVDatePlus

Change:
The dialog for drop-down calendar by default is constructed as modeless, because some implementations of Java VM fail to create a modal dialog.

New public member variables:
1.
boolean m_modal - allows to create modal dialog for drop-down calendar instead of default modeless.
2.
String m_title - allows to specify title of dialog for drop-down calendar

JPVDay/PVDay

Fixes:
1. The ability to edit appointment in-line under Linux
2. The ability to edit appointment by-dialog under Linux.

New action events:
1.
FOCUS_APPOINTMENT - it is fired when index of focus appointment had changed
2.
SHOW_CUSTOM_DIALOG - it is fired when custom dialog to edit an appointment is requested
 

New property:
get/setCustomEditDialog(boolean) - use custom dialog to edit appointments instead of default.

JPVEdit/PVEdit

New method:
setFocusTraversable(boolean) - disable default ability to receive focus.

Fixes for pv.awt.PVEdit:
1. The caret thread misbehavior under Linux.
2. The caret thread exceptions in Netscape under Linux.

PVExplorer

1. PVExplorer does not keep old selection in table when selected node is changed.
2. If sorting in table was set, then data in PVExplorer is automatically sorted while navigating between nodes.

JPVNumericPlus/PVNumericPlus

Change:
The default value of
m_modal member variable has been changed from true to false, because some implementations of Java VM fail to create a modal dialog.

Fix:
When drop-down calculator is opened, then its previous operation is cleared.

JPVRoundButton

Fix:
Foreground with default constructor is set to black color.

JPVScrollBar/PVScrollBar

Fix:
The mouse drag of the thumb under Linux used to fail.

PVTab

New feature:
Custom background of a tab (implemented after a customer's request)

JPVTable

Fixes:
1. The
indexAt method for the first column when table is scrolled to the left is fixed.
2. Mouse click on locked columns other than row-labels, when table is scrolled to the left, does not scroll table to the right.
3. Mouse drag that sets block selection, when table is scrolled to the left, may set selection for locked columns as well as for all other columns.
4. Not painted area at the bottom of table on initial paint when row height is set to the value larger than default and table has only a few rows.

PVTable

Fixes:
1. The
setComponent method of PVCell class had no effect, when it was applied alone without modification of any other property of PVCell.
2. Scroll by mouse drag while selecting cells or rows.
3. If PVTable does not have a selected row, then mouse-click on column headers does not automatically select the first row.

JPVWeek/PVWeek

Fix:
The only single focus appointment may exist among all days in
PVWeek.

New method:
getFocusAppointment - get reference to the focus appointment.

Classes for JavaScript (pv.script package)

Notes for JavaScript and compatibility with plug-in from jdk1.4:

PVScript:
1. The
toStr(Date) method has been renamed to toStringFromDate(Date)
2. The
toStr(Date,Format) method has been renamed to toStringFromDate2(Date,Format)
3. The
toStr(Vector,char,char) method has been renamed to toStringFromVector(Vector,char,char)
4. The
toStr(Vector,String,char,char) method has been renamed to toStringFromVector2(Vector,String,char,char)
5. The
toDate(String,String) method has been renamed to toDate2(String,String)
6. The
toVector(String,Object,String,char,char) method has been renamed to toVector2(String,Object,String,char,char)
7. The
setBackground(String) method has been renamed to setBackgroundFromString(String)
8. The
setForeground(String) method has been renamed to setForegroundFromString(String)
9. The
setFont(String) method has been renamed to setFontFromString(String)
10. The
setLocale(String) method has been renamed to setLocaleFromString(String)
11. New method:
void setImage(String) 
12. New method:
void setBool(Object,String,int) 
13. New method:
void setFontToObject(Object,String,String) 
14. New method:
Object getObjectFromName(String) 

PVScriptChoice:
1. New method:
Component getButtonObject()
2. New method:
Component getEditor()

PVScriptSpin:
1. New method:
PVButton getButton1()
2. New method:
PVButton getButton2()

PVScriptChart:
1. New method:
int getType()
2. New method:
PVDataModel getModel()

PVScriptTree:
1. New method:
PVNode getRootNode()
2. New method:
PVNode getChildAt(PVNode,int)
3. New method:
PVNode addNode(PVNode,int,String,int,int)

PVScriptColor:
1. The
addTarget(Object, String) method has been removed.
2. New applet-parameter
imageAlignment has been added.

PVScriptTimer:
1. The
addTarget(Object, String, Object) method has been removed.
2. New method:
void setFiring(int)
3. New method:
boolean isFiring()

PVScriptTable:
1. New method:
void setFiring(int)
2. New method:
int getFocusRowIndex()
3. New method:
int getFocusColumnIndex()
4. New method:
char getCellSeparator()
5. New method:
char getRowSeparator()
5. New method:
PVRow getRow(int)
5. New method:
PVColumn getColumn(int)
5. New method:
PVCell getCell(int,int)
3. New method:
Vector getData()
3. New method:
int insertData(String,int)
3. New method:
PVDataModel getDataModel()

Changes in Customizers

Components from pv.jfcx:
1. Background color is changed from
Color.lightGray to a lighter gray color which matches with Metal LookAndFeel background.
2. Background is painted explicitly, because some visual tools fail to paint it.
3. Background of the "Update" buttons are not specified (default is used).

Components from pv.awt:
1. Background color is not set.
2. Background is painted explicitly using background of container.
3. Background of the "Update" buttons are not specified (default is used).
4. Events from checkboxes are not processed (JBuilder7 does not allow to
addItemListener to java.awt.Checkbox).

Documentation for some classes

Inserted the <code> tags in html docs where the methods, class-fields and samples of codes are referenced.

Samples

Changes:
1. Sample DemoTable3 that shows how to use JPVChoice as cell editor for JPVTable has been modified.
2. Sample DemoTab shows how to customize background of a tab.
3. Sample DemoSpin has more labels that explain what every components do.
4. Samples DemoNumP and DemoDateP are modified to fit with new default value for modal state of drop-down dialogs.
5. Sample DemoDay1 outputs additional
FOCUS_APPOINTMENT action event.
6. Sample DemoTree2 for
pv.jfcx shows how to add nodes at run time.
7. New sample DemoDay4 shows how to use custom dialog to edit appointments.
8. All samples for JavaScript such as DemoScriptActs, DemoScriptDate, etc. have been modified to accommodate changes in the
pv.script package and to solve problems related to the plug-in object.

 

Problems Corrected, New Features, and Changes In This Release (6.00.000) November, 2001:

JSuite now contains Swing classes and AWT classes.

JSuite includes 4 sets of component libraries located in following packages:

  1. pv.awt - can be used with any Java VM starting from jdk1.1 (base class is Component or Container)
  2. pv.awt10 - can be used with any Java VM starting from jdk1.04 (base class is Canvas or Panel)
  3. pv.jfcx - designed for swing and can be used with any Java VM starting from jdk1.1.8 (base class is javax.swing.JComponent)
  4. pv.jfc - designed for "old" swing libraries such as swingall.jar and can be used with any Java VM starting from jdk1.1.4 (base class is com.sun.java.swing.JComponent)

New Components

pv.jfcx.JPVScrollBar/pv.awt.PVScrollBar

pv.jfcx.JPVGantt

pv.jfcx.JPVWeek/pv.awt.PVWeek

pv.util.PVBar

pv.util.PVModel

New Server Components

ACL

The Access Control List component is used to give various roles to users of a system where each role consists of a set of one or more attributes. A client can use the ACL component by finding the user name and the corresponding role and check before any functionality is used that the client has the proper level of authority. A client can further check whether a role has the required attributes.

ConnectionPool

The Connection Pooling component maintains a specified pool of connections at start up.

Whenever a client makes a call to get connection, if a connection is available then the connection is returned. If a connection is not available and the maximum connections are already in use the component will keep trying until the specified time out is reached. If the maximum connections are not in use then a new connection will be created and added to the pool and returned. The main advantage of using this connection pool is that a client does not have to explicitly write any time dependant code to wait until a connection is available. Instead a client just sets the time a client should wait for the pool to return a connection. As soon as the connection is available the pool returns the connection or if the timeout set is over it throws an exception.

Password

The Password component implements an authentication mechanism to validate User Id and Password against a directory server or database. It facilitates the ability to add a new user profile or manage existing user profiles. Features include:

 

Changes To Components

pv.jfcx.JPVButton/pv.awt.PVButton

pv.jfcx.JPVImageButton/pv.awt.PVImageButton

pv.jfcx.JPVRoundButton/pv.awt.PVRoundButton

pv.jfcx.JPVCalculator/pv.awt.PVCalculator

pv.jfcx.JPVCalendar/pv.awt.PVCalendar

pv.jfcx.JPVChoice/pv.awt.PVChoice/pv.awt.PVCombo

pv.jfcx.JPVDay/pv.awt.PVDay

pv.jfcx.JPVEdit

pv.jfcx.JPVSpin/pv.awt.PVSpin

pv.awt.PVTable

pv.awt.PVTree

pv.jfcx.JPVTree

pv.util.PVBorder

pv.util.PVImage

pv.util.PVUtility

pv.shape package

 

Problems Corrected, New Features, and Changes In This Release (5.01.000) May, 2001:

JPVCalendar

JPVChoice

JPVDate

JPVDateLong/JPVDateLongPlus

JPVDatePlus

JPVDay

JPVCurrency

JPVNumeric

JPVMask

JPVTime

JPVTable

CalDay

Problems Corrected, New Features, and Changes In (5.00.000) February, 2001:

Additional Old JDK 1.1 Classes Folder: The old jdk 1.1 and JFC 1.0.3 versions of our classes have been separated out as an overlay to the other JFCSuite files. Most people will want the new JDK 1.2 or 1.3 JFC classes.

List of new components

Changes for all components:

If you had JFCSuite before (and use visual design tools)

Locations of some beans in JFCSuite version-5 have been changed compare to version-4. Some shared classes have also were modified. Therefore, before updating or importing new beans, you should remove from a visual tool all previously installed beans that came from old versions of JFCSuite.

Changes in location of beans:

JPVNumeric

JPVImageButton

JPVCalendar

JPVEdit

JPVTable

JPVTree

JPVChoice

JPVSpinPlus

Power Chart V2.0  ActiveImages(tm)

Power Chart V2.0 New chart types (new feature chart scaling and data normalization)

PowerChart Major Bug Fixes

Problems Corrected, New Features, and Changes in  (4.01.000) January, 2001:

All components:
- Validation for parent while painting shadow. It allows to use paint routine of a component without adding it to a container.
- Majority of components from pv.awt package have new property get/setDoubleBuffered. If the creation of the off-screen image for any reason failed, then painting is performed straight on the graphics.
Customizers for all components
- All nested classes had been removed.
- The Update button - to notify visual tool (listeners) about modified properties. The PropertyChangeListener is suspended until that button is pressed.
Some individual jar-beans have been replaced by sets of beans:
- pvxButtons.jar = pvxButt.jar + pvxImBut.jar + pvxRound.jar
- pvxEdits.jar = pvxEdit.jar + pvxCurr.jar + pvxNum.jar + pvxMask.jar + pcxTime.jar + pvxPass.jar + pvxStatic.jar
- pvxDates.jar = pvxDate.jar + pvxDateL.jar + pvxDateP.jar + pvxDateLP.jar + pvxCal.jar + pvxCalP.jar + pvxDay.jar
JPVCurrency/JPVNumeric
- New properties:
    get/set1000Multiplier(anyCharacter)
    get/set1000000Multiplier(anyCharacter)
JPVCurrency
- Bug fix:
    setDouble(double) - it incremented last decimal digit by 1 (accidental bug in JFCSuite3.00 only)
JPVButton
- New properties:
    get/setActionCommand - command string for ActionEvent
- New features:
    Support for "opaque-off" - transparent painting
    addGlobalKey(int) - set a key that triggers action event if it is pressed while focus belongs to any component in an application-window. It allows to configure button as "Default/OK", "Cancel", etc. styles.
JPVCalendar
- Changes:
    The custom strings are aligned to the bottom of day-cells.
    Implementation of the getMinimumSize has been removed.
JPVCalendarPlus
- Change:
    The default value of the get/setAutoAddCustomDate has been changed from false to true.
JPVEdit
- New features:
    Support for "opaque-off" - transparent painting
    Support for underlined text: setFontStyle(UNDERLINE)
JPVTable
- Change:
    PVTableModel::get/setAutoColumnClass - the default value of 2 has been replaced by 1. It disables searching for the first not-null value of a cell in a column while implementing the getColumnClass method. It would slow down painting if table contains too many rows with null cells. The used-to-be value can be adjusted by the ((pv.jfcx.PVTableModel)pvTableView1.getModel()).setAutoColumnClass(2);
    PVTableRenderer
- extends JLabel instead of Object. That gives ability to customize painting by extending. Private nested paint-classes had been removed.
- Bug fix:
    setEditable(false) - it was accidently disabled in JFCSuite3.00.
    Checkbox still could be edited by mouse if a cell should be not editable.
    In some cases while the passive edit mode the JPVEdit could accept the BackSpace and Delete keys as characters.
    Support for active edit mode for COMBO editors (enable up/down arrows, key-selection, etc.)
    Processing Escape and Enter keys for COMBO in active edit mode.
    Support to start editing from code for checkboxes.
    Additional validation of focus row and column inside of paint routine,- to avoid possible timing conflicts between JTable and its selection models.
- New properties:
    get/setEditMode - 5 styles to start editing
    PVTableRenderer::get/setNullCheckbox - do not paint checkbox image for null cells
    PVTableRenderer::get/setLine - draw additional line under/over/above text
- New features (pv.jfcx.JPVTable only):
    New sort images in column headers:
        normal, small and tiny triangles for primary, secondary and tertiary sort priorities
    get/setPVUI - enable private nested UI that implements locked columns and merged cells.  It also fixes gradually depleting painting while scrolling of the default JTable.
    get/setLockedColumns(count) - disable scrolling the first-count columns.
    Any column can be dragged to the left and automatically become locked.
    Table is validated and scrolled if the focus cell is moved by arrows to the left and become hidden under locked columns.
    Column headers are synchronized with cells of table.
    Dragging/resizing locked columns by mouse is disabled if table is scrolled to left.
    For printing the default painting is used.
    automatic locking the 1st column if row labels are enabled.
    get/setMultiline - 5 styles to draw multilined column headers (including vertical text)
MERGED CELLS
    m_cells - public vector of merged cells (serializable)
    addCell(topRow, bottomRow, leftColumn, rightColumn) - add the merged cell
   removeCell(row, column) - unmerge the merged cell that contains row and column
    resetCells - remove all merged cells
    inside(Insets cell, int row, int col) - check if merged cell contains row and column
    cellAt(row, column) - find the merged cell that contains row and column
    mergeColumn(col) - merge cells with same values in a column
    mergeColumn(col, row1, row2) - merge cells with same values in a column in range of rows
    setMergeOnSort(style) - automatically merge cells in column(s) after sort
        0 - do not modify merged cells on sort.
        1 - merge cells only in the primary sort column.
        2 - merge cells in all sorted columns keeping sort priority.
    get/setMergeMovement - synchronize (rebuild) merged cells if column is moved (dragged by mouse)
    drawCells/drawCell/drawHeads/drawHead - ability to override painting cells and headers: customize CELL PAINTING BYPASSING any SWING paint routine.
- Improvements:
    Better control over dragging columns to locations which are not allowed.
    No movements (even partial) of "static" columns. No overlapping (even partial) of columns that could not be exchanged.
JPVTableView
- New properties:
    get/setSortingCaseOn - option to sort column ignoring case while auto sorting (column header click)
    get/setSortingNulls - option to move rows with null values of cells at the end after sorting
JPVTree
- Bug fix:
    Custom plus and minus images were swapped
- New property:
    m_image - background image (Icon or Image) available only when setOpaque(false)
- New features:
    Support for "opaque-off" - transparent painting (pv.jfcx only)
    Support for check-box and radio-button images for nodes. It includes automatic LookAndFeel images, ability to disable editing of the "button-state" and customize painting.
JPVDay
- Changes:
    The appointment editor JTextArea is replaced by the JTextField.
    Implementation of the getMinimumSize has been removed
- New feature:
    Support for "opaque-off" - transparent painting
JPVDatePlus/JPVDateLongPlus
- New property:
    get/setDialog - open drop-down calendar in dialog/window.
- Change:
    If the "Warning..." browser-label appears at the bottom of the drop-down calendar, then height of the calendar-window is increased by the height of that label.
JPVDate/JPVCalendar/JPVTime
- New property:
    get/setCalendar - support for instances of the Calendar class.
- Bug fix:
    Initialization of component to the current date for Western US and other time zones - the new GregorianCalendar() is used instead of new Date().
JPVChoice
New Component
JPVTime
- Improvement:
    Validation logic of date fields while keyboard entering has been modified: an invalid entry for a field automatically becomes an entry for the next field. For example, continues typing of "277a" will build following string: "2:7:7 AM".
Chart
- New set of classes for visual representation of data.
    Flat and 3D styles.
    Column, area, surface, line, pie, candle, stock, etc. styles.
    Power panel to edit properties of a chart at run time.
JPVImage
- New class.
    Save image of a component as a jpg file or write that image to a stream.