blob: d2d9b610066494640e467d99bd5228bb581e5835 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#VERSION 1.0.1
1. Jemmy versioning has been started.
Current major version - 1.0
Current minor version - 1
Version can be received:
- By manifest file using:
META-INF/MANIFEST.MF file contains information like:
Jemmy-MajorVersion: 1.0
Jemmy-MinorVersion: 1
Jemmy-Build: 010323
- By static method within java:
public static String getMajorVersion();
public static String getMinorVersion();
public static String getBuild();
public static String getVersion();
- By java "-jar" option:
bash-2.03$ java -jar jemmy.jar
Jemmy version : 1.0.1-010326
2. Robot operations are now produced safely.
Earlier dangerous mouse clicks on system gui application were possible
as a result of incorrect test.
Now NoComponentUnderMouseException exception is produced, if mouse is going to be pressed,
but no java component is under the mouse.
3. Some changes in org.netbeans.jemmy.testing package for stability.
#VERSION 1.0.2
Two errors were checked:
jemmy/com/sun/jemmy/Timeouts.java
Sleeping methods did not work if timeout had only default value
and was not defined in this Timeouts instance.
jemmy/com/sun/jemmy/operators/ComponentOperator.java
Component should use visible part center coordinates
(instead off the whole component coordinates)
for a mouse operation, if no coordinates were passed.
Functionality to work with JTable component.
New methods in org.netbeans.jemmy.operators.JTableOperator class.
isEditing()
isRowSelected(int)
isColumnSelected(int)
isCellSelected(int, int)
getEditingRow()
getEditingColumn()
getModel()
getValueAt(int, int)
getPointToClick(int, int)
clickOnCell(int, int, int)
clickOnCell(int, int)
findCellRow(String, boolean, boolean, int)
findCellColumn(String, boolean, boolean, int)
findCellRow(String, boolean, boolean)
findCellColumn(String, boolean, boolean)
clickForEdit(int, int)
changeCellText(int, int, String)
Text components operators (JTextComponentOperator, JTextAreaOperator,
JTextFieldOperator, JEditorPaneOperator) were modified.
Caret operations were optimized by using all possible navigation keys.
Some different approaches to clear text in text component were implemented.
Minor version was changed to 2.
#VERSION 1.0.3
4433709 bugfix
enterText(String) methods have been implemented in JTextComponentOperator
and JComboBoxOperator. It clears text, types new text, and pushes "Enter".
New operator - JComponentOperator.
In contains methods to find and wait component by its tool tip,
and some other useful methods.
Some classes were reparented to JComponentOperator.
jemmy/com/sun/jemmy/operators/AbstractButtonOperator.java
jemmy/com/sun/jemmy/operators/JLabelOperator.java
jemmy/com/sun/jemmy/operators/JComboBoxOperator.java
jemmy/com/sun/jemmy/operators/JListOperator.java
jemmy/com/sun/jemmy/operators/JTextComponentOperator.java
jemmy/com/sun/jemmy/operators/WindowOperator.java
jemmy/com/sun/jemmy/operators/JMenuBarOperator.java
jemmy/com/sun/jemmy/operators/JTableOperator.java
jemmy/com/sun/jemmy/operators/JPopupMenuOperator.java
jemmy/com/sun/jemmy/operators/JTabbedPaneOperator.java
jemmy/com/sun/jemmy/operators/JScrollPaneOperator.java
jemmy/com/sun/jemmy/operators/JSplitPaneOperator.java
jemmy/com/sun/jemmy/operators/JScrollBarOperator.java
jemmy/com/sun/jemmy/operators/JSliderOperator.java
jemmy/com/sun/jemmy/operators/JInternalFrameOperator.java
Javadoc comments.
jemmy/com/sun/jemmy/Action.java
jemmy/com/sun/jemmy/TestOut.java
jemmy/com/sun/jemmy/ActionProducer.java
jemmy/com/sun/jemmy/ComponentChooser.java
jemmy/com/sun/jemmy/DialogWaiter.java
jemmy/com/sun/jemmy/ComponentSearcher.java
jemmy/com/sun/jemmy/JemmyProperties.java
jemmy/com/sun/jemmy/FrameWaiter.java
jemmy/com/sun/jemmy/EventDispatcher.java
jemmy/com/sun/jemmy/Waiter.java
jemmy/com/sun/jemmy/WindowWaiter.java
jemmy/com/sun/jemmy/Test.java
jemmy/com/sun/jemmy/Scenario.java
jemmy/com/sun/jemmy/operators/AbstractButtonOperator.java
jemmy/com/sun/jemmy/operators/ComponentOperator.java
jemmy/com/sun/jemmy/operators/JButtonOperator.java
jemmy/com/sun/jemmy/operators/JCheckBoxOperator.java
jemmy/com/sun/jemmy/operators/JComboBoxOperator.java
jemmy/com/sun/jemmy/operators/JLabelOperator.java
jemmy/com/sun/jemmy/operators/JListOperator.java
jemmy/com/sun/jemmy/operators/JRadioButtonOperator.java
jemmy/com/sun/jemmy/operators/JTextAreaOperator.java
jemmy/com/sun/jemmy/operators/JTextComponentOperator.java
jemmy/com/sun/jemmy/operators/JTextFieldOperator.java
jemmy/com/sun/jemmy/operators/JToggleButtonOperator.java
jemmy/com/sun/jemmy/operators/WindowOperator.java
jemmy/com/sun/jemmy/operators/JMenuBarOperator.java
jemmy/com/sun/jemmy/operators/JMenuOperator.java
jemmy/com/sun/jemmy/operators/JPopupMenuOperator.java
jemmy/com/sun/jemmy/operators/JMenuItemOperator.java
jemmy/com/sun/jemmy/operators/JTreeOperator.java
jemmy/com/sun/jemmy/operators/JDialogOperator.java
jemmy/com/sun/jemmy/operators/JFrameOperator.java
jemmy/com/sun/jemmy/operators/JTabbedPaneOperator.java
jemmy/com/sun/jemmy/operators/JEditorPaneOperator.java
jemmy/com/sun/jemmy/operators/ContainerOperator.java
jemmy/com/sun/jemmy/operators/JInternalFrameOperator.java
jemmy/com/sun/jemmy/operators/JComponentOperator.java
jemmy/com/sun/jemmy/operators/ComponentOperator.java
One error was checked: in event dispatching mode moveMouse(int, int) method did exitMouse().
jemmy/com/sun/jemmy/operators/JMenuOperator.java
findJMenu(*) and waitJMenu(*) methods.
isPopupMenuVisible() method
getPopupMenu() method.
jemmy/com/sun/jemmy/operators/JMenuItemOperator.java
Using Container instead of JPopupMenu in static findJMenuItem and waitJMenuItem method
since MenuItem also can be on JMenuBar.
jemmy/com/sun/jemmy/operators/JTreeOperator.java
One error was checked: isEditable() method returned value of isEditing().
update: jemmy/com/sun/jemmy/operators/JScrollPaneOperator.java
setValues(int, int) method.
update: jemmy/com/sun/jemmy/operators/JScrollBarOperator.java
setValue(int) method.
Minor version was changed to 3.
#VERSION 1.0.4
New implementation of methods to wait event queue empty
One new class QueueTool.
There are two methods:
QueueTool.waitEmpty() - waits EventQueue to be empty.
QueueTool.waitEmpty(long emptyTime) - waits EventQueue to stay empty
for "emptyTime" milliseconds.
Existing static EventDispatcher.waitQueueEmpty methods use
QueueTool class. New implementation is more correct, and tests should
be more stable even if they use one of these two methods.
EventDispatcher has two new methods:
EventDispatcher.waitQueueEmpty(long emptyTime);
EventDispatcher.waitQueueEmpty(long emptyTime, TestOut output, Timeouts timeouts);
jemmy/com/sun/jemmy/operators/ComponentOperator.java
clickMouse should move mouse first both for robot and nonrobot modes.
Minor version has been changed to 4
#VERSION 1.0.5
4478876 and 4464081 bugfixes
4482908 bugfix
4464101 bugfix.
jemmy/com/sun/jemmy/operators/JComboBoxOperator.java
Combo button have not to be pushed if popup is already visible.
jemmy/com/sun/jemmy/operators/JListOperator.java
jemmy/com/sun/jemmy/operators/JTableOperator.java
jemmy/com/sun/jemmy/operators/JTreeOperator.java
Changes to work with components covered by renderer and editor.
jemmy/com/sun/jemmy/operators/ContainerOperator.java
getComponentAt(int, int) method
Component visualizer.
Interface and three default implementation allow to define own/on of implemented
algorithm to prepare component to "user" input.
Interface:
org.netbeans.jemmy.ComponentOperator.ComponentVisualizer
Default implementations:
jemmy/com/sun/jemmy/util/EmptyVisualizer.java - do not do anything.
jemmy/com/sun/jemmy/util/DefaultVisualizer.java
- activates window by toFront() and window event
- scrolls to the component
- switches tabs
- activates internal frames
jemmy/com/sun/jemmy/util/MouseVisualizer.java - just like DefaultVisualizer,
except uses robot operation to activate window (click on window (0,0) point)
makeComponentVisible method in ComponentOperator replaces activateWindow
(last has been made deprecated (still works)).
ComponentOperator.copyEnvironment(ComponentOperator) method.
Copies everithing: timeouts, output, disp. model, visualizer.
JMenuItemOperator shouldn't activate window before push.
JemmyProperties.getProperty and JemmyProperties.setProperty methods
was made public to allow other classes keep their static part.
EventDispatcher class can now be used to provide mouse robot operations
outside any component. It does not throw exception if value defined by
method checkComponentUnderMouse(boolean) is false.
WindowOperator.getFocusOwner() method.
Can be used to define if window is really activated.
JScrollPaneOperator.checkInside methods.
Author tag was modified.
Alexander Ilyin shura@nbsp.nsk.su => Alexandre Iline alexandre.iline@sun.com
"Old" jemmy version was removed.
jemmy/com/sun/jemmy/operators/ComponentOperator.java
Two new methods: isVisible and isShowing
Javadoc comments regarding 4463363 bug.
jemmy/com/sun/jemmy/operators/JDialogOperator.java
getTopModalDialog method (4469838 bugfix)
jemmy/com/sun/jemmy/operators/JTabbedPaneOperator.java
Javadoc comments regarding 4463363 bug.
jemmy/com/sun/jemmy/util/DefaultVisualizer.java
Visualizer can now check that component isn't under modal dialog.
(4469838 bugfix)
#VERSION 1.0.6
EventTool class
Class has functionality to work with events
received by AWTEventListener, which was added by
Toolkit.addAWTEventListener(AWTEventListener, long)
method.
It can also be used for test reliability instead of
QueueTool class.
If tested application do something through EventQueue
what does not change GUI components state, test developer
can wait that no events are posted instead of wait
EventQueue empty.
EventTool class has a bunch of methods to do this.
#VERSION 1.0.7
One more operator:
JFileChooserOperator
Six more targets were added into main Makefile
to build zip and jar archives.
Now the full list of targets is:
jar - builds jar with classes.
jarsrc - adds sources into jar
jarapi - adds javadoc
jarall - adds both javadoc and sources
zip - builds zip with classes.
zipsrc - adds sources into zip
zipapi - adds javadoc
zipall - adds both javadoc and sources
ComponentOperator:
One error has been fixed for the robot mode.
#VERSION 1.0.8
Steps 2 and 4 from Jemmy updating plan.
2. Operator class.
Common ancestor for all operator classes.
Contain all functionality to work with operator environment.
Class has method:
public static Operator getEnvironmentOperator();
which returns
4. Operator constructors.
New operator be created by typical
<component>Operator(ContainerOperator container, int index)
<component>Operator(ContainerOperator container, String text, int index)
has all container's enironment (not just timeouts and output as was before)
Changes in window operators constructors
<window>Operator(WindowOperator owner, int index)
<window>Operator(WindowOperator owner, String title, int index)
are the same.
If component does not have a container(owner),
operator has one more constructor with operator to get environment from:
JDialogOperator(String title, int index, Operator envOperator)
JPopupMenu(Operator envOperator)
These operators have constructors without this parameter as well:
JDialogOperator(String title, int index)
In this case operator returned by getEnvironmentOperator() is used.
ComponentOperator.StringComparator interface.
Defines how to compare two strings.
Default implementation (ComponentOperator.DefaultStringComparator)
uses a way was used before by
isCaptionEqual(String, String, boolean, boolean) method.
Each operator class has it's own StringComparator.
It is used in another operator constructor (during component waiting),
if an operator plays a role of container/owner/environment.
It is also used in new operators' methods like
public int JListOperator.findItemIndex(String item, int index);
NoBlocking methods.
AbstractButtonOperator.pushNoBlock()
AbstractButtonOperator.changeSelectionNoBlock(boolean)
JMenuOperator.pushMenuNoBlock(ComponentChooser[] choosers)
JMenuOperator.pushMenuNoBlock(String[] names, boolean ce, boolean ccs)
JMenuOperator.pushMenuNoBlock(String[] names)
JMenuOperator.pushMenuNoBlock(String path, String delim, boolean ce, boolean ccs)
JMenuOperator.pushMenuNoBlock(String path, String delim)
JPopupMenuOperator.pushMenuNoBlock(ComponentChooser[] choosers)
JPopupMenuOperator.pushMenuNoBlock(String[] names, boolean ce, boolean ccs)
JPopupMenuOperator.pushMenuNoBlock(String[] names)
JPopupMenuOperator.pushMenuNoBlock(String path, String delim, boolean ce, boolean ccs)
JPopupMenuOperator.pushMenuNoBlock(String path, String delim)
JMenuOperator.pushMenuNoBlock(ComponentChooser[] choosers)
JMenuOperator.pushMenuNoBlock(String[] names, boolean ce, boolean ccs)
JMenuOperator.pushMenuNoBlock(String[] names)
JMenuOperator.pushMenuNoBlock(String path, String delim, boolean ce, boolean ccs)
JMenuOperator.pushMenuNoBlock(String path, String delim)
4512814 rfe
JTreeOperator.getChildCount(Object)
JTreeOperator.getChildCount(TreePath)
JTreeOperator.getChild(Object, int)
JTreeOperator.getChildren(Object)
JTreeOperator.getChildPath(TreePath, int)
JTreeOperator.getChildPaths(TreePath)
#VERSION 1.0.9
jemmy/com/sun/jemmy/util/MouseVisualizer.java
Should activate window by toFront() before click on corner.
jemmy/com/sun/jemmy/operators/JListOperator.java
Throw exception if item does not exist.
methods selectItem(String, ...) should throw an exception
if item is not found.
jemmy/com/sun/jemmy/Timeout.java
Do not sleep if time equals to 0
Thread.sleep(0) can take up to 10 milliseconds.
jemmy/com/sun/jemmy/explorer/ComponentBrowser.java
Shows implemented interfaces.
There is one more page containing interface implemented
by component class.
jemmy/com/sun/jemmy/ActionProducer.java
run() and actionProduced(Object) are final.
jemmy/com/sun/jemmy/EventDispatcher.java
4607042 bugfix.
Javadoc has been updated.
Most files has been affected by this change.
#VERSION 1.0.10
Javadoc has been updated (Allan Jacobs).
getDump() method has been fixed in some classes:
jemmy/com/sun/jemmy/operators/JComboBoxOperator.java
jemmy/com/sun/jemmy/operators/JLabelOperator.java
jemmy/com/sun/jemmy/operators/JMenuOperator.java
jemmy/com/sun/jemmy/operators/JTabbedPaneOperator.java
Right way to pass no parameters into the application.
jemmy/com/sun/jemmy/ClassReference.java
One more method: selectItem(String) in
jemmy/com/sun/jemmy/operators/JComboBoxOperator.java
#VERSION 1.0.11
4637840 bugfix
Ability to work with javax.swing.text.StyledDocument:
New interface:
org.netbeans.jemmy.operators.JTextComponentOperator.TextChooser -
defines text searching criteria
New methods:
org.netbeans.jemmy.operators.JTextComponentOperator.getPositionByText(String, TextChooser, int),
org.netbeans.jemmy.operators.JTextComponentOperator.getPositionByText(String, TextChooser) -
searches position by text and criteria defined by TextChooser
org.netbeans.jemmy.operators.JTextComponentOperator.getDisplayedText() -
gives text which is actually displayed.
New classes:
org.netbeans.jemmy.operators.JTextPaneOperator -
operator for javax.swing.JTextPane component
jemmy.org.netbeans.jemmy.util.AbstractTextStyleChooser -
abstract org.netbeans.jemmy.operators.JTextComponentOperator.TextChooser
simplifying working with StyledDocument
jemmy.org.netbeans.jemmy.util.TextStyleChooser
implementation containing most tipical criteria.
Other new operators:
org.netbeans.jemmy.operators.JCheckBoxMenuItemOperator
org.netbeans.jemmy.operators.JColorChooserOperator
org.netbeans.jemmy.operators.JPasswordFieldOperator
org.netbeans.jemmy.operators.JProgressBarOperator
org.netbeans.jemmy.operators.JRadioButtonMenuItemOperator
#VERSION 1.0.12
Solution to work with dynamic popups loading.
JPopupMenuOperator:
One more constructor, methods to wait popup by a chooser and menu item text.
21187 issue fix
Workaround for Gnome window activization.
Do this before any operators creation:
ComponentOperator.setDefaultComponentVisualizer(new MouseVisualizer(MouseVisualizer.TOP, 0.5, 10, false));
Some wait methods which could be used for test synchronization.
Root one:
Operator.waitState(ComponentChooser)
Timeout value to wait the state defined by ComponentChooser parameter
is defined by ComponentOperator.WaitStateTimeout timeout.
Next some invoke waitState methods:
AbstractButtonOperator.waitText(String)
DialogOperator.waitTitle(String)
FrameOperator.waitTitle(String)
JComboBoxOperator.waitItemSelected(int)
JComboBoxOperator.waitItemSelected(String)
JLabelOperator.waitText(String)
JListOperator.waitItemSelection(int, boolean)
JListOperator.waitItem(String, int)
JTableOperator.waitCell(String, int, int)
JTextComponentOperator.waitText(String, int)
JTextComponentOperator.waitText(String)
JTextComponentOperator.waitCaretPosition(int)
JTreeOperator.waitExpanded(TreePath)
JTreeOperator.waitCollapsed(TreePath)
JTreeOperator.waitVisible(TreePath)
JTreeOperator.waitSelected(TreePath[])
JTreeOperator.waitSelected(TreePath)
JTreeOperator.waitRow(String, int)
Post-operation verifications.
If verification mode is on (Operator.getVerification() == true),
post-verification is performed for some particular operations:
text typing (JTextComponentOperator), combobox item selecting (JComboBoxOperator),
tree path selecting (JTreeOperator).
Methods to work with verification mode:
static Operator.getDefaultVerification()
static Operator.setDefaultVerification(boolean)
Operator.getVerification()
Operator.setVerification(boolean)
Safety feature.
Text component clearing now works through ActionProducer.
21668 issue fix.
#VERSION 1.0.13
21846, 21769, 21771 and 21872 fixes
#VERSION 2.0.beta
#VERSION 2.0.gamma
Focus, Window, Menu drivers.
Correct way to install input drivers depending on mode.
One more method in TreeDriver - startEditing.
All method containing two boolean parameters
(compare exactly, compare case sensitively) have been made deprecated.
22726, 22953 fixes
#VERSION 2.0.1
23663 DefaultJMenuDriver.java
Subpopup is now searched by regular window/component searching -
not by JMenu.getPopupMenu().
JMenuBarOperator.java
makeComponentVisible() before menu pushing
25020 ComponentOperator.java
getWindow() method modified as proposed in bug description.
25319 JComboBoxOperator.java
If no item selected, JComboBoxByItemFinder returns true.
25134 JListOperator.java
NoSuchItemException is thrown for nonexistent item.
25303 JTabbedPaneOperator.java
makeComponentVisible() before tab selecting
GUIBrowser.java
One reload() removed, only showing windows showed.
JTreeOperator.java
Adding only visible nodes to dump
It make GUI browser loading inside IDE twice faster.
DefaultWindowDriver.java
COMPONENT_RESIZED is posted during resizing.
#VERSION 2.0.2
25983
JTreeOperator
25255
Added new package - src.org.netbeans.jemmy.accessibility
Classes: AccessibilityChooser, AccessibleNameChooser, AccessibleNameChooser
25307
- all inner finders made public:
AbstractButtonOperator.AbstractButtonFinder
AbstractButtonOperator.AbstractButtonByLabelFinder
- new constructor added to all by-class finders:
public AbstractButtonOperator.AbstractButtonFinder()
- new constructor added to all by-string resource finders:
public AbstractButtonOperator.AbstractButtonByLabelFinder(String)
public JListOperator.JListByItemFinder(String, int)
- new constructors are added to all operators:
public AbstractButtonOperator(ContainerOperator, ComponentChooser, int)
public AbstractButtonOperator(ContainerOperator, ComponentChooser)
- methods for finding subcomponent added to ContainerOperator:
public Component findSubComponent(ComponentChooser, int)
public Component findSubComponent(ComponentChooser)
- methods for finding subwindow added to WindowOperator:
public Window findSubWindow(ComponentChooser, int)
public Window findSubWindow(ComponentChooser)
25409, 25406, 25407, 25408
New methods in JTableOperator:
Point findCell(*)
int findCellRow(*, int column, int index)
int findCellColumn(*, int row, int index)
int findColumn(String)
new classes JTableHeaderOperator, OrderedListDriver
#VERSION 2.0.3
26251:
QueueTool:
new methods invokeSmoothly(*).
They perform an action directly if executed in event dispatching thread,
otherwise invoke invokeAndWait(*).
EventDriver:
uses QueueTool.invokeSmoothly(*) for event dispatching.
It makes possible to create bigger transactions including
event dispatching.
RobotDriver.java:
Does not wait for the event queue emptying being executed
in event dispatching thread.
JTreeMouseDriver.java, JListMouseDriver.java, JTableMouseDriver.java:
Click point calculation performed in the same InvocationEvent as events dispatching.
Operator.java:
Uses QueueTool.invokeSmoothly(*) for mapping
JTreeOperator.java, JListOperator.java, JTableOperator.java:
Row calculation performed in the same InvocationEvent as events dispatching.
ChoiceDriver.java:
Changes for 1.4
Behavior of java.awt.Choise is a little bit different for 1.4.
Documentation:
new document describing operator environment.
plans page has been updated.
Some javadoc for classes in "drivers" subpackage.
#VERSION 2.0.3.queue-branch
New EventQueue using technique. See http://jemmy.netbeans.org/queue.html for more info.
Post-verification added to some operators.
Files:
src/org/netbeans/jemmy/operators/AbstractButtonOperator.java
src/org/netbeans/jemmy/operators/JListOperator.java
src/org/netbeans/jemmy/operators/JTabbedPaneOperator.java
src/org/netbeans/jemmy/operators/ListOperator.java
src/org/netbeans/jemmy/operators/CheckboxOperator.java
src/org/netbeans/jemmy/operators/ChoiceOperator.java
src/org/netbeans/jemmy/operators/WindowOperator.java
src/org/netbeans/jemmy/operators/WindowOperator.java
isFocused() works as (getFocusOwner() != null) for java older than 1.4
isActive() - as isShowing()
src/org/netbeans/jemmy/TestOut.java
No in after print(String) method
#VERSION 2.0.3.queue-branch.1
26907: KeyEvent are posted to first native container.
Files:
src/org/netbeans/jemmy/drivers/input/KeyEventDriver.java
27152:
Files:
src/org/netbeans/jemmy/drivers/menus/DefaultJMenuDriver.java
src/org/netbeans/jemmy/drivers/menus/QueueJMenuDriver.java
25018 bugfix propogated on branch.
27140:
Files:
src/org/netbeans/jemmy/drivers/menus/QueueJMenuDriver.java
#VERSION 2.1.0
Merge of trunk and queue-branch versions. See <a href="http://jemmy.netbeans.org/queue.html">"Queue Using"</a>
for more information
Versioning. Build number and packages implementtion version.
See <a href="http://jemmy.netbeans.org/JemmyVersioning.html">"Jemmy Versioning"</a>
for more info.
Image library. New library allowing to compare two images using different approaches
and to find one image inside another.
New class: PNGDecored. Allows to load image from PNG graphics file.
Bugfixes: 23436, 28144, 23436, 21011
#VERSION 2.1.1
28822:
src/org/netbeans/jemmy/drivers/menus/DefaultJMenuDriver.java
28754:
src/org/netbeans/jemmy/operators/FrameOperator.java
src/org/netbeans/jemmy/operators/JInternalFrameOperator.java
28833:
src/org/netbeans/jemmy/operators/JFileChooserOperator.java
28835:
src/org/netbeans/jemmy/operators/JFileChooserOperator.java
24313:
src/org/netbeans/jemmy/operators/JMenuBarOperator.java
src/org/netbeans/jemmy/operators/JPopupMenuOperator.java
28672:
src/org/netbeans/jemmy/operators/JTabbedPaneOperator.java
some more callPopup methods:
src/org/netbeans/jemmy/operators/JPopupMenuOperator.java
Correct initialization:
src/org/netbeans/jemmy/JemmyProperties.java
Do not install new queue unless necessary:
src/org/netbeans/jemmy/QueueTool.java
#VERSION 2.1.2
New set of methods with String path parameter:
they do not have a parameter-separator:
JMenuOperator.pushMenu(String path);
JTreeOperator.findPath(String path);
The way of parsing path string is defined by
Operator.PathParser implementation. Parser is passed
between operators similar to other environment.
By default, path string is treated as separated by "|" symbol,
so, by default, this two lines are equal:
menubar.pushMenu("File|New", "|");
and
menubar.pushMenu("File|New");
Files:
src/org/netbeans/jemmy/operators/JMenuBarOperator.java
src/org/netbeans/jemmy/operators/JMenuOperator.java
src/org/netbeans/jemmy/operators/JPopupMenuOperator.java
src/org/netbeans/jemmy/operators/JTreeOperator.java
src/org/netbeans/jemmy/operators/Operator.java
29761 fix:
src/org/netbeans/jemmy/operators/JMenuBarOperator.java
src/org/netbeans/jemmy/operators/JMenuItemOperator.java
src/org/netbeans/jemmy/operators/JMenuOperator.java
src/org/netbeans/jemmy/operators/JPopupMenuOperator.java
28672 fix:
src/org/netbeans/jemmy/operators/JTabbedPaneOperator.java
Symbolic constants for names in Hashtable generated by
getDump() methods.
All constants have "_DPROP" postfix:
public static final String AbstractButtonOperator.TEXT_DPROP = "Text";
Files:
Almost all operators - the ones having getDump() method.
#VERSION 2.2.0
Divers updated as described in
http://jemmy.netbeans.org/servlets/ReadMsg?msgId=446615&listName=users
Files: Almost all driver classes.
InternalFrameDriver class as described in
http://jellytools.netbeans.org/issues/show_bug.cgi?id=30195
Affected files:
src/org/netbeans/jemmy/drivers/DriverManager.java
src/org/netbeans/jemmy/drivers/windows/DefaultInternalFrameDriver.java
src/org/netbeans/jemmy/operators/JInternalFrameOperator.java
src/org/netbeans/jemmy/drivers/InternalFrameDriver.java
JComponentOperator.getWindowContainer() returns first window-like
container: JInternalFrame or Window.
util.NameComponentChooser class. (thanks to Nathan Paris)
Allows to find a component by component name - string
returned by Component.getname() method.
29761 fix:
src/org/netbeans/jemmy/operators/JMenuItemOperator.java
#VERSION 2.2.1
Javadoc has been completed.
JSpinner operator and driver
(Could be compiled and used under 1.4 only.)
src/org/netbeans/jemmy/drivers/scrolling/JSpinnerDriver.java
src/org/netbeans/jemmy/operators/JSpinnerOperator.java
JSlider is now working through ScrollDriver
src/org/netbeans/jemmy/operators/JSliderOperator.java
src/org/netbeans/jemmy/drivers/scrolling/JSliderDriver.java
28835: JemmyException is thrown if getApproveButton() returns null.
src/org/netbeans/jemmy/operators/JFileChooserOperator.java
30939: description field has been removed.
src/org/netbeans/jemmy/JemmyException.java
Throwable is accepted as an inner exception by JemmyException
src/org/netbeans/jemmy/JemmyException.java
StringComparator can be passed to StringPropChooser constructor
src/org/netbeans/jemmy/util/StringPropChooser.java
Tooltip component is now searched through all the windows:
src/org/netbeans/jemmy/operators/JComponentOperator.java