Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Create a java test case for SolitaireLayout which is part of a FourRowSolitaire

ID: 3693053 • Letter: C

Question

Create a java test case for SolitaireLayout which is part of a FourRowSolitaire program. Below is the code for SolitaireLayout:

/*
    This file is a part of Four Row Solitaire

    Copyright (C) 2010 by Matt Stephen

    Four Row Solitaire is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    Four Row Solitaire is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with FourRowSolitaire. If not, see <http://www.gnu.org/licenses/>.
*/

package FourRowSolitaire;

import java.awt.*;

/**
* Class: SolitaireLayout
*
* Description: The SolitaireLayout class manages the layout for the Solitaire board.
*
* @author Matt Stephen
*/
public class SolitaireLayout implements LayoutManager
{
    public static final String COLUMN_ONE = "Column One";
    public static final String COLUMN_TWO = "Column Two";
    public static final String COLUMN_THREE = "Column Three";
    public static final String COLUMN_FOUR = "Column Four";

    public static final String SPADES_ACE_PILE = "Spaces Ace Pile";
    public static final String CLUBS_ACE_PILE = "Clubs Ace Pile";
    public static final String DIAMONDS_ACE_PILE = "Diamonds Ace Pile";
    public static final String HEARTS_ACE_PILE = "Hears Ace Pile";

    public static final String DISCARD_PILE = "Discard Pile";
    public static final String DECK = "Deck";

    public static final String CELL_ONE = "Cell One";
    public static final String CELL_TWO = "Cell Two";
    public static final String CELL_THREE = "Cell Three";
    public static final String CELL_FOUR = "Cell Four";

    private Component colOne;
    private Component colTwo;
    private Component colThree;
    private Component colFour;

    private Component aceSpades;
    private Component aceClubs;
    private Component aceDiamonds;
    private Component aceHearts;

    private Component discardPile;
    private Component deck;

    private Component cellOne;
    private Component cellTwo;
    private Component cellThree;
    private Component cellFour;

    public SolitaireLayout() {}

    public void addLayoutComponent(String name,Component comp)
    {
        if(name.equals(COLUMN_ONE))
        {
            colOne = comp;
        }
        else if(name.equals(COLUMN_TWO))
        {
            colTwo = comp;
        }
        else if(name.equals(COLUMN_THREE))
        {
            colThree = comp;
        }
        else if(name.equals(COLUMN_FOUR))
        {
            colFour = comp;
        }

        else if(name.equals(SPADES_ACE_PILE))
        {
            aceSpades = comp;
        }
        else if(name.equals(CLUBS_ACE_PILE))
        {
            aceClubs = comp;
        }
        else if(name.equals(DIAMONDS_ACE_PILE))
        {
            aceDiamonds = comp;
        }
        else if(name.equals(HEARTS_ACE_PILE))
        {
            aceHearts = comp;
        }

        else if(name.equals(DISCARD_PILE))
        {
            discardPile = comp;
        }
        else if(name.equals(DECK))
        {
            deck = comp;
        }

        else if(name.equals(CELL_ONE))
        {
            cellOne = comp;
        }
        else if(name.equals(CELL_TWO))
        {
            cellTwo = comp;
        }
        else if(name.equals(CELL_THREE))
        {
            cellThree = comp;
        }
        else if(name.equals(CELL_FOUR))
        {
            cellFour = comp;
        }
    }

    public void removeLayoutComponent(Component comp)
    {
        if(colOne == comp)
        {
            colOne = null;
        }
        else if(colTwo == comp)
        {
            colTwo = null;
        }
        else if(colThree == comp)
        {
            colThree = null;
        }
        else if(colFour == comp)
        {
            colFour = null;
        }

        else if(aceSpades == comp)
        {
            aceSpades = null;
        }
        else if(aceClubs == comp)
        {
            aceClubs = null;
        }
        else if(aceDiamonds == comp)
        {
            aceDiamonds = null;
        }
        else if(aceHearts == comp)
        {
            aceHearts = null;
        }

        else if(discardPile == comp)
        {
            discardPile = null;
        }
        else if(deck == comp)
        {
            deck = null;
        }

        else if(cellOne == comp)
        {
            cellOne = null;
        }
        else if(cellTwo == comp)
        {
            cellTwo = null;
        }
        else if(cellThree == comp)
        {
            cellThree = null;
        }
        else if(cellFour == comp)
        {
            cellFour = null;
        }
    }

