com.liferay.ide.maven.ui.pref.MavenProjectPreferencePage.java Source code

Java tutorial

Introduction

Here is the source code for com.liferay.ide.maven.ui.pref.MavenProjectPreferencePage.java

Source

/*******************************************************************************
 * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 *
 *******************************************************************************/

package com.liferay.ide.maven.ui.pref;

import com.liferay.ide.maven.core.LiferayMavenCore;
import com.liferay.ide.ui.util.SWTUtil;

import org.eclipse.core.runtime.preferences.InstanceScope;
import org.eclipse.jface.preference.BooleanFieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.StringFieldEditor;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.eclipse.ui.preferences.ScopedPreferenceStore;

/**
 * @author Simon Jiang
 * @author Eric Min
 */
public class MavenProjectPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
    public static final String ID = "com.liferay.ide.maven.ui.mavenProjectPreferencePage";

    private final ScopedPreferenceStore prefStore;

    public MavenProjectPreferencePage() {
        super(GRID);
        prefStore = new ScopedPreferenceStore(InstanceScope.INSTANCE, LiferayMavenCore.PLUGIN_ID);
    }

    private void createBooleanEditior(Composite parent, final String label, final String key) {
        final BooleanFieldEditor booleanEditor = new BooleanFieldEditor(key, label, parent);
        booleanEditor.setPreferenceStore(getPreferenceStore());
        addField(booleanEditor);
    }

    @Override
    protected void createFieldEditors() {
        Composite archetypeComposite = createGroupCompostie(Msgs.mavenDefaultArchetyepGroup);

        createStringEditior(archetypeComposite, Msgs.portletMVCArchetype, LiferayMavenCore.PREF_ARCHETYPE_GAV_MVC);
        createStringEditior(archetypeComposite, Msgs.portletJSFArchetype, LiferayMavenCore.PREF_ARCHETYPE_GAV_JSF);
        createStringEditior(archetypeComposite, Msgs.portletJSFICEfacesArchetype,
                LiferayMavenCore.PREF_ARCHETYPE_GAV_ICEFACES);
        createStringEditior(archetypeComposite, Msgs.portletJSFFacesAlloyArchetype,
                LiferayMavenCore.PREF_ARCHETYPE_GAV_LIFERAY_FACES_ALLOY);
        createStringEditior(archetypeComposite, Msgs.portletJSFPrimeFacesArchetype,
                LiferayMavenCore.PREF_ARCHETYPE_GAV_PRIMEFACES);
        createStringEditior(archetypeComposite, Msgs.portletJSFRichFacesArchetype,
                LiferayMavenCore.PREF_ARCHETYPE_GAV_RICHFACES);
        createStringEditior(archetypeComposite, Msgs.portletSpringMVCArchetype,
                LiferayMavenCore.PREF_ARCHETYPE_GAV_SPRING_MVC);
        createStringEditior(archetypeComposite, Msgs.portletVaadinArchetype,
                LiferayMavenCore.PREF_ARCHETYPE_GAV_VAADIN);
        createStringEditior(archetypeComposite, Msgs.hookArchetype, LiferayMavenCore.PREF_ARCHETYPE_GAV_HOOK);
        createStringEditior(archetypeComposite, Msgs.themeArchetype, LiferayMavenCore.PREF_ARCHETYPE_GAV_THEME);
        createStringEditior(archetypeComposite, Msgs.layoutTemplateArchetype,
                LiferayMavenCore.PREF_ARCHETYPE_GAV_LAYOUTTPL);
        createStringEditior(archetypeComposite, Msgs.serviceBuilderArchetype,
                LiferayMavenCore.PREF_ARCHETYPE_GAV_SERVICEBUILDER);
        createStringEditior(archetypeComposite, Msgs.extArchetype, LiferayMavenCore.PREF_ARCHETYPE_GAV_EXT);
        createStringEditior(archetypeComposite, Msgs.webArchetype, LiferayMavenCore.PREF_ARCHETYPE_GAV_WEB);

        Composite customJspComposite = createGroupCompostie(Msgs.mavenProjectConfiguratorOptions);

        createBooleanEditior(customJspComposite, Msgs.addPluginTypeSuffix,
                LiferayMavenCore.PREF_ADD_MAVEN_PLUGIN_SUFFIX);
        createBooleanEditior(customJspComposite, Msgs.disableCustomJSPValidation,
                LiferayMavenCore.PREF_DISABLE_CUSTOM_JSP_VALIDATION);
    }

    private Composite createGroupCompostie(final String groupName) {
        Group group = SWTUtil.createGroup(getFieldEditorParent(), groupName, 1); //$NON-NLS-1$
        GridData gd = new GridData(GridData.FILL, GridData.CENTER, true, false, 2, 1);
        gd.horizontalIndent = 0;
        group.setLayoutData(gd);
        Composite composite = SWTUtil.createComposite(group, 1, 2, GridData.FILL_HORIZONTAL);

        return composite;
    }

    private void createStringEditior(Composite parent, final String label, final String key) {
        final StringFieldEditor stringEditor = new StringFieldEditor(key, label, parent);
        stringEditor.setPreferenceStore(getPreferenceStore());
        addField(stringEditor);
    }

    @Override
    public IPreferenceStore getPreferenceStore() {
        return this.prefStore;
    }

    public void init(IWorkbench workbench) {
    }

    private static class Msgs extends NLS {
        public static String addPluginTypeSuffix;
        public static String disableCustomJSPValidation;
        public static String extArchetype;
        public static String hookArchetype;
        public static String layoutTemplateArchetype;
        public static String mavenDefaultArchetyepGroup;
        public static String mavenProjectConfiguratorOptions;
        public static String portletJSFArchetype;
        public static String portletJSFFacesAlloyArchetype;
        public static String portletJSFICEfacesArchetype;
        public static String portletJSFPrimeFacesArchetype;
        public static String portletJSFRichFacesArchetype;
        public static String portletMVCArchetype;
        public static String portletSpringMVCArchetype;
        public static String portletVaadinArchetype;
        public static String serviceBuilderArchetype;
        public static String themeArchetype;
        public static String webArchetype;

        static {
            initializeMessages(MavenProjectPreferencePage.class.getName(), Msgs.class);
        }
    }
}