/******************************************************************************* * 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; import java.util.ArrayList; import java.util.Iterator; import java.util.List; class SettingsStack { private List _settings = new ArrayList(); // { // //put default settings at bottom of stack // //push(getDefaultSettings()); // } IRuntimeSettings peek() { return (IRuntimeSettings) _settings.get(lastIndex()); } void push() { push(new Settings()); } void push(IRuntimeSettings settings) { _settings.add(settings); //System.out.println(_settings.size()); } IRuntimeSettings pop() { IRuntimeSettings top = (IRuntimeSettings) _settings.get(lastIndex()); _settings.remove(lastIndex()); //System.out.println(_settings.size()); return top; } int lastIndex() { return _settings.size()-1; } IRuntimeSettings[] getItems() { return (IRuntimeSettings[]) _settings.toArray(new IRuntimeSettings[]{}); } public String toString() { StringBuffer sb = new StringBuffer(); sb.append("["); for (Iterator iter = _settings.iterator(); iter.hasNext();) { sb.append(iter.next()); if (iter.hasNext()) sb.append(", "); } sb.append("]"); return sb.toString(); } static class Settings implements IRuntimeSettings { private int _contextClickDelay = IRuntimeSettingsConstants.UNSET; private int _finderRetries = IRuntimeSettingsConstants.UNSET; private int _finderRetryInterval = IRuntimeSettingsConstants.UNSET; private int _contextMenuWait = IRuntimeSettingsConstants.UNSET; // private void initDefaults() { // _contextClickDelay = IRuntimeSettingsConstants.DEFAULT_CONTEXT_CLICK_DELAY; // _finderRetries = IRuntimeSettingsConstants.DEFAULT_FINDER_RETRIES; // _finderRetryInterval = IRuntimeSettingsConstants.DEFAULT_FINDER_RETRY_INTERVAL; // _contextMenuWait = IRuntimeSettingsConstants.DEFAULT_CONTEXT_MENU_VISIBLE_TIMEOUT; // } public int getPreContextClickDelay() { return _contextClickDelay; } public void setPreContextClickDelay(int ms) { _contextClickDelay = ms; } public int getFinderRetries() { return _finderRetries; } public void setFinderRetries(int numberOfRetries) { _finderRetries = numberOfRetries; } public int getFinderRetryInterval() { return _finderRetryInterval; } public void setFinderRetryInterval(int interval) { _finderRetryInterval = interval; } public int getWaitForContextMenuTimeOut() { return _contextMenuWait; } public void setWaitForContextMenuTimeOut(int wait) { _contextMenuWait = wait; } /* (non-Javadoc) * @see java.lang.Object#toString() */ public String toString() { StringBuffer sb = new StringBuffer(); sb.append("Settings ("); sb.append("context-click delay: ").append(_contextClickDelay); sb.append(", finder retries: ").append(_finderRetries); sb.append(", finder interval: ").append(_finderRetryInterval); sb.append(")"); return sb.toString(); } } // private static IRuntimeSettings getDefaultSettings() { // Settings settings = new Settings(); // settings.initDefaults(); // return settings; // } }