package _VisualDVM.Visual.Menus.FileMenuBar;
import Common.Visual.Menus.VisualiserMenu;
import _VisualDVM.Global;
import _VisualDVM.ProjectData.Files.FileType;
import _VisualDVM.ProjectData.Files.LanguageStyle;
import _VisualDVM.ProjectData.LanguageName;
import _VisualDVM.Visual.Menus.LanguagesSubmenu;
import _VisualDVM.Visual.Menus.StylesSubmenu;
import _VisualDVM.Visual.Menus.TypesSubmenu;

import javax.swing.*;
public class FileSettingsMenu extends VisualiserMenu {
    JMenu mLanguage;
    JMenu mStyle;
    JMenu mType;
    public FileSettingsMenu() {
        super("Настройки файла", "/Common/icons/Settings.png");
        add(mLanguage = new LanguagesSubmenu() {
            @Override
            public void action(LanguageName languageName) {
                if (Global.mainModule.getFile().UpdateLanguage(languageName)) {
                    Global.mainModule.getSapfor().ResetAllAnalyses();
                    Global.mainModule.getFile().form.ShowLanguage();
                    Global.mainModule.getUI().getMainWindow().getProjectWindow().getFilesTreeForm().getTree().RefreshNode(Global.mainModule.getFile().node);
                }
            }
        });
        ShowLanguage();
        //--
        add(mStyle = new StylesSubmenu() {
            @Override
            public void action(LanguageStyle languageStyle) {
                if (Global.mainModule.getFile().UpdateStyle(languageStyle)) {
                    Global.mainModule.getSapfor().ResetAllAnalyses();
                    Global.mainModule.getFile().form.ShowStyle();
                }
            }
        });
        ShowStyle();
        //--
        add(mType = new TypesSubmenu() {
            @Override
            public void action(FileType fileType) {
                if (Global.mainModule.getFile().UpdateType(fileType)) {
                    Global.mainModule.getSapfor().ResetAllAnalyses();
                    Global.mainModule.getUI().getMainWindow().getProjectWindow().getFilesTreeForm().getTree().RefreshNode(Global.mainModule.getFile().node);
                    Global.mainModule.getFile().form.ShowType();
                }
            }
        });
        ShowType();
    }
    public void ShowLanguage() {
        mLanguage.setText("Язык: " + Global.mainModule.getFile().languageName.getDescription());
    }
    public void ShowStyle() {
        mStyle.setText("Стиль: " + Global.mainModule.getFile().style.getDescription());
    }
    public void ShowType() {
        mType.setText("Тип: " + Global.mainModule.getFile().fileType.getDescription());
    }
}
