xml.schema/test/qa-functional/src/org/netbeans/test/xml/schema/abe/DVGenericNodeOperator.java
author Milutin Kristofic <mkristofic@netbeans.org>
Mon, 30 Jan 2017 14:30:54 +0100
changeset 1583 fe20f672a61a
parent 890 b978f643717a
permissions -rw-r--r--
Added Missing copyright information in source files
mkristofic@1583
     1
/*
mkristofic@1583
     2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
mkristofic@1583
     3
 *
mkristofic@1583
     4
 * Copyright 2009-2017 Oracle and/or its affiliates. All rights reserved.
mkristofic@1583
     5
 *
mkristofic@1583
     6
 * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
mkristofic@1583
     7
 * Other names may be trademarks of their respective owners.
mkristofic@1583
     8
 *
mkristofic@1583
     9
 * The contents of this file are subject to the terms of either the GNU
mkristofic@1583
    10
 * General Public License Version 2 only ("GPL") or the Common
mkristofic@1583
    11
 * Development and Distribution License("CDDL") (collectively, the
mkristofic@1583
    12
 * "License"). You may not use this file except in compliance with the
mkristofic@1583
    13
 * License. You can obtain a copy of the License at
mkristofic@1583
    14
 * http://www.netbeans.org/cddl-gplv2.html
mkristofic@1583
    15
 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
mkristofic@1583
    16
 * specific language governing permissions and limitations under the
mkristofic@1583
    17
 * License.  When distributing the software, include this License Header
mkristofic@1583
    18
 * Notice in each file and include the License file at
mkristofic@1583
    19
 * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
mkristofic@1583
    20
 * particular file as subject to the "Classpath" exception as provided
mkristofic@1583
    21
 * by Oracle in the GPL Version 2 section of the License file that
mkristofic@1583
    22
 * accompanied this code. If applicable, add the following below the
mkristofic@1583
    23
 * License Header, with the fields enclosed by brackets [] replaced by
mkristofic@1583
    24
 * your own identifying information:
mkristofic@1583
    25
 * "Portions Copyrighted [year] [name of copyright owner]"
mkristofic@1583
    26
 *
mkristofic@1583
    27
 * Contributor(s):
mkristofic@1583
    28
 *
mkristofic@1583
    29
 * The Original Software is NetBeans. The Initial Developer of the Original
mkristofic@1583
    30
 * Software is Sun Microsystems, Inc. Portions Copyright 2009-2010 Sun
mkristofic@1583
    31
 * Microsystems, Inc. All Rights Reserved.
mkristofic@1583
    32
 *
mkristofic@1583
    33
 * If you wish your version of this file to be governed by only the CDDL
mkristofic@1583
    34
 * or only the GPL Version 2, indicate your decision by adding
mkristofic@1583
    35
 * "[Contributor] elects to include this software in this distribution
mkristofic@1583
    36
 * under the [CDDL or GPL Version 2] license." If you do not indicate a
mkristofic@1583
    37
 * single choice of license, a recipient has the option to distribute
mkristofic@1583
    38
 * your version of this file under either the CDDL, the GPL Version 2 or
mkristofic@1583
    39
 * to extend the choice of license to its licensees as provided above.
mkristofic@1583
    40
 * However, if you add GPL Version 2 code and therefore, elected the GPL
mkristofic@1583
    41
 * Version 2 license, then the option applies only if the new code is
mkristofic@1583
    42
 * made subject to such option by the copyright holder.
mkristofic@1583
    43
 */
mikhailmatveev@890
    44
package org.netbeans.test.xml.schema.abe;
mikhailmatveev@890
    45
mikhailmatveev@890
    46
import java.awt.Container;
mikhailmatveev@890
    47
import java.awt.event.InputEvent;
mikhailmatveev@890
    48
import java.awt.event.KeyEvent;
mikhailmatveev@890
    49
import javax.swing.JLabel;
mikhailmatveev@890
    50
import org.netbeans.jemmy.Timeout;
mikhailmatveev@890
    51
import org.netbeans.jemmy.drivers.input.MouseRobotDriver;
mikhailmatveev@890
    52
import org.netbeans.jemmy.operators.ContainerOperator;
mikhailmatveev@890
    53
import org.netbeans.jemmy.operators.JLabelOperator;
mikhailmatveev@890
    54
import org.netbeans.jemmy.operators.JLabelOperator.JLabelByLabelFinder;
mikhailmatveev@890
    55
import org.netbeans.jemmy.operators.JPopupMenuOperator;
mikhailmatveev@890
    56
mikhailmatveev@890
    57
/**
mikhailmatveev@890
    58
 *
mikhailmatveev@890
    59
 * @author Mikhail Matveev
mikhailmatveev@890
    60
 */
mikhailmatveev@890
    61
public class DVGenericNodeOperator extends ContainerOperator{
mikhailmatveev@890
    62
    
mikhailmatveev@890
    63
    protected JLabelOperator m_label=null;
mikhailmatveev@890
    64
    protected MouseRobotDriver drv=new MouseRobotDriver(new Timeout("",  50));
mikhailmatveev@890
    65
    
mikhailmatveev@890
    66
    public DVGenericNodeOperator(Container comp){
mikhailmatveev@890
    67
        super(comp);
mikhailmatveev@890
    68
        m_label=new JLabelOperator((JLabel)waitComponent(comp, new JLabelByLabelFinder(comp.getName(), getComparator()),0));
mikhailmatveev@890
    69
    }
mikhailmatveev@890
    70
    
mikhailmatveev@890
    71
    public DVGenericNodeOperator(ContainerOperator parent, String text){
mikhailmatveev@890
    72
        
mikhailmatveev@890
    73
        this(parent,text,null);
mikhailmatveev@890
    74
    }
mikhailmatveev@890
    75
    
mikhailmatveev@890
    76
    public DVGenericNodeOperator(ContainerOperator parent, String text, boolean ce, boolean ccs){
mikhailmatveev@890
    77
        
mikhailmatveev@890
    78
        this(parent,text,new DefaultStringComparator(ce,ccs));
mikhailmatveev@890
    79
    }    
mikhailmatveev@890
    80
    
mikhailmatveev@890
    81
    public DVGenericNodeOperator(ContainerOperator parent, String text, StringComparator comparator){
mikhailmatveev@890
    82
        
mikhailmatveev@890
    83
	super(waitComponent(parent, new JLabelByLabelFinder(text, comparator==null?parent.getComparator():comparator),0).getParent().getParent());
mikhailmatveev@890
    84
        m_label=new JLabelOperator((JLabel)waitComponent(this, new JLabelByLabelFinder(text, this.getComparator()),0));
mikhailmatveev@890
    85
	copyEnvironment(parent);        
mikhailmatveev@890
    86
    }    
mikhailmatveev@890
    87
    
mikhailmatveev@890
    88
    public JLabelOperator getLabel(){
mikhailmatveev@890
    89
        return m_label;
mikhailmatveev@890
    90
    }
mikhailmatveev@890
    91
    
mikhailmatveev@890
    92
    public void clickMouseRobot(){
mikhailmatveev@890
    93
        drv.clickMouse(m_label, m_label.getCenterXForClick(), m_label.getCenterYForClick(), 1, InputEvent.BUTTON1_MASK, 0, new Timeout("",  30));
mikhailmatveev@890
    94
    }    
mikhailmatveev@890
    95
    
mikhailmatveev@890
    96
    public void dblClickMouseRobot(){
mikhailmatveev@890
    97
        drv.clickMouse(m_label, m_label.getCenterXForClick(), m_label.getCenterYForClick(), 2, InputEvent.BUTTON1_MASK, 0, new Timeout("",  30));
mikhailmatveev@890
    98
    }        
mikhailmatveev@890
    99
    
mikhailmatveev@890
   100
    public void clickForPopupRobot(){
mikhailmatveev@890
   101
        drv.clickMouse(m_label, m_label.getCenterXForClick(), m_label.getCenterYForClick(), 1, InputEvent.BUTTON3_MASK, 0, new Timeout("",  30));
mikhailmatveev@890
   102
    }
mikhailmatveev@890
   103
    
mikhailmatveev@890
   104
    public void renameInplace(String name){
mikhailmatveev@890
   105
        dblClickMouseRobot();
mikhailmatveev@890
   106
        m_label.setText(name);
mikhailmatveev@890
   107
    }
mikhailmatveev@890
   108
    
mikhailmatveev@890
   109
    public DVNodeOperator addElement(String name){
mikhailmatveev@890
   110
        clickForPopupRobot();
mikhailmatveev@890
   111
        new JPopupMenuOperator().pushMenu("Add|Element");
mikhailmatveev@890
   112
        DVNodeOperator res=new DVNodeOperator(this, DesignViewOperator.defaultElementName, true, true);
mikhailmatveev@890
   113
        res.getLabel().setText(name);
mikhailmatveev@890
   114
        res.pushKey(KeyEvent.VK_ENTER);
mikhailmatveev@890
   115
        return res;
mikhailmatveev@890
   116
    }    
mikhailmatveev@890
   117
    
mikhailmatveev@890
   118
}