Package gov.nasa.arc.mct.test.util.gui

Source Code of gov.nasa.arc.mct.test.util.gui.Query

/*******************************************************************************
* Mission Control Technologies, Copyright (c) 2009-2012, United States Government
* as represented by the Administrator of the National Aeronautics and Space
* Administration. All rights reserved.
*
* The MCT platform is licensed under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0.
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*
* MCT includes source code licensed under additional open source licenses. See
* the MCT Open Source Licenses file included with this distribution or the About
* MCT Licenses dialog available at runtime from the MCT Help menu for additional
* information.
*******************************************************************************/
package gov.nasa.arc.mct.test.util.gui;


import java.awt.Component;
import java.awt.Dialog;
import java.awt.Frame;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JRadioButton;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JSlider;
import javax.swing.JSpinner;
import javax.swing.JSplitPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.JToggleButton;
import javax.swing.JToolBar;
import javax.swing.JTree;
import javax.swing.text.JTextComponent;

import org.fest.swing.core.GenericTypeMatcher;
import org.fest.swing.finder.DialogFinder;
import org.fest.swing.finder.FrameFinder;
import org.fest.swing.finder.WindowFinder;
import org.fest.swing.fixture.ComponentContainerFixture;
import org.fest.swing.fixture.DialogFixture;
import org.fest.swing.fixture.FrameFixture;
import org.fest.swing.fixture.JButtonFixture;
import org.fest.swing.fixture.JCheckBoxFixture;
import org.fest.swing.fixture.JComboBoxFixture;
import org.fest.swing.fixture.JFileChooserFixture;
import org.fest.swing.fixture.JLabelFixture;
import org.fest.swing.fixture.JListFixture;
import org.fest.swing.fixture.JMenuItemFixture;
import org.fest.swing.fixture.JPanelFixture;
import org.fest.swing.fixture.JPopupMenuFixture;
import org.fest.swing.fixture.JProgressBarFixture;
import org.fest.swing.fixture.JRadioButtonFixture;
import org.fest.swing.fixture.JScrollBarFixture;
import org.fest.swing.fixture.JScrollPaneFixture;
import org.fest.swing.fixture.JSliderFixture;
import org.fest.swing.fixture.JSpinnerFixture;
import org.fest.swing.fixture.JSplitPaneFixture;
import org.fest.swing.fixture.JTabbedPaneFixture;
import org.fest.swing.fixture.JTableFixture;
import org.fest.swing.fixture.JTextComponentFixture;
import org.fest.swing.fixture.JToggleButtonFixture;
import org.fest.swing.fixture.JToolBarFixture;
import org.fest.swing.fixture.JTreeFixture;

public class Query extends GenericTypeMatcher<Component> {
 
  List<Criterion> criteria = new ArrayList<Criterion>();
  Integer timeoutInSeconds;

  public Query() {
    super(Component.class);
  }
 
  public Query withTimeout(int timeoutInSeconds) {
    this.timeoutInSeconds = Integer.valueOf(timeoutInSeconds);
    return this;
  }
 
  public Query text(String text) {
    criteria.add(new PropertyCriterion("text", text, false));
    return this;
  }
 
  public Query textMatches(String text) {
    criteria.add(new PropertyCriterion("text", text, true));
    return this;
  }
 
  public Query title(String text) {
    criteria.add(new PropertyCriterion("title", text, false));
    return this;
  }
 
  public Query titleMatches(String text) {
    criteria.add(new PropertyCriterion("title", text, true));
    return this;
  }
 
  public Query name(String text) {
    criteria.add(new PropertyCriterion("name", text, false));
    return this;
  }
 
  public Query visible(boolean b) {
    criteria.add(new VisibilityCriterion(b));
    return this;
  }
 
  public Query enabled(boolean b) {
    criteria.add(new EnabledCriterion(b));
    return this;
  }
 
  public Query toolTip(String text) {
    criteria.add(new PropertyCriterion("toolTipText", text, false));
    return this;
  }
 
  public Query toolTipMatches(String text) {
    criteria.add(new PropertyCriterion("toolTipText", text, true));
    return this;
  }
 
  public Query accessibleName(String text) {
    criteria.add(new AccessiblePropertyCriterion("accessibleName", text, false));
    return this;
  }
 
  public Query accessibleNameMatches(String text) {
    criteria.add(new AccessiblePropertyCriterion("accessibleName", text, true));
    return this;
  }
 
  public Query accessibleDescription(String text) {
    criteria.add(new AccessiblePropertyCriterion("accessibleDescription", text, false));
    return this;
  }
 
  public Query accessibleDescriptionMatches(String text) {
    criteria.add(new AccessiblePropertyCriterion("accessibleDescription", text, true));
    return this;
  }
 
  public Query property(String propertyName, String value) {
    criteria.add(new PropertyCriterion(propertyName, value, false));
    return this;
  }
 
  public Query propertyMatches(String propertyName, String value) {
    criteria.add(new PropertyCriterion(propertyName, value, true));
    return this;
  }
 
  public <T extends Component> Query when(GenericTypeMatcher<T> matcher) {
    criteria.add(new GenericMatcherCriterion<T>(matcher));
    return this;
  }
 
  public JTabbedPaneWrapper tabbedPaneIn(ComponentContainerFixture fixture) {
    assert fixture != null;
    JTabbedPaneFixture tabbedPaneFixture = fixture.tabbedPane(new QueryMatcher<JTabbedPane>(JTabbedPane.class, this));
    return new JTabbedPaneWrapper(tabbedPaneFixture.robot, tabbedPaneFixture.component());
  }
 
