jdk/test/java/awt/datatransfer/HTMLDataFlavors/ManualHTMLDataFlavorTest.java
author pchelko
Tue, 03 Dec 2013 15:31:07 +0400
changeset 21936 4886a6341268
parent 16705 1caaa379eded
permissions -rw-r--r--
8029251: [TEST_BUG][macosx] Use safari browser, the ouput contain information that DataFlavor.allHtmlFlavor is not present in the system clipboard Reviewed-by: anthony, serb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
16705
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
     1
/*
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
     2
 * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
     4
 *
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
     7
 * published by the Free Software Foundation.
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
     8
 *
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    13
 * accompanied this code).
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    14
 *
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    18
 *
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    21
 * questions.
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    22
 */
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    23
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    24
/*
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    25
  test
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    26
  @bug 7075105
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    27
  @summary WIN: Provide a way to format HTML on drop
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    28
  @author Denis Fokin: area=datatransfer
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    29
  @run applet/manual=yesno ManualHTMLDataFlavorTest
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    30
*/
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    31
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    32
import java.applet.Applet;
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    33
import java.awt.*;
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    34
import java.awt.datatransfer.DataFlavor;
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    35
import java.awt.datatransfer.Transferable;
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    36
import java.awt.datatransfer.UnsupportedFlavorException;
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    37
import java.awt.dnd.*;
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    38
import java.io.IOException;
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    39
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    40
public class ManualHTMLDataFlavorTest extends Applet {
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    41
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    42
    class DropPane extends Panel implements DropTargetListener {
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    43
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    44
        DropPane() {
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    45
            requestFocus();
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    46
            setBackground(Color.red);
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    47
            setDropTarget(new DropTarget(this, DnDConstants.ACTION_COPY, this));
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    48
        }
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    49
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    50
        @Override
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    51
        public Dimension getPreferredSize() {
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    52
            return new Dimension(200,200);
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    53
        }
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    54
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    55
        @Override
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    56
        public void dragEnter(DropTargetDragEvent dtde) {
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    57
            dtde.acceptDrag(DnDConstants.ACTION_COPY);
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    58
        }
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    59
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    60
        @Override
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    61
        public void dragOver(DropTargetDragEvent dtde) {
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    62
            dtde.acceptDrag(DnDConstants.ACTION_COPY);
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    63
        }
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    64
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    65
        @Override
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    66
        public void dropActionChanged(DropTargetDragEvent dtde) {
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    67
            dtde.acceptDrag(DnDConstants.ACTION_COPY);
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    68
        }
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    69
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    70
        @Override
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    71
        public void dragExit(DropTargetEvent dte) {}
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    72
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    73
        @Override
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    74
        public void drop(DropTargetDropEvent dtde) {
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    75
            if (!dtde.isDataFlavorSupported(DataFlavor.allHtmlFlavor)) {
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    76
                Sysout.println("DataFlavor.allHtmlFlavor is not present in the system clipboard");
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    77
                dtde.rejectDrop();
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    78
                return;
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    79
            } else if (!dtde.isDataFlavorSupported(DataFlavor.fragmentHtmlFlavor)) {
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    80
                Sysout.println("DataFlavor.fragmentHtmlFlavor is not present in the system clipboard");
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    81
                dtde.rejectDrop();
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    82
                return;
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    83
            } else if (!dtde.isDataFlavorSupported(DataFlavor.selectionHtmlFlavor)) {
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    84
                Sysout.println("DataFlavor.selectionHtmlFlavor is not present in the system clipboard");
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    85
                dtde.rejectDrop();
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    86
                return;
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    87
            }
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    88
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    89
            dtde.acceptDrop(DnDConstants.ACTION_COPY);
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    90
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    91
            Transferable t = dtde.getTransferable();
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    92
            try {
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    93
                Sysout.println("ALL:");
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    94
                Sysout.println(t.getTransferData(DataFlavor.allHtmlFlavor).toString());
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    95
                Sysout.println("FRAGMENT:");
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    96
                Sysout.println(t.getTransferData(DataFlavor.fragmentHtmlFlavor).toString());
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    97
                Sysout.println("SELECTION:");
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
    98
                Sysout.println(t.getTransferData(DataFlavor.selectionHtmlFlavor).toString());
21936
4886a6341268 8029251: [TEST_BUG][macosx] Use safari browser, the ouput contain information that DataFlavor.allHtmlFlavor is not present in the system clipboard
pchelko
parents: 16705
diff changeset
    99
            } catch (UnsupportedFlavorException | IOException e) {
16705
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   100
                e.printStackTrace();
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   101
            }
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   102
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   103
        }
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   104
    }
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   105
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   106
    public void init() {
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   107
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   108
        String[] instructions =
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   109
            {
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   110
                "1) The test contains a drop-aware panel with a red background",
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   111
                "2) Open some page in a browser, select some text",
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   112
                "   Drag and drop it on the red panel",
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   113
                "   IMPORTANT NOTE: the page should be stored locally.",
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   114
                "   otherwise for instance iexplore can prohibit drag and drop from",
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   115
                "   the browser to other applications because of",
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   116
                "   the protected mode restrictions.",
21936
4886a6341268 8029251: [TEST_BUG][macosx] Use safari browser, the ouput contain information that DataFlavor.allHtmlFlavor is not present in the system clipboard
pchelko
parents: 16705
diff changeset
   117
                "   On Mac OS X do NOT use Safari, it does not provide the needed DataFlavor",
16705
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   118
                "3) Check the data in the output area of this dialog",
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   119
                "5) The output should not contain information that any of",
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   120
                "   flavors is not present in the system clipboard",
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   121
                "6) The output should contain data in three different formats",
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   122
                "   provided by the system clipboard",
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   123
                "    - Data after the \"ALL:\" marker should include the data",
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   124
                "      from the the \"SELECTION:\" marker",
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   125
                "    - Data after the \"FRAGMENT\" marker should include the data",
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   126
                "      from the \"SELECTION:\" marker and may be some closing",
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   127
                "      tags could be added to the mark-up",
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   128
                "    - Data after the \"SELECTION:\" marker should correspond",
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   129
                "      to the data selected in the browser",
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   130
                "7) If the above requirements are met, the test is passed"
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   131
            };
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   132
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   133
        add(new DropPane());
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   134
        Sysout.createDialogWithInstructions( instructions );
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   135
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   136
        new ManualHTMLDataFlavorTest();
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   137
    }
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   138
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   139
    public void start ()
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   140
    {
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   141
        setSize (200,200);
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   142
        setVisible(true);
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   143
        validate();
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   144
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   145
    }// start()
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   146
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   147
}
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   148
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   149
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   150
/* Place other classes related to the test after this line */
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   151
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   152
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   153
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   154
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   155
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   156
/****************************************************
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   157
 Standard Test Machinery
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   158
 DO NOT modify anything below -- it's a standard
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   159
 chunk of code whose purpose is to make user
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   160
 interaction uniform, and thereby make it simpler
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   161
 to read and understand someone else's test.
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   162
 ****************************************************/
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   163
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   164
/**
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   165
 This is part of the standard test machinery.
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   166
 It creates a dialog (with the instructions), and is the interface
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   167
 for sending text messages to the user.
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   168
 To print the instructions, send an array of strings to Sysout.createDialog
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   169
 WithInstructions method.  Put one line of instructions per array entry.
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   170
 To display a message for the tester to see, simply call Sysout.println
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   171
 with the string to be displayed.
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   172
 This mimics System.out.println but works within the test harness as well
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   173
 as standalone.
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   174
 */
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   175
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   176
class Sysout
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   177
{
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   178
    private static TestDialog dialog;
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   179
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   180
    public static void createDialogWithInstructions( String[] instructions )
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   181
    {
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   182
        dialog = new TestDialog( new Frame(), "Instructions" );
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   183
        dialog.printInstructions( instructions );
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   184
        dialog.setVisible(true);
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   185
        println( "Any messages for the tester will display here." );
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   186
    }
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   187
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   188
    public static void createDialog( )
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   189
    {
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   190
        dialog = new TestDialog( new Frame(), "Instructions" );
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   191
        String[] defInstr = { "Instructions will appear here. ", "" } ;
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   192
        dialog.printInstructions( defInstr );
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   193
        dialog.setVisible(true);
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   194
        println( "Any messages for the tester will display here." );
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   195
    }
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   196
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   197
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   198
    public static void printInstructions( String[] instructions )
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   199
    {
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   200
        dialog.printInstructions( instructions );
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   201
    }
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   202
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   203
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   204
    public static void println( String messageIn )
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   205
    {
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   206
        dialog.displayMessage( messageIn );
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   207
    }
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   208
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   209
}// Sysout  class
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   210
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   211
/**
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   212
 This is part of the standard test machinery.  It provides a place for the
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   213
 test instructions to be displayed, and a place for interactive messages
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   214
 to the user to be displayed.
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   215
 To have the test instructions displayed, see Sysout.
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   216
 To have a message to the user be displayed, see Sysout.
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   217
 Do not call anything in this dialog directly.
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   218
 */
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   219
class TestDialog extends Dialog
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   220
{
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   221
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   222
    TextArea instructionsText;
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   223
    TextArea messageText;
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   224
    int maxStringLength = 80;
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   225
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   226
    //DO NOT call this directly, go through Sysout
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   227
    public TestDialog( Frame frame, String name )
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   228
    {
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   229
        super( frame, name );
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   230
        int scrollBoth = TextArea.SCROLLBARS_BOTH;
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   231
        instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth );
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   232
        add( "North", instructionsText );
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   233
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   234
        messageText = new TextArea( "", 5, maxStringLength, scrollBoth );
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   235
        add("Center", messageText);
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   236
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   237
        pack();
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   238
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   239
        setVisible(true);
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   240
    }// TestDialog()
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   241
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   242
    //DO NOT call this directly, go through Sysout
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   243
    public void printInstructions( String[] instructions )
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   244
    {
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   245
        //Clear out any current instructions
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   246
        instructionsText.setText( "" );
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   247
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   248
        //Go down array of instruction strings
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   249
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   250
        String printStr, remainingStr;
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   251
        for( int i=0; i < instructions.length; i++ )
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   252
        {
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   253
            //chop up each into pieces maxSringLength long
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   254
            remainingStr = instructions[ i ];
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   255
            while( remainingStr.length() > 0 )
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   256
            {
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   257
                //if longer than max then chop off first max chars to print
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   258
                if( remainingStr.length() >= maxStringLength )
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   259
                {
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   260
                    //Try to chop on a word boundary
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   261
                    int posOfSpace = remainingStr.
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   262
                                                     lastIndexOf( ' ', maxStringLength - 1 );
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   263
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   264
                    if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1;
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   265
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   266
                    printStr = remainingStr.substring( 0, posOfSpace + 1 );
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   267
                    remainingStr = remainingStr.substring( posOfSpace + 1 );
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   268
                }
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   269
                //else just print
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   270
                else
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   271
                {
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   272
                    printStr = remainingStr;
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   273
                    remainingStr = "";
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   274
                }
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   275
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   276
                instructionsText.append( printStr + "\n" );
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   277
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   278
            }// while
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   279
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   280
        }// for
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   281
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   282
    }//printInstructions()
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   283
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   284
    //DO NOT call this directly, go through Sysout
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   285
    public void displayMessage( String messageIn )
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   286
    {
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   287
        messageText.append( messageIn + "\n" );
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   288
        System.out.println(messageIn);
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   289
    }
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   290
1caaa379eded 7075105: WIN: Provide a way to format HTML on drop
denis
parents:
diff changeset
   291
}// TestDialog  class