org.isoe.diagraph.preferences.DiagraphPreferences.java Source code

Java tutorial

Introduction

Here is the source code for org.isoe.diagraph.preferences.DiagraphPreferences.java

Source

/**
* Copyright (c) 2014 Laboratoire de Genie Informatique et Ingenierie de Production - Ecole des Mines d'Ales
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*    Francois Pfister (ISOE-LGI2P) - initial API and implementation
*/
package org.isoe.diagraph.preferences;

import java.util.List;

import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.preference.BooleanFieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.IntegerFieldEditor;
import org.eclipse.jface.preference.StringFieldEditor;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.isoe.fwk.core.DParams;

/**
 *
 * @author pfister
 *
 */
public class DiagraphPreferences extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
    //org.isoe.diagraph.preferences.DiagraphPreferences
    private static String userName;
    private static String teamName;
    private static String teamNameSpace_;
    private static String email;
    private static String password;
    private static String connectState;

    // org.isoe.diagraph.preferences.getPreferences();

    public DiagraphPreferences() {
        super(GRID);
        setPreferenceStore(Activator.getDefault().getPreferenceStore());
        setDescription("Diagraph Preferences");
    }

    public void createFieldEditors() {

        addField(new BooleanFieldEditor(DParams.KEY_ANOTHER_FOLDER, DParams.LABEL_ANOTHER_FOLDER,
                getFieldEditorParent()));
        addField(new BooleanFieldEditor(DParams.KEY_SAVE_OLD, DParams.LABEL_SAVE_OLD, getFieldEditorParent()));

        addField(new BooleanFieldEditor(DParams.KEY_DELETE_OLD_JAVA_SRC_, DParams.LABEL_DELETE_OLD_JAVA_SRC,
                getFieldEditorParent()));
        addField(new BooleanFieldEditor(DParams.KEY_LAYOUT_AT_STARTUP, DParams.LABEL_LAYOUT_AT_STARTUP,
                getFieldEditorParent()));
        addField(new StringFieldEditor(DParams.KEY_TARGET_MODEL_DIR, DParams.LABEL_TARGET_MODEL_DIR,
                getFieldEditorParent()));
        addField(new StringFieldEditor(DParams.KEY_SAVED_MODEL_DIR, DParams.LABEL_SAVED_MODEL_DIR,
                getFieldEditorParent()));

        addField(new StringFieldEditor(DParams.KEY_UNIVERSE_FOLDER, DParams.LABEL_UNIVERSE_FOLDER,
                getFieldEditorParent()));
        addField(new StringFieldEditor(DParams.KEY_UNIVERSE_NAME, DParams.LABEL_UNIVERSE_NAME,
                getFieldEditorParent()));
        addField(new StringFieldEditor(DParams.TEAM_NAMESPACE, DParams.LABEL_TEAM_NAMESPACE,
                getFieldEditorParent()));
        addField(new StringFieldEditor(DParams.KEY_INSTANCES_NAME, DParams.LABEL_INSTANCES_NAME,
                getFieldEditorParent()));

        addField(new BooleanFieldEditor(DParams.KEY_ALLOW_PATTERN_BASED_REFACTORING,
                DParams.LABEL_ALLOW_PATTERN_BASED_REFACTORING, getFieldEditorParent()));
        addField(new BooleanFieldEditor(DParams.KEY_REFACTOR_DUPLICATE_REFERENCES,
                DParams.LABEL_REFACTOR_DUPLICATE_REFERENCES, getFieldEditorParent()));
        addField(new BooleanFieldEditor(DParams.KEY_REFACTOR_POOR_REFERENCES,
                DParams.LABEL_REFACTOR_POOR_REFERENCES, getFieldEditorParent()));
        addField(new BooleanFieldEditor(DParams.KEY_REFACTOR_NAMES, DParams.LABEL_REFACTOR_NAMES,
                getFieldEditorParent()));

        addField(new BooleanFieldEditor(DParams.KEY_FILTER_TEST_PROJECTS, DParams.LABEL_FILTER_TEST_PROJECTS,
                getFieldEditorParent()));

        addField(new BooleanFieldEditor(DParams.KEY_SAVE_EMF_TRANSFO, DParams.LABEL_SAVE_EMF_TRANSFO,
                getFieldEditorParent()));
        addField(new BooleanFieldEditor(DParams.KEY_SAVE_GENERATED_ANNOTATIONS_IF_DIFFERENT_TARGET,
                DParams.LABEL_SAVE_GENERATED_ANNOTATIONS_IF_DIFFERENT_TARGET, getFieldEditorParent()));
        // addField(new
        // BooleanFieldEditor(DParams.KEY_SAVE_M2_,DParams.LABEL_SAVE_M2_,
        // getFieldEditorParent()));
        // addField(new BooleanFieldEditor(DParams.KEY_CHANGE_LANGUAGE_VERSION_,
        // DParams.LABEL_CHANGE_LANGUAGE_VERSION, getFieldEditorParent()));
        addField(new BooleanFieldEditor(DParams.KEY_ADD_MISSING_ANNOTATIONS, DParams.LABEL_ADD_MISSING_ANNOTATIONS,
                getFieldEditorParent()));

        addField(new BooleanFieldEditor(DParams.KEY_DIAGRAPH_AUTO_GENERATION,
                DParams.LABEL_DIAGRAPH_AUTO_GENERATION, getFieldEditorParent()));
        addField(new BooleanFieldEditor(DParams.KEY_EMFGMF_GENERATION_, DParams.LABEL_EMFGMF_GENERATION,
                getFieldEditorParent()));
        /*
         * addField(new IntegerFieldEditor(
         * DParams.KEY_DIAGRAPH_LAYOUT_LEFT_OFFSET,
         * DParams.LABEL_DIAGRAPH_LAYOUT_LEFT_OFFSET, getFieldEditorParent()));
         * addField(new IntegerFieldEditor(
         * DParams.KEY_DIAGRAPH_LAYOUT_WIDTH_OFFSET,
         * DParams.LABEL_DIAGRAPH_LAYOUT_WIDTH_OFFSET, getFieldEditorParent()));
         * addField(new IntegerFieldEditor(
         * DParams.KEY_DIAGRAPH_LAYOUT_VERTICAL_OFFSET,
         * DParams.LABEL_DIAGRAPH_LAYOUT_VERTICAL_OFFSET,
         * getFieldEditorParent()));
         */

    }

    public static void getPreferences() {

        throw new RuntimeException("do not use getPreferences()");
        /*
         * //FP120523 seek directly in preference store TODO instanciate the
         * DParams class to force Activator loading ???
         *
         * IPreferenceStore store = Activator.getDefault().getPreferenceStore();
         * DParams.resultInAnotherFolder =
         * store.getBoolean(DParams.KEY_ANOTHER_FOLDER); DParams.saveOld =
         * store.getBoolean(DParams.KEY_SAVE_OLD); DParams.deleteOldJavaSrc =
         * store.getBoolean(DParams.KEY_DELETE_OLD_JAVA_SRC);
         * DParams.targetModelDir =
         * store.getString(DParams.KEY_TARGET_MODEL_DIR); DParams.savedModelDir
         * = store.getString(DParams.KEY_SAVED_MODEL_DIR); DParams.megamodelName
         * = store.getString(DParams.KEY_MEGAMODEL_NAME);
         *
         * DParams.allowPatternBasedRefactoring =
         * store.getBoolean(DParams.KEY_ALLOW_PATTERN_BASED_REFACTORING);
         * DParams.refactorDuplicateReferences =
         * store.getBoolean(DParams.KEY_REFACTOR_DUPLICATE_REFERENCES);
         * DParams.refactorPoorReferences =
         * store.getBoolean(DParams.KEY_REFACTOR_POOR_REFERENCES);
         * DParams.refactorNames = store.getBoolean(DParams.KEY_REFACTOR_NAMES);
         * DParams.filterTestProjects =
         * store.getBoolean(DParams.KEY_FILTER_TEST_PROJECTS);
         *
         * DParams.saveEmfTransfo =
         * store.getBoolean(DParams.KEY_SAVE_EMF_TRANSFO);
         * DParams.saveGeneratedAnnotations = store.getBoolean(DParams.
         * KEY_SAVE_GENERATED_ANNOTATIONS_IF_DIFFERENT_TARGET); DParams.saveM2 =
         * store.getBoolean(DParams.KEY_SAVE_M2); DParams.changeLanguageVersion
         * = store.getBoolean(DParams.KEY_CHANGE_LANGUAGE_VERSION);
         * DParams.addMissingAnnotations =
         * store.getBoolean(DParams.KEY_ADD_MISSING_ANNOTATIONS);
         *
         * DParams.generateAutomatically =
         * store.getBoolean(DParams.KEY_DIAGRAPH_AUTO_GENERATION);
         * DParams.generateEmfAndGmf =
         * store.getBoolean(DParams.KEY_EMFGMF_GENERATION);
         */

    }

    public static Object getPreference(Class type, String key) {
        if (type == Boolean.class) {
            return Activator.getDefault().getPreferenceStore().getBoolean(key);
        } else if (type == String.class) {
            return Activator.getDefault().getPreferenceStore().getString(key);
        }
        return null;
    }

    // usage
    // org.isoe.diagraph.preferences.getBooleanPreference(DParams.KEY_ADD_MISSING_ANNOTATIONS)
    public static String getStringPreference(String key) {
        return Activator.getDefault().getPreferenceStore().getString(key);
    }

    public static int getIntegerPreference(String key) {
        return Activator.getDefault().getPreferenceStore().getInt(key);
    }

    public static boolean getBooleanPreference(String key) {
        return Activator.getDefault().getPreferenceStore().getBoolean(key);
    }

    @Override
    public boolean performOk() {
        boolean result = super.performOk();
        // does not work when coupled with DParams because DParams is static
        // getPreferences();
        return result;
    }

    @Override
    public void init(IWorkbench workbench) {

    }

    private static void getUserFromRemoteRepository(String email, String password) { // TODO
        userName = null;
        teamName = null;
        teamNameSpace_ = null;
    }

    /*
     * userName = System.getProperty("user.name"); teamName =
     * System.getProperty("team.name"); teamNameSpace =
     * System.getProperty("team.namespace");
     */

    public static String getUserName__() { // FP130511
        getTeamNamespace();
        if (userName == null)
            userName = "me";
        return userName;
    }

    public static String getTeamName__() { // FP130511
        getTeamNamespace();
        if (teamName == null)
            teamName = DParams.DEFAULT_TEAM_NAME;
        return teamName;
    }

    public static void setEmail(String email) {
        DiagraphPreferences.email = email;
    }

    public static void setPassword(String password) {
        DiagraphPreferences.password = password;
    }
    /*
       public static String getTeamNameSpace() {
          return teamNameSpace;
       }*/

    public static String getEmail() {
        return email;
    }

    public static String getPassword() {
        return password;
    }

    public static String getTeamNamespace() { // FP130511
        String result = teamNameSpace_;
        if (result == null || result.isEmpty()) {
            getUserFromRemoteRepository(email, password);
            connectState = DParams.CONNECTED_TO_REMOTE_REPOSITORY;//"FromOpendsml";
            result = teamNameSpace_;
            if (result == null || result.isEmpty()) {
                getUserDataFromVmArgs();
                result = teamNameSpace_;
                connectState = DParams.CONNECTED_LOCAL_FROM_VMARGS;//"FromVmArgs";
                if (result == null || result.isEmpty()) {
                    result = getStringPreference(DParams.KEY_TEAM_NAMESPACE);
                    connectState = DParams.CONNECTED_LOCAL_FROM_PREFS;//"FromPreferences";
                    teamNameSpace_ = result;
                }
            }
        }
        if (result == null) {
            teamNameSpace_ = DParams.DEFAULT_TEAM_NAME;
            connectState = DParams.CONNECTED_LOCAL_FROM_HARD;//"HardDefined";
            result = teamNameSpace_;
        }
        return result;
    }

    public static String getConnectState() {
        return connectState;
    }

    private static void getUserDataFromVmArgs() { // FP130511

        /*
         * set this in eclipse.ini -Duser.name="johndoe"
         * -Dteam.name="MY team - MY Lab - Nimes (France)"
         * -Dteam.namespace="johns.team" TODO: get this from the user account on
         * the opendsml site
         */

        userName = System.getProperty("user.name");
        teamName = System.getProperty("team.name");
        teamNameSpace_ = System.getProperty("team.namespace");
    }

    public static void logOptions(List<String> logDiagraph) {
        logDiagraph.add("Diagraph options{");
        logDiagraph.add("output options:");
        logDiagraph.add("   deleteOldJavaSrc = "
                + (getBooleanPreference(DParams.KEY_DELETE_OLD_JAVA_SRC_) ? " true" : " false"));
        logDiagraph.add("   layout at startup = "
                + (getBooleanPreference(DParams.KEY_LAYOUT_AT_STARTUP) ? " true" : " false"));
        logDiagraph.add("   resultInAnotherFolder = "
                + (getBooleanPreference(DParams.KEY_ANOTHER_FOLDER) ? " true" : " false"));
        logDiagraph.add("       targetModelDir = " + getStringPreference(DParams.KEY_TARGET_MODEL_DIR));
        logDiagraph.add("   saveOld = "
                + (getBooleanPreference(getStringPreference(DParams.KEY_SAVE_OLD)) ? " true" : " false"));
        logDiagraph.add("       savedModelDir = " + getStringPreference(DParams.KEY_SAVED_MODEL_DIR));
        logDiagraph.add("       UniverseFolder = " + getStringPreference(DParams.KEY_UNIVERSE_FOLDER));

        // String universeName_ =
        // org.isoe.fwk.pathes.Preferences.getUniverseProjectName_();

        // logDiagraph.add("       UniverseName = " + universeName_);

        // if (universeName_.equals("_megamodel"))
        // throw new RuntimeException("universeName error 2");

        // String teamNamespace=getTeamNamespace();

        logDiagraph.add("       teamNamespace = " + getTeamNamespace());
        logDiagraph.add("       userName = " + getUserName__());
        logDiagraph.add("       teamName = " + getTeamName__());

        logDiagraph.add("       initialState = " + getConnectState());

        logDiagraph.add("       instancesName = " + getStringPreference(DParams.KEY_INSTANCES_NAME));

        logDiagraph.add("refactoring options:");
        logDiagraph.add("   allowPatternBasedRefactoring = "
                + (getBooleanPreference(DParams.KEY_ALLOW_PATTERN_BASED_REFACTORING) ? " true" : " false"));
        logDiagraph.add("       refactorDuplicateReferences = "
                + (getBooleanPreference(DParams.KEY_REFACTOR_DUPLICATE_REFERENCES) ? " true" : " false"));
        logDiagraph.add("       refactorPoorReferences = "
                + (getBooleanPreference(DParams.KEY_REFACTOR_POOR_REFERENCES) ? " true" : " false"));
        logDiagraph.add("       refactorNames = "
                + (getBooleanPreference(DParams.KEY_REFACTOR_NAMES) ? " true" : " false"));
        logDiagraph.add("       addMissingAnnotations = "
                + (getBooleanPreference(DParams.KEY_ADD_MISSING_ANNOTATIONS) ? " true" : " false"));
        logDiagraph.add("save and filtering options:");
        logDiagraph.add("   save Emf Transformation = "
                + (getBooleanPreference(DParams.KEY_SAVE_EMF_TRANSFO) ? " true" : " false"));
        logDiagraph.add("   save Generated Annotations = "
                + (getBooleanPreference(DParams.KEY_SAVE_GENERATED_ANNOTATIONS_IF_DIFFERENT_TARGET) ? " true"
                        : " false"));
        // logDiagraph.add("   saveM2 = "+
        // (getBooleanPreference(DParams.KEY_SAVE_M2_) ? " true": " false"));
        logDiagraph.add("   filterTestProjects = "
                + (getBooleanPreference(DParams.KEY_FILTER_TEST_PROJECTS) ? " true" : " false"));
        logDiagraph.add("   generate plugins Automatically = "
                + (getBooleanPreference(DParams.KEY_DIAGRAPH_AUTO_GENERATION) ? " true" : " false"));
        logDiagraph.add("   " + DParams.LABEL_EMFGMF_GENERATION + " = "
                + (getBooleanPreference(DParams.KEY_EMFGMF_GENERATION_) ? " true" : " false"));
        logDiagraph.add("language version:");
        /*
         * logDiagraph .add("   changeLanguageVersion = " +
         * (getBooleanPreference(DParams.KEY_CHANGE_LANGUAGE_VERSION_) ? " true"
         * : " false"));
         */
        /*
         * logDiagraph.add("layout options:"); logDiagraph
         * .add("   layout left offset = " +
         * getIntegerPreference(DParams.KEY_DIAGRAPH_LAYOUT_LEFT_OFFSET));
         * logDiagraph .add("   layout width offset = " +
         * getIntegerPreference(DParams.KEY_DIAGRAPH_LAYOUT_WIDTH_OFFSET));
         * logDiagraph .add("   layout vertical offset = " +
         * getIntegerPreference(DParams.KEY_DIAGRAPH_LAYOUT_VERTICAL_OFFSET));
         */
        logDiagraph.add("}");
    }
    /*
     *
     *
     * //FP130409 TODO public static void createOptions(ModelingUniverse
     * modelingUniverse) {
     *
     * org.isoe.megamodel.Platform platform =
     * MegamodelFactory.eINSTANCE.createPlatform();
     * platform.setName("eclipse-modeling-indigo-SR1-win32 + GMF + ATL");
     * modelingUniverse.getPlatform().add(platform);
     *
     * Location location = MegamodelFactory.eINSTANCE.createLocation();
     * location.setName(getStringPreference(DParams.KEY_UNIVERSE_NAME));
     * location.setCoreMegamodel(DParams.DEFAULT_MEGAMODEL_NAME);
     * location.setInstanceLocation
     * (getStringPreference(DParams.KEY_INSTANCES_NAME));
     * location.setMegamodelLocation
     * (getStringPreference(DParams.KEY_MEGAMODEL_NAME));
     * location.setUniverseLocation
     * (getStringPreference(DParams.KEY_UNIVERSE_FOLDER));
     * platform.setLocationParameters(location);
     *
     * Refactoring refactoring= MegamodelFactory.eINSTANCE.createRefactoring();
     * refactoring.setPatternBased(getBooleanPreference(DParams.
     * KEY_ALLOW_PATTERN_BASED_REFACTORING));
     * refactoring.setDuplicateReferences(
     * getBooleanPreference(DParams.KEY_REFACTOR_DUPLICATE_REFERENCES));
     * refactoring.setMissingAnnotations(getBooleanPreference(DParams.
     * KEY_ADD_MISSING_ANNOTATIONS));
     * refactoring.setNames(getBooleanPreference(DParams.KEY_REFACTOR_NAMES));
     * refactoring
     * .setPoorReferences(getBooleanPreference(DParams.KEY_REFACTOR_POOR_REFERENCES
     * )); refactoring.setTargetLocation(getStringPreference(DParams.
     * KEY_TARGET_MODEL_DIR));
     * refactoring.setVersionedLocation(getStringPreference
     * (DParams.KEY_SAVED_MODEL_DIR));
     * platform.setRefactoringParameters(refactoring);
     *
     * Generation generation = MegamodelFactory.eINSTANCE.createGeneration();
     * generation
     * .setConcreteSyntax(getBooleanPreference(DParams.KEY_DIAGRAPH_AUTO_GENERATION
     * ));
     * generation.setDiagram(getBooleanPreference(DParams.KEY_EMFGMF_GENERATION
     * )); platform.setGenerationParameters(generation);
     *
     * }
     */

}