  public JTreeWrapper treeIn(ComponentContainerFixture fixture) {
    assert fixture != null;
    JTreeFixture treeFixture = fixture.tree(new QueryMatcher<JTree>(JTree.class, this));
    return new JTreeWrapper(treeFixture.robot, treeFixture.component());
  }
 
  public JTableFixture tableIn(ComponentContainerFixture fixture) {
    assert fixture != null;
    return fixture.table(new QueryMatcher<JTable>(JTable.class, this));
  }
 
  public JListFixture listIn(ComponentContainerFixture fixture) {
    assert fixture != null;
    return fixture.list(new QueryMatcher<JList>(JList.class, this));
  }
 
  public JLabelFixture labelIn(ComponentContainerFixture fixture) {
    assert fixture != null;
    return fixture.label(new QueryMatcher<JLabel>(JLabel.class, this));
  }
 
  public JButtonFixture buttonIn(ComponentContainerFixture fixture) {
    assert fixture != null;
    return fixture.button(new QueryMatcher<JButton>(JButton.class, this));
  }
 
  public JCheckBoxFixture checkBoxIn(ComponentContainerFixture fixture) {
    assert fixture != null;
    return fixture.checkBox(new QueryMatcher<JCheckBox>(JCheckBox.class, this));
  }
 
  public JRadioButtonFixture radioButtonIn(ComponentContainerFixture fixture) {
    assert fixture != null;
    return fixture.radioButton(new QueryMatcher<JRadioButton>(JRadioButton.class, this));
  }
 
  public JToggleButtonFixture toggleButtonIn(ComponentContainerFixture fixture) {
    assert fixture != null;
    return fixture.toggleButton(new QueryMatcher<JToggleButton>(JToggleButton.class, this));
  }
 
  public JToolBarFixture toolBarIn(ComponentContainerFixture fixture) {
    assert fixture != null;
    return fixture.toolBar(new QueryMatcher<JToolBar>(JToolBar.class, this));
  }
 
  public JComboBoxFixture comboBoxIn(ComponentContainerFixture fixture) {
    assert fixture != null;
    return fixture.comboBox(new QueryMatcher<JComboBox>(JComboBox.class, this));
  }
 
  public JTextComponentFixture textBoxIn(ComponentContainerFixture fixture) {
    assert fixture != null
    return fixture.textBox(new QueryMatcher<JTextComponent>(JTextComponent.class, this));
  }
 
  public JPanelFixture panelIn(ComponentContainerFixture fixture) {
    assert fixture != null;
    return fixture.panel(new QueryMatcher<JPanel>(JPanel.class, this));
  }
 
  public JProgressBarFixture progressBarIn(ComponentContainerFixture fixture) {
    assert fixture != null;
    return fixture.progressBar(new QueryMatcher<JProgressBar>(JProgressBar.class, this));
  }
 
  public JScrollBarFixture scrollBarIn(ComponentContainerFixture fixture) {
    assert fixture != null;
    return fixture.scrollBar(new QueryMatcher<JScrollBar>(JScrollBar.class, this));
  }
 
  public JScrollPaneFixture scrollPaneIn(ComponentContainerFixture fixture) {
    assert fixture != null;
    return fixture.scrollPane(new QueryMatcher<JScrollPane>(JScrollPane.class, this));
  }
 
  public JSliderFixture sliderIn(ComponentContainerFixture fixture) {
    assert fixture != null;
    return fixture.slider(new QueryMatcher<JSlider>(JSlider.class, this));
  }
 
  public JSpinnerFixture spinnerIn(ComponentContainerFixture fixture) {
    assert fixture != null;
    return fixture.spinner(new QueryMatcher<JSpinner>(JSpinner.class, this));
  }
 
  public JSplitPaneFixture splitPaneIn(ComponentContainerFixture fixture) {
    assert fixture != null;
    return fixture.splitPane(new QueryMatcher<JSplitPane>(JSplitPane.class, this));
  }
 
  public JFileChooserFixture fileChooserIn(ComponentContainerFixture fixture) {
    assert fixture != null;
    return fixture.fileChooser(new QueryMatcher<JFileChooser>(JFileChooser.class, this));
  }
 
  public JMenuItemFixture menuItemIn(ComponentContainerFixture fixture) {
    assert fixture != null;
    return fixture.menuItem(new QueryMatcher<JMenuItem>(JMenuItem.class, this));
  }
 
  public JMenuItemFixture menuItemIn(JPopupMenuFixture fixture) {
    assert fixture != null;
    return fixture.menuItem(new QueryMatcher<JMenuItem>(JMenuItem.class, this));
  }
 
  public FrameFixture findFrame() {
    FrameFinder finder = WindowFinder.findFrame(new QueryMatcher<Frame>(Frame.class, this));
    if (timeoutInSeconds != null) {
      finder = finder.withTimeout(timeoutInSeconds.intValue(), TimeUnit.SECONDS);
    }
    return finder.using(TestUtils.getRobot());
  }
 
  public DialogFixture findDialog() {
    DialogFinder finder = WindowFinder.findDialog(new QueryMatcher<Dialog>(Dialog.class, this));
    if (timeoutInSeconds != null) {
      finder = finder.withTimeout(timeoutInSeconds.intValue(), TimeUnit.SECONDS);
    }
    return finder.using(TestUtils.getRobot());
  }
 
  @Override
  protected boolean isMatching(Component component) {
    for (Criterion criterion : criteria) {
      if (!criterion.satisfies(component)) {
        return false;
      }
    }
   
    return true;
  }
 
  public String criteriaToString() {
    StringBuffer s = new StringBuffer();
    for (Criterion criterion : criteria) {
      if (s.length() > 0) {
        s.append(',');
      }
      s.append(criterion.toString());
    }
   
    return s.toString();
  }
 
}
TOP

Related Classes of gov.nasa.arc.mct.test.util.gui.Query

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.