Skip to content
Snippets Groups Projects
ShukanParameters.java 9.97 KiB
package shukan;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/** parameters of Shukan */
class ShukanParameters extends JFrame {
    /** panels of the graphic interface */
    private JPanel pPrincipal,p, p1, p2;
    /** buttons of the graphic interface */
    private JButton changerdetheme, theme1, theme2, theme3, retour, para;
    /** view of the app */
    private ShukanView canvas;
    /** Color background, text, hollydays*/
    private Color BACK_COLOR, BACK_COLOR2, TEXT_COLOR, HOLLY_COLOR, INACTIVE_COLOR; 
    /** Number of modules to display */
    private int nbModules = STD_MODULES_NUMBER;
    /** Standard number of modules */
    private final static int STD_MODULES_NUMBER = 14;   
    /**Labels for the shortcuts */
    private JLabel Labq, Labl, Labm, LabLO, LabMP, Lableft, Labright, LabE, LabX;


    /** built a parameter window */
    public ShukanParameters(String titre, ShukanView canvas) {
        super(titre);
        this.canvas = canvas;
        p = new JPanel(new GridBagLayout());
        GridBagConstraints gbcprinc = new GridBagConstraints();


        p1 = new JPanel(new GridBagLayout());
        GridBagConstraints gbc = new GridBagConstraints();

        changerdetheme = new JButton("Changer de thème");
        changerdetheme.setPreferredSize(new Dimension(190, 25));
        
        changerdetheme.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                remove(pPrincipal);
                validate();
                repaint();

                gbc.insets = new Insets(10, 10, 10, 10);

                theme1 = new JButton("Thème sombre");
                theme1.setPreferredSize(new Dimension(150, 25));
                theme1.addActionListener(new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent e) {
                        for(int i = 0; i <= 6; i++){
                            BACK_COLOR = new Color(51,51,51);
                            BACK_COLOR2 = new Color(102,102,102);
                            TEXT_COLOR = Color.WHITE;
                            HOLLY_COLOR = new Color(153, 0, 0);
                            INACTIVE_COLOR = new Color (204,204,204);
                            canvas.setBackgroundColor(BACK_COLOR, BACK_COLOR2);
                            canvas.setForeground(TEXT_COLOR, HOLLY_COLOR, INACTIVE_COLOR);
                        } 
                        canvas.repaint(); 
                    }
                });

                theme2 = new JButton("Thème modéré");
                theme2.setPreferredSize(new Dimension(150, 25));
                theme2.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        for(int i = 0; i <= nbModules; i++){
                            BACK_COLOR = new Color(102,102,102);
                            BACK_COLOR2 = new Color(153,153,153);
                            TEXT_COLOR = Color.BLACK;
                            HOLLY_COLOR = new Color(255,102,102);
                            INACTIVE_COLOR = new Color(51,51,51);
                            canvas.setBackgroundColor(BACK_COLOR, BACK_COLOR2);
                            canvas.setForeground(TEXT_COLOR, HOLLY_COLOR, INACTIVE_COLOR);
                        } 
                        canvas.repaint(); 
                    }
                });

                theme3 = new JButton("Thème clair");
                theme3.setPreferredSize(new Dimension(150, 25));
                theme3.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        for(int i = 0; i <= nbModules; i++){
                            BACK_COLOR = new Color(226,226,226);
                            BACK_COLOR2 = Color.LIGHT_GRAY;
                            TEXT_COLOR = Color.BLACK;
                            HOLLY_COLOR = new Color (1.f, 0.8f, 0.7f);
                            INACTIVE_COLOR = new Color (0.5f, 0.5f, 0.5f);
                            canvas.setBackgroundColor(BACK_COLOR, BACK_COLOR2);
                            canvas.setForeground(TEXT_COLOR, HOLLY_COLOR, INACTIVE_COLOR);
                        } 
                        canvas.repaint(); 
                    }
                });

                retour = new JButton("Retour");
                retour.setPreferredSize(new Dimension(150, 25));
                retour.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        remove(pPrincipal);
                        validate();
                        repaint();

                        p.removeAll();
                        gbcprinc.insets = new Insets(10, 10, 10, 10);
 
                        gbcprinc.gridx = 0;
                        gbcprinc.gridy = 0;
                        gbc.fill = GridBagConstraints.HORIZONTAL;
                        p.add(changerdetheme, gbcprinc);

                        gbcprinc.gridx = 0;
                        gbcprinc.gridy = 1;
                        p.add(para, gbcprinc);
                        pPrincipal = p;

                        add(pPrincipal);
                        validate();
                        repaint();
                    }
                });

                gbc.gridx = 0;
                gbc.gridy = 0;
                gbc.fill = GridBagConstraints.HORIZONTAL;
                p1.add(theme1, gbc);
                
                gbc.gridx = 0;
                gbc.gridy = 1;
                p1.add(theme2, gbc);
                
                gbc.gridx = 0;
                gbc.gridy = 2;
                p1.add(theme3, gbc);
                
                gbc.gridx = 0;
                gbc.gridy = 3;
                p1.add(retour, gbc);

                add(p1);
                pPrincipal = p1;
                validate();
                repaint();
            }
        });


        para = new JButton("Raccourcis");
        para.setPreferredSize(new Dimension(190, 25));
        para.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e){
                remove (pPrincipal);
                validate();
                repaint();

                
                p2 = new JPanel(new GridBagLayout());
                GridBagConstraints gbcpara  = new GridBagConstraints();

                setSize(new Dimension(500, 400));

                Labq = new JLabel("q : Quitter en sauvegardant");
                Labl = new JLabel("l : Déplace extremité gauche vers gauche");
                Labm = new JLabel("m : Déplace extremité droite vers droite");
                LabLO = new JLabel("L, O : Déplace extremité gauche vers gauche sans bouger selection");
                LabMP = new JLabel("M , P : Déplace extremité droite vers droite sans bouger selection");
                Lableft = new JLabel("← : Professeur précédent");
                Labright = new JLabel("→ : Professeur suivant");
                LabE = new JLabel("E : Exporter en format .tex");
                LabX = new JLabel("CTRL + X : Echanger les extrémités d'une séléction");


                retour = new JButton("Retour");
                retour.setPreferredSize(new Dimension(150, 25));
                retour.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        remove(pPrincipal);
                        validate();
                        repaint();
    
                        p2.removeAll();
                        gbcprinc.insets = new Insets(10, 10, 10, 10);
                        setSize(new Dimension(300, 300));
    
                        gbcprinc.gridx = 0;
                        gbcprinc.gridy = 0;
                        gbc.fill = GridBagConstraints.HORIZONTAL;
                        p.add(changerdetheme, gbcprinc);

                        gbcprinc.gridx = 0;
                        gbcprinc.gridy = 1;
                        p.add(para, gbcprinc);
                        pPrincipal = p;
    
                        add(pPrincipal);
                        validate();
                        repaint();
                    }

                });

                gbcpara.insets = new Insets(10, 10, 10, 10);
                gbcpara.anchor = GridBagConstraints.WEST;

                gbcpara.gridx = 0;
                gbcpara.gridy = 0;
                gbc.fill = GridBagConstraints.HORIZONTAL;
                p2.add(Labq, gbcpara);

                gbcpara.gridx = 0;
                gbcpara.gridy = 1;
                p2.add(Labl, gbcpara);

                gbcpara.gridx = 0;
                gbcpara.gridy = 2;
                p2.add(Labm, gbcpara);

                gbcpara.gridx = 0;
                gbcpara.gridy = 3;
                p2.add(LabLO, gbcpara);

                gbcpara.gridx = 0;
                gbcpara.gridy = 4;
                p2.add(LabMP, gbcpara);

                gbcpara.gridx = 0;
                gbcpara.gridy = 5;
                p2.add(Lableft, gbcpara);

                gbcpara.gridx = 0;
                gbcpara.gridy = 6;
                p2.add(Labright, gbcpara);

                gbcpara.gridx = 0;
                gbcpara.gridy = 7;
                p2.add(LabE, gbcpara);

                gbcpara.gridx = 0;
                gbcpara.gridy = 8;
                p2.add(LabX, gbcpara);

                gbcprinc.gridx = 0;
                gbcprinc.gridy = 9;
                p2.add(retour, gbcprinc);
                

                add(p2);
                pPrincipal = p2;
                validate();
                repaint();
            }
            
        });

        gbcprinc.insets = new Insets(10, 10, 10, 10);
 
        gbcprinc.gridx = 0;
        gbcprinc.gridy = 0;
        gbc.fill = GridBagConstraints.HORIZONTAL;
        p.add(changerdetheme, gbcprinc);
        gbcprinc.gridx = 0;
        gbcprinc.gridy = 1;
        p.add(para, gbcprinc);

        pPrincipal = p;
        add(pPrincipal);
    }
}