--- a/test/jdk/java/awt/dnd/ImageDecoratedDnDInOut/ImageDecoratedDnDInOut.java Wed Feb 27 14:30:08 2019 -0800
+++ b/test/jdk/java/awt/dnd/ImageDecoratedDnDInOut/ImageDecoratedDnDInOut.java Wed Feb 27 18:46:55 2019 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -22,56 +22,44 @@
*/
/*
- test %W% %E%
+ @test
+ @key headful
@bug 4874070
@summary Tests basic DnD functionality
- @author Your Name: Alexey Utkin area=dnd
- @run applet ImageDecoratedDnDInOut.html
+ @run main ImageDecoratedDnDInOut
*/
-import java.applet.Applet;
import java.awt.*;
import java.awt.Robot;
import java.awt.event.InputEvent;
import java.awt.dnd.DragSource;
-
-public class ImageDecoratedDnDInOut extends Applet {
- //Declare things used in the test, like buttons and labels here
-
- public void init() {
- //Create instructions for the user here, as well as set up
- // the environment -- set the layout manager, add buttons,
- // etc.
- this.setLayout(new BorderLayout());
+/*
+ "Automatic test.",
+ "A Frame, which contains a yellow button labeled \"Drag ME!\" and ",
+ "a red panel, will appear below. ",
+ "1. The button would be clicked and dragged to the red panel. ",
+ "2. When the mouse enters the red panel during the drag, the panel ",
+ "should turn yellow. On the systems that supports pictured drag, ",
+ "the image under the drag-cursor should appear (ancor is shifted ",
+ "from top-left corner of the picture inside the picture to 10pt in both dimensions ). ",
+ "In WIN32 systems the image under cursor would be visible ONLY over ",
+ "the drop targets with activated extended OLE D\'n\'D support (that are ",
+ "the desktop and IE ).",
+ "3. The mouse would be released.",
+ "The panel should turn red again and a yellow button labeled ",
+ "\"Drag ME!\" should appear inside the panel. "
+ */
+public class ImageDecoratedDnDInOut {
- String[] instructions =
- {
- "Automatic test.",
- "A Frame, which contains a yellow button labeled \"Drag ME!\" and ",
- "a red panel, will appear below. ",
- "1. The button would be clicked and dragged to the red panel. ",
- "2. When the mouse enters the red panel during the drag, the panel ",
- "should turn yellow. On the systems that supports pictured drag, ",
- "the image under the drag-cursor should appear (ancor is shifted ",
- "from top-left corner of the picture inside the picture to 10pt in both dimensions ). ",
- "In WIN32 systems the image under cursor would be visible ONLY over ",
- "the drop targets with activated extended OLE D\'n\'D support (that are ",
- "the desktop and IE ).",
- "3. The mouse would be released.",
- "The panel should turn red again and a yellow button labeled ",
- "\"Drag ME!\" should appear inside the panel. "
- };
- Sysout.createDialogWithInstructions(instructions);
-
- }//End init()
-
- public void start() {
+ public static void main(final String[] args) {
Frame f = new Frame("Use keyboard for DnD change");
Panel mainPanel;
Component dragSource, dropTarget;
- f.setBounds(0, 400, 200, 200);
+ f.setSize(200, 200);
+ f.setUndecorated(true);
+ f.setLocationRelativeTo(null);
f.setLayout(new BorderLayout());
mainPanel = new Panel();
@@ -93,6 +81,7 @@
sourcePoint.translate(d.width / 2, d.height / 2);
Robot robot = new Robot();
+ robot.waitForIdle();
robot.mouseMove(sourcePoint.x, sourcePoint.y);
robot.mousePress(InputEvent.BUTTON1_MASK);
Thread.sleep(2000);
@@ -121,112 +110,5 @@
throw new RuntimeException("test failed: drop was not successful with exception " + e);
}
- }// start()
+ }
}// class DnDAcceptanceTest
-
-
-/**
- * *************************************************
- * Standard Test Machinery
- * DO NOT modify anything below -- it's a standard
- * chunk of code whose purpose is to make user
- * interaction uniform, and thereby make it simpler
- * to read and understand someone else's test.
- * **************************************************
- */
-class Sysout {
- private static TestDialog dialog;
-
- public static void createDialogWithInstructions(String[] instructions) {
- dialog = new TestDialog(new Frame(), "Instructions");
- dialog.printInstructions(instructions);
- dialog.show();
- println("Any messages for the tester will display here.");
- }
-
- public static void createDialog() {
- dialog = new TestDialog(new Frame(), "Instructions");
- String[] defInstr = {"Instructions will appear here. ", ""};
- dialog.printInstructions(defInstr);
- dialog.show();
- println("Any messages for the tester will display here.");
- }
-
-
- public static void printInstructions(String[] instructions) {
- dialog.printInstructions(instructions);
- }
-
-
- public static void println(String messageIn) {
- dialog.displayMessage(messageIn);
- }
-
-}// Sysout class
-
-
-class TestDialog extends Dialog {
-
- TextArea instructionsText;
- TextArea messageText;
- int maxStringLength = 80;
-
- //DO NOT call this directly, go through Sysout
- public TestDialog(Frame frame, String name) {
- super(frame, name);
- int scrollBoth = TextArea.SCROLLBARS_BOTH;
- instructionsText = new TextArea("", 15, maxStringLength, scrollBoth);
- add("North", instructionsText);
-
- messageText = new TextArea("", 5, maxStringLength, scrollBoth);
- add("South", messageText);
-
- pack();
-
- show();
- }// TestDialog()
-
- //DO NOT call this directly, go through Sysout
- public void printInstructions(String[] instructions) {
- //Clear out any current instructions
- instructionsText.setText("");
-
- //Go down array of instruction strings
-
- String printStr, remainingStr;
- for (int i = 0; i < instructions.length; i++) {
- //chop up each into pieces maxSringLength long
- remainingStr = instructions[i];
- while (remainingStr.length() > 0) {
- //if longer than max then chop off first max chars to print
- if (remainingStr.length() >= maxStringLength) {
- //Try to chop on a word boundary
- int posOfSpace = remainingStr.
- lastIndexOf(' ', maxStringLength - 1);
-
- if (posOfSpace <= 0) posOfSpace = maxStringLength - 1;
-
- printStr = remainingStr.substring(0, posOfSpace + 1);
- remainingStr = remainingStr.substring(posOfSpace + 1);
- }
- //else just print
- else {
- printStr = remainingStr;
- remainingStr = "";
- }
-
- instructionsText.append(printStr + "\n");
-
- }// while
-
- }// for
-
- }//printInstructions()
-
- //DO NOT call this directly, go through Sysout
- public void displayMessage(String messageIn) {
- messageText.append(messageIn + "\n");
- }
-
-}// TestDialog class
-