Package transientlibs.preui.objects.states

Source Code of transientlibs.preui.objects.states.StateElementManager

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package transientlibs.preui.objects.states;

import transientlibs.processors.misc.Detonator;
import transientlibs.preui.objects.gui.elements.ButtonGroup;
import transientlibs.preui.objects.gui.interfaces.IFont;
import transientlibs.preui.objects.gui.interfaces.IImage;
import transientlibs.preui.objects.gui.interfaces.IMarker;
import transientlibs.preui.objects.gui.elements.InfoGroup;
import transientlibs.preui.objects.gui.elements.Marker;
import transientlibs.preui.objects.gui.elements.Menu;
import transientlibs.preui.objects.gui.elements.TextInfo;
import transientlibs.preui.objects.gui.elements.TextMarker;
import transientlibs.preui.objects.gui.misc.RenderList;

/**
*
* @author kibertoad
*/
public class StateElementManager {

    private IState state;

    public StateElementManager(IState setState) {
        state = setState;
    }

    public void passGroup(ButtonGroup group) {
        group.currentState = state;
        Menu.LastMenu = group;
        passMarker(group);
    }

    public TextMarker addTextMarker(int setx, int sety, String setText) {
        TextMarker.lastTextMarker = new TextMarker(null, null, setx, sety, -1);
        TextMarker.lastTextMarker.setFont(state.getTextFont());
        TextMarker.lastTextMarker.setText(setText);

        TextMarker.lastTextMarker.imageWidth = TextMarker.lastTextMarker.textWidth();
        TextMarker.lastTextMarker.imageHeight = TextMarker.lastTextMarker.textHeight();

        state.getDrawStorage().add(TextMarker.lastTextMarker);
        state.getHoverStorage().add(TextMarker.lastTextMarker);

        TextMarker.lastTextMarker.maximizeCompositionPriority(state.getHoverStorage());

        return TextMarker.lastTextMarker;
    }

    public void removeFromDrawStorage(RenderList r) {

        for (IMarker m : r.markers) {
            if (state.getDrawStorage().contains(m)) {
                state.getDrawStorage().remove(m);
            }
        }

        for (Menu m2 : r.menus) {
            if (state.getDrawStorage().contains(m2)) {
                state.getDrawStorage().remove(m2);
            }
        }


    }

    void removeFromHoverStorage(RenderList r) {

        for (IMarker m : r.markers) {
            if (state.getHoverStorage().contains(m)) {
                state.getHoverStorage().remove(m);
            }
        }

        for (Menu m2 : r.menus) {
            if (state.getHoverStorage().contains(m2)) {
                state.getHoverStorage().remove(m2);
            }
        }
    }

    public void removeChildrenFromDrawStorage(Menu m) {

        for (IMarker m2 : m.elements) {
            if (state.getDrawStorage().contains(m2)) {
                state.getDrawStorage().remove(m2);
            }
        }
    }

    public InfoGroup addInfoGroup(int setX, int setY) {

        InfoGroup.lastInfoGroup = new InfoGroup(setX, setY, state.getButtonFont(), state);

        passMarker(InfoGroup.lastInfoGroup);

        return InfoGroup.lastInfoGroup;
    }

    public IMarker addTextMarker(IFont setFont, IImage setImage, IImage setHoveredImage, String setText, int setX, int setY, int setID) {
        state.getDrawStorage().add(new TextMarker(setImage, setHoveredImage, setX, setY, setID));

        TextMarker.lastTextMarker = (TextMarker) state.getDrawStorage().get((state.getDrawStorage().size() - 1));
        state.getHoverStorage().add(0, TextMarker.lastTextMarker);

        TextMarker.lastTextMarker.textCapsule.text = setText;
        TextMarker.lastTextMarker.setFont(setFont); //also rewraps

        return TextMarker.lastTextMarker;
    }

    public void passMarker(IMarker marker) {
        state.getHoverStorage().add(0, marker);
        state.getDrawStorage().add(marker);
    }

    void passMarkerHoverOnly(IMarker marker) {
        if (!(state.getHoverStorage().contains(marker))) {
            state.getHoverStorage().add(0, marker);
        }

    }

    public void storeInfo() {
    }

    public TextInfo addInfo(int x, int y, String setText) {
        return addInfo(x, y, setText, state.getTextFont());
    }

    public TextInfo addInfo(int x, int y, String setText, IFont setFont) {

        state.getDrawStorage().add(new TextInfo(x, y, setText, -1, setFont));

        TextMarker.lastTextMarker = (TextMarker) state.getDrawStorage().get((state.getDrawStorage()).size() - 1);
        state.getHoverStorage().add(TextMarker.lastTextMarker);


        return (TextInfo) TextMarker.lastTextMarker;
    }

    public ButtonGroup addGroup(int setX, int setY, IImage setImage, IFont font) {

        ButtonGroup.lastButtonGroup = new ButtonGroup(setX, setY, setImage, font, state);
        Menu.LastMenu = ButtonGroup.lastButtonGroup;

        passMarker(ButtonGroup.lastButtonGroup);

        return ButtonGroup.lastButtonGroup;
    }

    ButtonGroup addGroup(int x, int y) {
        return addGroup(x, y, null, state.getButtonFont());
    }

    public IMarker addMarker(IImage setImage, IImage setHoveredImage, int setX, int setY) {
        state.getDrawStorage().add(new Marker(setImage, setHoveredImage, setX, setY));

        Marker.lastMarker = state.getDrawStorage().get((state.getDrawStorage().size() - 1));
        state.getHoverStorage().add(0, TextMarker.lastMarker);

        return Marker.lastMarker;
    }

    void removeFromDrawStorage(IMarker m) {

        if (state.getDrawStorage().contains(m)) {
            state.getDrawStorage().remove(m);
        }

    }

    void passMarkerMinorHoverOnly(IMarker passedMarker) {
        state.getMinorHoverStorage().add(passedMarker);
    }
}
TOP

Related Classes of transientlibs.preui.objects.states.StateElementManager

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.