Package musicwriter.controller

Source Code of musicwriter.controller.PartitionPanelMode

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package musicwriter.controller;


import musicwriter.donnees.Histoire;
import musicwriter.donnees.PartitionDonnees;
import musicwriter.donnees.Selection;
import musicwriter.gui.Graphics;
import musicwriter.gui.StyloEsquisse;
import musicwriter.gui.partitionaffichage.PartitionVue;

/**
*
* @author Ancmin
*/
public abstract class PartitionPanelMode {



    /**
* @param evt
* @return true ssi dans l'objet evt (un java.awt.event.MouseEvent ou un
* java.awt.event.KeyEvent) dit qu'il y a une touche Control ou Maj appuyée.
*/
    protected static boolean isClavierToucheSpeciale(Object evt)
    {
        if(evt instanceof ControllerMouseEvent)
        {
            return ((ControllerMouseEvent) evt).isControlDown() ||
                   ((ControllerMouseEvent) evt).isShiftDown();
        }
        else if(evt instanceof ControllerKeyEvent)
            return ((ControllerKeyEvent) evt).isControlDown() ||
                   ((ControllerKeyEvent) evt).isShiftDown();
        else
            return false;
    }






      /**
     *
     * @param evt
     * @return vrai ssi la touche enfoncée correspond à une note saisie ("a" à "h")
     *
     */
    final protected boolean isClavierToucheNoteSaisie(ControllerKeyEvent evt) {
        return ('a' <= evt.getKeyChar()) && (evt.getKeyChar() <= 'g');
    }


    protected static int getNumber(ControllerKeyEvent evt)
    {
        switch(evt.getKeyChar())
        {
            case '1': return 1;
            case '2': return 2;
            case '3': return 3;
            case '4': return 4;
            case '5': return 5;
            case '6': return 6;
            case '7': return 7;
            case '8': return 8;
            case '9': return 9;
            default: return 0;
                  
        }
    }  




    private final Controller controller;

    public Controller getController() {
        return controller;
    }

/**TODO : à nettoyer*/
    public void calculer()
    {
    }



    public PartitionVue getPartitionVue()
    {
        return controller.getPartitionVue();
    }


    public Histoire getHistoire()
    {
        return controller.getHistoire();
    }



    public PartitionDonnees getPartitionDonnees()
    {
        return controller.getPartitionDonnees();
    }

   

    public PartitionPanelMode(Controller controller)
    {
        this.controller = controller;
    }


    protected void modeChanger(PartitionPanelMode mode)
    {
        controller.setMode(mode);
    }


    /**
     * TODO: à mettre dans le contrôleur
     * @param styloEsquisse
     * @return la sélection qui est prise par l'esquisse au
     */
    protected Selection traiterSelectionPolygoneStyloEsquisse(StyloEsquisse styloEsquisse)
    {
        if(styloEsquisse == null)
            return new Selection();

        if(styloEsquisse.isPolygon())
        {
            return getPartitionVue()
                    .getSelectionPolygone(styloEsquisse.getPolygon());
           
        }
        else
            return new Selection();
    }


    abstract public void mouseClicked(ControllerMouseEvent evt);
    abstract public void mousePressed(ControllerMouseEvent evt);
    abstract public void mouseReleased(ControllerMouseEvent evt);
   
    abstract public void mouseDragged(ControllerMouseEvent evt);
    abstract public void mouseMoved(ControllerMouseEvent evt);

    abstract public void keyPressed(ControllerKeyEvent evt);
    abstract public void keyReleased(ControllerKeyEvent evt);
    abstract  public void keyTyped(ControllerKeyEvent evt);
   
    abstract public void paintComponent(Graphics g);

    abstract public void paintComponentAvant(Graphics g);

    void whenQuit() {};

}
TOP

Related Classes of musicwriter.controller.PartitionPanelMode

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.