/******************************************************************************* * 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 ); } } }