Package view

Source Code of view.MemoryFrame

package view;

import model.Constants;
import model.ImageSelector;

import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Layout;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Shell;

import view.listener.CloseButtonListener;
import view.listener.InfoBoxListener;
import view.listener.NewGameButtonListener;
import control.Storage;
import control.Util;

public class MemoryFrame {

  private Display display;
  private Shell shell;
  private int x = Storage.getInstance().getSize();

  public MemoryFrame() {

    display = Display.getCurrent();
    shell = new Shell(display);
    Storage.getInstance().setNewGame(false);
    configureShell();
    keepAlive();
  }

  private void buildContent() {

    ImageSelector.getInstance().buildImages();

    createMenuBar();

    Label currentPlayer = new Label(shell, SWT.NONE);
    GridData data = new GridData(SWT.FILL, SWT.CENTER, true, false, x, 1);
    currentPlayer.setLayoutData(data);

    currentPlayer.setText(Constants.CURRENTPLAYER
        + Storage.getInstance().getPlayerName());

    Storage.getInstance().setCurrentPlayer(currentPlayer);

    for (int i = 0; i < (x * x); i++) {

      new MemoryCard(shell, i);

    }

    Label turnCount = new Label(shell, SWT.NONE);

    turnCount.setText(Constants.CURRENTTURNSCOUNT
        + Storage.getInstance().getTurnsCount());

    Storage.getInstance().setTurnCount(turnCount);

  }

  private void configureShell() {
    shell.setLayout(getShellLayout());
    shell.setText(Constants.MEMORYTITLE);
    buildContent();
    shell.pack();
    Util.centerFrame(shell);
    shell.setVisible(true);
    shell.forceFocus();
  }

  private void createMenuBar() {

    Menu menu = new Menu(shell, SWT.BAR);
    shell.setMenuBar(menu);
    MenuItem fileTitle = new MenuItem(menu, SWT.CASCADE);
    fileTitle.setText(Constants.FILE);

    Menu fileMenu = new Menu(shell, SWT.DROP_DOWN);
    fileTitle.setMenu(fileMenu);

    MenuItem game = new MenuItem(fileMenu, SWT.NULL);
    game.setText(Constants.NEWGAME);
    game.addSelectionListener(new NewGameButtonListener(shell));

    MenuItem exit = new MenuItem(fileMenu, SWT.NULL);
    exit.setText(Constants.CLOSEBUTTONLABEL);
    exit.addSelectionListener(new CloseButtonListener(shell));

    MenuItem infoTitle = new MenuItem(menu, SWT.CASCADE);
    infoTitle.setText(Constants.INFO);

    Menu infoMenu = new Menu(shell, SWT.DROP_DOWN);
    infoTitle.setMenu(infoMenu);

    MenuItem info = new MenuItem(infoMenu, SWT.NULL);
    info.setText(Constants.INFORMATION);
    info.addSelectionListener(new InfoBoxListener());

  }

  private Layout getShellLayout() {
    GridLayout layout = new GridLayout(x, true);
    layout.marginLeft = 10;
    layout.marginRight = 10;
    layout.marginTop = 10;
    layout.marginBottom = 10;
    return layout;
  }

  private void keepAlive() {

    while (!shell.isDisposed()) {
      if (!display.readAndDispatch()) {
        display.sleep();
      }
    }

  }

}
TOP

Related Classes of view.MemoryFrame

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.