Package org.eclipse.egit.ui.common

Source Code of org.eclipse.egit.ui.common.ExistingOrNewPage$Row

/*******************************************************************************
* Copyright (c) 2010, SAP AG
*
* 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:
*    Stefan Lay (SAP AG) - initial implementation
*******************************************************************************/
package org.eclipse.egit.ui.common;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;

import org.eclipse.egit.ui.internal.UIText;
import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotCheckBox;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;

public class ExistingOrNewPage {

  private static final SWTWorkbenchBot bot = new SWTWorkbenchBot();

  public void setInternalMode(boolean internalMode) {
    SWTBotCheckBox internalModeCheckbox = bot
        .checkBox(UIText.ExistingOrNewPage_InternalModeCheckbox);
    if (!internalMode)
      internalModeCheckbox.deselect();
    else
      internalModeCheckbox.select();
  }

  public SWTBotShell clickCreateRepository() {
    bot.button(UIText.ExistingOrNewPage_CreateRepositoryButton).click();
    return bot.shell(UIText.NewRepositoryWizard_WizardTitle);
  }

  @SuppressWarnings("boxing")
  public void assertEnabling(boolean createRepository, boolean textField,
      boolean finish) {
    assertEquals(createRepository, bot.button("Create Repository")
        .isEnabled());
    assertEquals(textField, bot.text().isEnabled());
    assertEquals(finish, bot.button("Finish").isEnabled());
  }

  public void assertContents(boolean selected, String project, String path,
      String repository, String newRepoPath) {
    assertContents(
        new Row[] { new Row(selected, project, path, repository) },
        newRepoPath);
  }

  public void assertTableContents(String[][] contents) {
    assertEquals(contents.length, bot.table().rowCount());
    for (int i = 0; i < contents.length; i++) {
      String[] testStrings = contents[i];
      assertEquals(testStrings.length, bot.table().columnCount());
      for (int j = 0; j < testStrings.length; j++) {
        assertEquals(testStrings[j], bot.table().cell(i, j));
      }
    }
  }

  public void assertContents(Row[] rows, String newRepoPath) {
    assertContents(rows);
    assertEquals(newRepoPath, bot.text().getText());
  }

  @SuppressWarnings("boxing")
  private void assertContents(Row[] rows) {
    assertEquals(rows.length, bot.tree().rowCount());
    for (int i = 0; i < rows.length; i++) {
      assertEquals(rows[i].isSelected(),
          bot.tree().getAllItems()[i].isChecked());
      assertEquals(rows[i].getProject(), bot.tree().cell(i, 0));
      assertEquals(rows[i].getPath(), bot.tree().cell(i, 1));
      assertEquals(rows[i].getRepository(), bot.tree().cell(i, 2));
      SWTBotTreeItem subteeItems = bot.tree().getAllItems()[i];
      Row[] subrows = rows[i].getSubrows();
      if (subrows != null) {
        assertEquals("Row " + i + " is a tree:", subrows.length,
            subteeItems.getItems().length);
        assertNotNull("Rows " + i + " is not a tree",
            subteeItems.getItems());
        for (int j = 0; j < subrows.length; ++j) {
          Row r = subrows[j];
          assertEquals(r.isSelected(),
              subteeItems.getItems()[j].isChecked());
          assertEquals(r.getProject(), subteeItems.cell(j, 0));
          assertEquals(r.getPath(), subteeItems.cell(j, 1));
          assertEquals(r.getRepository(), subteeItems.cell(j, 2));
        }
      } else
        assertEquals("Row " + i + " is a tree:", 0,
            subteeItems.getItems().length);
    }
  }

  public static class Row {
    private final boolean selected;

    private String project;

    private String path;

    private String repository;

    private final Row[] subrows;

    public Row(boolean selected, String project, String path,
        String repository) {
      this(selected, project, path, repository, null);
    }

    public Row(boolean selected, String project, String path,
        String repository, Row[] subrows) {
      this.selected = selected;
      this.project = project;
      this.path = path;
      this.repository = repository;
      if (subrows != null) {
        this.subrows = new Row[subrows.length];
        System.arraycopy(subrows, 0, this.subrows, 0, subrows.length);
      } else
        this.subrows = null;
    }

    String getProject() {
      return project;
    }

    String getPath() {
      return path;
    }

    String getRepository() {
      return repository;
    }

    Row[] getSubrows() {
      return subrows;
    }

    boolean isSelected() {
      return selected;
    }
  }

  public void setRelativePath(String path) {
    bot.textWithLabel(UIText.ExistingOrNewPage_RelativePathLabel).setText(
        path);
  }
}
TOP

Related Classes of org.eclipse.egit.ui.common.ExistingOrNewPage$Row

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.