    public Dimension preferredLayoutSize(Container parent)
    {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public Dimension minimumLayoutSize(Container parent)
    {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public void layoutContainer(Container parent)
    {
        Component comp;

        if((comp = colOne) != null)
        {
        comp.setBounds(81,115,72,800);
        }
        if((comp = colTwo) != null)
        {
        comp.setBounds(164,115,72,800);
        }
        if((comp = colThree) != null)
        {
        comp.setBounds(247,115,72,800);
        }
        if((comp = colFour) != null)
        {
        comp.setBounds(330,115,72,800);
        }

        if((comp = aceSpades) != null)
        {
        comp.setBounds(568,3,72,96);
        }
        if((comp = aceClubs) != null)
        {
        comp.setBounds(650,3,72,96);
        }
        if((comp = aceDiamonds) != null)
        {
        comp.setBounds(568,110,72,96);
        }
        if((comp = aceHearts) != null)
        {
        comp.setBounds(650,110,72,96);
        }

        if((comp = discardPile) != null)
        {
        comp.setBounds(650,318,72,96);
        }
        if((comp = deck) != null)
        {
        comp.setBounds(568,318,72,96);
        }

        if((comp = cellOne) != null)
        {
        comp.setBounds(81,3,72,96);
        }
        if((comp = cellTwo) != null)
        {
        comp.setBounds(164,3,72,96);
        }
        if((comp = cellThree) != null)
        {
        comp.setBounds(247,3,72,96);
        }
        if((comp = cellFour) != null)
        {
        comp.setBounds(330,3,72,96);
        }
    }
}

Explanation / Answer

import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.LayoutManager;

/**
* Class: SolitaireLayout
*
* Description: The SolitaireLayout class manages the layout for the Solitaire
* board.
*
*/
class SolitaireLayout implements LayoutManager {

   /**
   * Names of columns.
   *
   * Column One.
   */
   public static final String COLUMN_ONE = "Column One";

   /**
   * Column Two.
   */
   public static final String COLUMN_TWO = "Column Two";

   /**
   * Column Three.
   */
   public static final String COLUMN_THREE = "Column Three";

   /**
   * Column Four.
   */
   public static final String COLUMN_FOUR = "Column Four";

   /**
   * Spaces Ace Pile.
   */
   public static final String SPADES_ACE_PILE = "Spaces Ace Pile";

   /**
   * Clubs Ace Pile.
   */
   public static final String CLUBS_ACE_PILE = "Clubs Ace Pile";

   /**
   * Diamonds Ace Pile.
   */
   public static final String DIAMONDS_ACE_PILE = "Diamonds Ace Pile";

   /**
   * Hears Ace Pile.
   */
   public static final String HEARTS_ACE_PILE = "Hears Ace Pile";

   /**
   * Discard Pile.
   */
   public static final String DISCARD_PILE = "Discard Pile";

   /**
   * Deck.
   */
   public static final String DECK = "Deck";

   /**
   * Cell One.
   */
   public static final String CELL_ONE = "Cell One";

   /**
   * Cell Two.
   */
   public static final String CELL_TWO = "Cell Two";

   /**
   * Cell Three.
   */
   public static final String CELL_THREE = "Cell Three";

   /**
   * Cell Four.
   */
   public static final String CELL_FOUR = "Cell Four";

   /**
   * Column components. Column one.
   */
   private Component colOne;

   /**
   * Column Two.
   */
   private Component colTwo;

   /**
   * Column Three.
   */
   private Component colThree;

   /**
   * Column Four.
   */
   private Component colFour;

   /**
   * Spades Ace Pile.
   */
   private Component aceSpades;

   /**
   * Clubs Ace Pile.
   */
   private Component aceClubs;

   /**
   * Diamonds Ace Pile.
   */
   private Component aceDiamonds;

   /**
   * Hearts Ace Pile.
   */
   private Component aceHearts;

   /**
   * Discard Pile.
   */
   private Component discardPile;

   /**
   * Deck.
   */
   private Component deck;

   /**
   * Cell One.
   */
   private Component cellOne;

   /**
   * Cell Two.
   */
   private Component cellTwo;

   /**
   * Cell Three.
   */
   private Component cellThree;

   /**
   * Cell Four.
   */
   private Component cellFour;

   /**
   * Adds components (cards) to the board. The user can interact with the
   * cards.
   *
   * @param name
   *            Component name.
   *
   */
   public void addLayoutComponent(String name, Component component) {
       if (name.equals(COLUMN_ONE)) {
           colOne = component;
       } else if (name.equals(COLUMN_TWO)) {
           colTwo = component;
       } else if (name.equals(COLUMN_THREE)) {
           colThree = component;
       } else if (name.equals(COLUMN_FOUR)) {
           colFour = component;
       }

       else if (name.equals(SPADES_ACE_PILE)) {
           aceSpades = component;
       } else if (name.equals(CLUBS_ACE_PILE)) {
           aceClubs = component;
       } else if (name.equals(DIAMONDS_ACE_PILE)) {
           aceDiamonds = component;
       } else if (name.equals(HEARTS_ACE_PILE)) {
           aceHearts = component;
       }

       else if (name.equals(DISCARD_PILE)) {
           discardPile = component;
       } else if (name.equals(DECK)) {
           deck = component;
       }

       else if (name.equals(CELL_ONE)) {
           cellOne = component;
       } else if (name.equals(CELL_TWO)) {
           cellTwo = component;
       } else if (name.equals(CELL_THREE)) {
           cellThree = component;
       } else if (name.equals(CELL_FOUR)) {
           cellFour = component;
       }
   }

   /**
   * Removes a component from the game board.
   *
   */
   public void removeLayoutComponent(Component component) {
       if (colOne == component) {
           colOne = null;
       } else if (colTwo == component) {
           colTwo = null;
       } else if (colThree == component) {
           colThree = null;
       } else if (colFour == component) {
           colFour = null;
       }

       else if (aceSpades == component) {
           aceSpades = null;
       } else if (aceClubs == component) {
           aceClubs = null;
       } else if (aceDiamonds == component) {
           aceDiamonds = null;
       } else if (aceHearts == component) {
           aceHearts = null;
       }

       else if (discardPile == component) {
           discardPile = null;
       } else if (deck == component) {
           deck = null;
       }

       else if (cellOne == component) {
           cellOne = null;
       } else if (cellTwo == component) {
           cellTwo = null;
       } else if (cellThree == component) {
           cellThree = null;
       } else if (cellFour == component) {
           cellFour = null;
       }
   }

   /**
   * Implemented, unsupported function.
   *
  
   */
   public Dimension preferredLayoutSize(Container parent) {
       throw new UnsupportedOperationException("Not supported yet.");
   }

   /**
   * Implemented, unsupported function.
   *
   */
   public Dimension minimumLayoutSize(Container parent) {
       throw new UnsupportedOperationException("Not supported yet.");
   }

   /**
   * Sets the component's (card's) bounds by x and y and sets their width and
   * height.
   *
  
   */
   public void layoutContainer(Container parent) {
       Component component;

       if ((component = colOne) != null) {
           component.setBounds(95, 151, 72, 800);
       }
       if ((component = colTwo) != null) {
           component.setBounds(191, 151, 72, 800);
       }
       if ((component = colThree) != null) {
           component.setBounds(287, 151, 72, 800);
       }
       if ((component = colFour) != null) {
           component.setBounds(383, 151, 72, 800);
       }

       if ((component = aceSpades) != null) {
           component.setBounds(568, 31, 72, 96);
       }
       if ((component = aceClubs) != null) {
           component.setBounds(664, 31, 72, 96);
       }
       if ((component = aceDiamonds) != null) {
           component.setBounds(568, 149, 72, 96);
       }
       if ((component = aceHearts) != null) {
           component.setBounds(664, 149, 72, 96);
       }

       if ((component = discardPile) != null) {
           component.setBounds(664, 333, 102, 96);
       }
       if ((component = deck) != null) {
           component.setBounds(568, 333, 72, 96);
       }

       if ((component = cellOne) != null) {
           component.setBounds(95, 31, 72, 96);
       }
       if ((component = cellTwo) != null) {
           component.setBounds(191, 31, 72, 96);
       }
       if ((component = cellThree) != null) {
           component.setBounds(287, 31, 72, 96);
       }
       if ((component = cellFour) != null) {
           component.setBounds(383, 31, 72, 96);
       }
   }
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote