Package net.alteiar.campaign.player.gui

Source Code of net.alteiar.campaign.player.gui.UiManager

package net.alteiar.campaign.player.gui;

import java.util.Collection;
import java.util.Collections;
import java.util.TreeMap;

import net.alteiar.campaign.player.gui.centerViews.ApplicationView;
import net.alteiar.campaign.player.gui.centerViews.PanelCenter;
import net.alteiar.campaign.player.gui.centerViews.PanelDashboard;
import net.alteiar.campaign.player.gui.centerViews.TabbedPaneListAllBattle;
import net.alteiar.campaign.player.gui.centerViews.settings.PanelSettings;
import net.alteiar.campaign.player.gui.sideView.PanelWest;
import net.alteiar.campaign.player.gui.sideView.SideView;
import net.alteiar.campaign.player.gui.sideView.chat.PanelChatFactory;
import net.alteiar.campaign.player.gui.sideView.combatTraker.PanelCombatTraker;
import net.alteiar.campaign.player.infos.HelpersImages;
import net.alteiar.campaign.player.plugin.PluginSystem;

public class UiManager {

  private static final UiManager INSTANCE = new UiManager();

  public static UiManager getInstance() {
    return INSTANCE;
  }

  private final PanelCenter panelCenter;
  private final PanelWest panelWest;

  private ApplicationView currentView;

  private final TreeMap<String, SideView> sideViews;
  private final TreeMap<String, ApplicationView> centerViews;

  public UiManager() {
    sideViews = new TreeMap<String, SideView>();
    centerViews = new TreeMap<String, ApplicationView>();

    initializeViews();

    panelCenter = new PanelCenter();
    panelWest = new PanelWest(getViews());

    selectView("Accueil");
  }

  public PanelCenter getCenterPanel() {
    return panelCenter;
  }

  public PanelWest getWestPanel() {
    return panelWest;
  }

  private void initializeViews() {
    // Side elements
    SideView chat = new SideView("Chat", PanelChatFactory.buildChatSmall());

    SideView characters = new SideView("Personnages", PluginSystem
        .getInstance().buildSmallCharacterSheet());

    SideView combatTracker = new SideView("Combat", new PanelCombatTraker(
        200));

    addSideView(characters);
    addSideView(chat);
    addSideView(combatTracker);

    // Applications views
    ApplicationView dashBoard = new ApplicationView("Accueil",
        new PanelDashboard(), null);
    dashBoard.addSideView(chat);

    ApplicationView battle = new ApplicationView("Cartes",
        new TabbedPaneListAllBattle(), null);
    battle.addSideView(chat);
    battle.addSideView(characters);
    battle.addSideView(combatTracker);

    ApplicationView settings = new ApplicationView("Paramètres",
        new PanelSettings(), HelpersImages.getIcon("params.png"));
    settings.addSideView(chat);

    addView(dashBoard);
    addView(battle);
    addView(settings);
  }

  private void addView(ApplicationView view) {
    centerViews.put(view.getName(), view);
  }

  private void addSideView(SideView sideElement) {
    sideViews.put(sideElement.getName(), sideElement);
  }

  public Collection<ApplicationView> getViews() {
    return Collections.unmodifiableCollection(centerViews.values());
  }

  public ApplicationView getApplicationView(String name) {
    return centerViews.get(name);
  }

  public SideView getSideView(String name) {
    return sideViews.get(name);
  }

  public ApplicationView getSelectedView() {
    return currentView;
  }

  public void selectView(String view) {
    currentView = centerViews.get(view);

    panelCenter.updateSelectedView(currentView);
    panelWest.updateSelectedView(currentView);
  }
}
TOP

Related Classes of net.alteiar.campaign.player.gui.UiManager

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.