/******************************************************************************* * Copyright (c) 2012 Google, Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Google, Inc. - initial API and implementation *******************************************************************************/ package com.windowtester.runtime.swt.internal.settings; public class TestSettings implements IRuntimeSettings { private static final SettingsStack _stack = new SettingsStack(); private static final TestSettings INSTANCE = new TestSettings(); public static TestSettings getInstance() { return INSTANCE; } public IRuntimeSettings getCurrent() { return _stack.peek(); } /* (non-Javadoc) * @see com.windowtester.runtime.swt.internal.settings.IRuntimeSettings#setContextClickDelay(int) */ public void setPreContextClickDelay(int ms) { getCurrent().setPreContextClickDelay(ms); } /* (non-Javadoc) * @see com.windowtester.runtime.swt.internal.settings.IRuntimeSettings#getContextClickDelay() */ public int getPreContextClickDelay() { //work backwards in stack until a valid value is found IRuntimeSettings[] items = _stack.getItems(); for (int i = items.length-1; i >= 0; i--) { int value = items[i].getPreContextClickDelay(); if (isSet(value)) return value; } //TODO: log this return IRuntimeSettingsConstants.DEFAULT_CONTEXT_CLICK_DELAY; } /* (non-Javadoc) * @see com.windowtester.runtime.swt.internal.settings.IRuntimeSettings#getFinderRetries() */ public int getFinderRetries() { //work backwards in stack until a valid value is found IRuntimeSettings[] items = _stack.getItems(); for (int i = items.length-1; i >= 0; i--) { int value = items[i].getFinderRetries(); if (isSet(value)) return value; } //TODO: log this return IRuntimeSettingsConstants.DEFAULT_FINDER_RETRIES; } /* (non-Javadoc) * @see com.windowtester.runtime.swt.internal.settings.IRuntimeSettings#setFinderRetries(int) */ public void setFinderRetries(int numberOfRetries) { getCurrent().setFinderRetries(numberOfRetries); } /* (non-Javadoc) * @see com.windowtester.runtime.swt.internal.settings.IRuntimeSettings#getFinderInterval() */ public int getFinderRetryInterval() { //work backwards in stack until a valid value is found IRuntimeSettings[] items = _stack.getItems(); for (int i = items.length-1; i >= 0; i--) { int value = items[i].getFinderRetryInterval(); if (isSet(value)) return value; } //TODO: log this return IRuntimeSettingsConstants.DEFAULT_FINDER_RETRY_INTERVAL; } /* (non-Javadoc) * @see com.windowtester.runtime.swt.internal.settings.IRuntimeSettings#setFinderInterval(int) */ public void setFinderRetryInterval(int interval) { getCurrent().setFinderRetryInterval(interval); } /* (non-Javadoc) * @see com.windowtester.runtime.swt.internal.settings.IRuntimeSettings#getWaitForContextMenuTimeOut() */ public int getWaitForContextMenuTimeOut() { //work backwards in stack until a valid value is found IRuntimeSettings[] items = _stack.getItems(); for (int i = items.length-1; i >= 0; i--) { int value = items[i].getWaitForContextMenuTimeOut(); if (isSet(value)) return value; } //TODO: log this return IRuntimeSettingsConstants.DEFAULT_CONTEXT_MENU_VISIBLE_TIMEOUT; } /* (non-Javadoc) * @see com.windowtester.runtime.swt.internal.settings.IRuntimeSettings#setWaitForContextMenuTimeOut(int) */ public void setWaitForContextMenuTimeOut(int wait) { getCurrent().setWaitForContextMenuTimeOut(wait); } private boolean isSet(int value) { return value != IRuntimeSettingsConstants.UNSET; } public void push() { _stack.push(); } public void pop() { _stack.pop(); } /* (non-Javadoc) * @see java.lang.Object#toString() */ public String toString() { IRuntimeSettings curr = getCurrent(); return curr == null ? "null" : curr.toString(); } public String getSettingsStackString() { return _stack.toString(); } }