All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jemmy.dock.Dock Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (c) 2007, 2017 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
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation. Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */
package org.jemmy.dock;

import org.jemmy.Rectangle;
import org.jemmy.action.GetAction;
import org.jemmy.control.Wrap;
import org.jemmy.env.Environment;
import org.jemmy.interfaces.Drag;
import org.jemmy.interfaces.Keyboard;
import org.jemmy.interfaces.Mouse;
import org.jemmy.interfaces.Parent;
import org.jemmy.lookup.Lookup;
import org.jemmy.lookup.LookupCriteria;

/**
 * Superclass for all "docks" - classes which simple provide API for lookup, interfaces
 * and properties.
 * @author shura
 */
public class Dock {

    /**
     * Default suffix to construct result image name.
     */
    public static final String DEFAULT_RESULT_IMAGE_SUFFIX = "default.result.image.suffix";
    /**
     * Default suffix to construct diff image name.
     */
    public static final String DEFAULT_DIFF_IMAGE_SUFFIX = "default.diff.image.suffix";

    static {
        Environment.getEnvironment().setPropertyIfNotSet(DEFAULT_DIFF_IMAGE_SUFFIX, "-diff");
        Environment.getEnvironment().setPropertyIfNotSet(DEFAULT_RESULT_IMAGE_SUFFIX, "-result");
    }

    private Wrap wrap;

    protected Dock(Wrap wrap) {
        this.wrap = wrap;
    }

    /**
     * Method which at the end actually get called from all dock lookup
     * constructors.
     * @param  todo document
     * @param parent todo document
     * @param controlType todo document
     * @param index todo document
     * @param criteria todo document
     * @return todo document
     */
    protected static  Wrap lookup(Parent parent, Class controlType, int index, LookupCriteria... criteria) {
        Lookup lookup;
        if (criteria.length > 0) {
            lookup = parent.lookup(controlType, criteria[0]);
            for (int i = 1; i < criteria.length; i++) {
                lookup = lookup.lookup(controlType, criteria[i]);
            }
        } else {
            lookup = parent.lookup(controlType);
        }
        return lookup.wrap(index);
    }

    /**
     *
     * @return Wrap instance obtainer through lookup
     */
    public Wrap wrap() {
        return wrap;
    }

    /**
     * @return Wrap instance obtainer through lookup
     */
    public Object control() {
        return wrap.getControl();
    }

    /**
     * @return Shortcut to wrap().mouse()
     */
    public Mouse mouse() {
        return wrap.mouse();
    }

    /**
     * @return Shortcut to wrap().keyboard()
     */
    public Keyboard keyboard() {
        return wrap.keyboard();
    }

    /**
     * @return Shortcut to wrap().drag()
     */
    public Drag drag() {
        return wrap.drag();
    }

    /**
     * @return Shortcut to wrap().getScreenBounds()
     */
    public Rectangle bounds() {
        return wrap.getScreenBounds();
    }

    protected 

P getProperty(GetAction

action) { action.execute(); return action.getResult(); } /** * @return wrap().getEnvironment(). */ public Environment environment() { return wrap.getEnvironment(); } /** * Loads image with goldenId id waits for the control to match it. * @see Wrap#waitImage(org.jemmy.image.Image, org.jemmy.Rectangle, java.lang.String, java.lang.String) * @param goldenId todo document * @param rect todo document * @param resID todo document * @param diffID todo document */ public void waitImage(String goldenId, Rectangle rect, String resID, String diffID) { wrap.waitImage(environment().getImageLoader().load(goldenId), rect, resID, diffID); } /** * Constructs names for diff and result images and waits for the control to match it. * Diff and result names * constructed by adding suffixes. Suffixes are obtained from environment with * default values being "-diff" and "-result" * @see #waitImage(java.lang.String, org.jemmy.Rectangle, java.lang.String, java.lang.String) * @see #DEFAULT_DIFF_IMAGE_SUFFIX * @see #DEFAULT_RESULT_IMAGE_SUFFIX * @param goldenId todo document * @param rect todo document */ public void waitImage(String goldenId, Rectangle rect) { waitImage(goldenId, rect, goldenId + environment().getProperty(DEFAULT_RESULT_IMAGE_SUFFIX), goldenId + environment().getProperty(DEFAULT_DIFF_IMAGE_SUFFIX)); } /** * Loads image with goldenId id waits for the control to match it. * @see Wrap#waitImage(org.jemmy.image.Image, java.lang.String, java.lang.String) * @param goldenId todo document * @param resID todo document * @param diffID todo document */ public void waitImage(String goldenId, String resID, String diffID) { wrap.waitImage(environment().getImageLoader().load(goldenId), resID, diffID); } /** * Constructs names for diff and result images and waits for the control to match it. * Diff and result names * constructed by adding suffixes. Suffixes are obtained from environment with * default values being "-diff" and "-result" * @see #waitImage(java.lang.String, java.lang.String, java.lang.String) * @see #DEFAULT_DIFF_IMAGE_SUFFIX * @see #DEFAULT_RESULT_IMAGE_SUFFIX * @param goldenId todo document */ public void waitImage(String goldenId) { waitImage(goldenId, goldenId + environment().getProperty(DEFAULT_RESULT_IMAGE_SUFFIX), goldenId + environment().getProperty(DEFAULT_DIFF_IMAGE_SUFFIX)); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy