⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uispectoolkit.java

📁 基于Junit的 功能和单元测试的的测试工具。只支持Swing.
💻 JAVA
字号:
package org.uispec4j.interception.toolkit;

import org.uispec4j.UISpec4J;

import javax.swing.*;
import java.awt.*;
import java.awt.peer.*;

/**
 * Mock toolkit used for intercepting displayed frames and dialogs.<p>
 * You can set it up by calling the {@link #setUp()} method.
 *
 * @see <a href="http://www.uispec4j.org/interception.html">Intercepting windows</a>
 */
public class UISpecToolkit extends ToolkitDelegate {
  static final String SYSTEM_PROPERTY = "awt.toolkit";
  static final String UNIX_SYSTEM_DEFAULT_VALUE = "sun.awt.motif.MToolkit";
  static final String WINDOWS_SYSTEM_DEFAULT_VALUE = "sun.awt.windows.WToolkit";

  private static String awtToolkit;

  public UISpecToolkit() {
    setUp();
  }

  /**
   * @see UISpec4J#init
   * @deprecated Do not call this one directly anymore - use {@link UISpec4J#init} instead
   */
  public static void setUp() {
    if (underlyingToolkit != null) {
      return;
    }
    awtToolkit = System.getProperty(SYSTEM_PROPERTY);
    if (awtToolkit == null) {
      setAwtToolkitProperty();
    }
    buildUnderlyingToolkit(awtToolkit);
    System.setProperty(SYSTEM_PROPERTY, UISpecToolkit.class.getName());
  }

  /**
   * Sets the <code>awt.toolkit</code> to its initial value.
   * <p>This method will only work properly if the toolkit has not yet been instanciated by Swing.
   */
  public static void restoreAwtToolkit() {
    System.setProperty(SYSTEM_PROPERTY, awtToolkit);
  }

  public static UISpecToolkit instance() {
    Toolkit defaultToolkit = Toolkit.getDefaultToolkit();
    if (!(defaultToolkit instanceof UISpecToolkit)) {
      fail("You must call UISpec4J.init() before using it");
    }
    return (UISpecToolkit)defaultToolkit;
  }

  protected LightweightPeer createComponent(Component target) {
    if (target instanceof JPopupMenu) {
      UISpecDisplay.instance().setCurrentPopup((JPopupMenu)target);
    }
    return super.createComponent(target);
  }

  public FramePeer createFrame(Frame target) {
    return new UISpecFramePeer(target);
  }

  public DialogPeer createDialog(Dialog target) throws HeadlessException {
    if (!(target instanceof JDialog)) {
      throw new InterceptionInternalError("Dialogs of type '"
                                          + target.getClass().getName() + "' are not supported.");
    }
    return new UISpecDialogPeer((JDialog)target);
  }

  public WindowPeer createWindow(Window target) throws HeadlessException {
    return new UISpecWindowPeer(target);
  }

  public CanvasPeer createCanvas(Canvas target) {
    return Empty.NULL_CANVAS_PEER;
  }

  public PanelPeer createPanel(Panel target) {
    return Empty.NULL_PANEL_PEER;
  }

  public RobotPeer createRobot(Robot robot, GraphicsDevice device) throws AWTException, HeadlessException {
    return Empty.NULL_ROBOT;
  }

  private static void fail(String msg) {
    throw new InterceptionInternalError(msg);
  }

  private static void setAwtToolkitProperty() {
    try {
      Class.forName(WINDOWS_SYSTEM_DEFAULT_VALUE);
      awtToolkit = WINDOWS_SYSTEM_DEFAULT_VALUE;
    }
    catch (ClassNotFoundException e) {
      try {
        Class.forName(UNIX_SYSTEM_DEFAULT_VALUE);
        awtToolkit = UNIX_SYSTEM_DEFAULT_VALUE;
      }
      catch (ClassNotFoundException e1) {
        throw new AWTError("Unable to locate AWT Toolkit");
      }
    }
  }

  private static void buildUnderlyingToolkit(String awtToolkit) {
    try {
      underlyingToolkit = (Toolkit)Class.forName(awtToolkit).newInstance();
    }
    catch (Exception e) {
      throw new AWTError("Unable to load AWT Toolkit: " + awtToolkit + " - "
                         + e.getLocalizedMessage());
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -