/*******************************************************************************
* Copyright (c) 2007 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is 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:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.seam.ui.preferences;
import java.util.ArrayList;
import org.eclipse.core.resources.IProject;
import org.eclipse.jdt.internal.ui.wizards.IStatusChangeListener;
import org.eclipse.jface.dialogs.IDialogSettings;
import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer;
import org.jboss.tools.common.preferences.SeverityPreferences;
import org.jboss.tools.common.ui.preferences.SeverityConfigurationBlock;
import org.jboss.tools.seam.core.SeamCorePlugin;
import org.jboss.tools.seam.core.SeamPreferences;
/**
* Find the Severity Framework instruction in SeamPreferences
* To modify section descriptions:
* 1) If new option is to be added to existing description,
* add array of two String objects, where first is the preference name
* defined in SeamPreferences, and second is label defined in
* SeamPreferencesMessages (do not forget put property to SeamPreferencesMessages.properties
* and constant to SeamPreferencesMessages.java)
*
* 2) If new section named A is to be created create constant
* private static SectionDescription SECTION_A = new SectionDescription(
* SeamPreferencesMessages.SeamValidatorConfigurationBlock_section_a,
* new String[][]{
* }
* );
* create required constant and property in SeamPreferencesMessages,
* and add SECTION_A to array ALL_SECTIONS.
*
* @author Viacheslav Kabanovich
*/
public class SeamValidatorConfigurationBlock extends SeverityConfigurationBlock {
private static final String SETTINGS_SECTION_NAME = SeamPreferencesMessages.SEAM_VALIDATOR_CONFIGURATION_BLOCK_SEAM_VALIDATOR_CONFIGURATION_BLOCK;
private static SectionDescription SECTION_COMPONENT = new SectionDescription(
SeamPreferencesMessages.SeamValidatorConfigurationBlock_section_component,
new String[][]{
{SeamPreferences.NONUNIQUE_COMPONENT_NAME, SeamPreferencesMessages.SeamValidatorConfigurationBlock_pb_nonUniqueComponentName_label},
{SeamPreferences.STATEFUL_COMPONENT_DOES_NOT_CONTENT_REMOVE, SeamPreferencesMessages.SeamValidatorConfigurationBlock_pb_statefulComponentDoesNotContainRemove_label},
{SeamPreferences.STATEFUL_COMPONENT_DOES_NOT_CONTENT_DESTROY, SeamPreferencesMessages.SeamValidatorConfigurationBlock_pb_statefulComponentDoesNotContainDestroy_label},
{SeamPreferences.STATEFUL_COMPONENT_WRONG_SCOPE, SeamPreferencesMessages.SeamValidatorConfigurationBlock_pb_statefulComponentHasWrongScope_label},
{SeamPreferences.UNKNOWN_COMPONENT_CLASS_NAME, SeamPreferencesMessages.SeamValidatorConfigurationBlock_pb_unknownComponentClassName_label},
{SeamPreferences.UNKNOWN_COMPONENT_PROPERTY, SeamPreferencesMessages.SeamValidatorConfigurationBlock_pb_unknownComponentProperty_label}
},
SeamCorePlugin.PLUGIN_ID
);
private static SectionDescription SECTION_ENTITY = new SectionDescription(
SeamPreferencesMessages.SeamValidatorConfigurationBlock_section_entities,
new String[][]{
{SeamPreferences.ENTITY_COMPONENT_WRONG_SCOPE, SeamPreferencesMessages.SeamValidatorConfigurationBlock_pb_entityComponentHasWrongScope_label}
},
SeamCorePlugin.PLUGIN_ID
);
private static SectionDescription SECTION_LIFECYCLE = new SectionDescription(
SeamPreferencesMessages.SeamValidatorConfigurationBlock_section_lifecycle,
new String[][]{
{SeamPreferences.DUPLICATE_REMOVE, SeamPreferencesMessages.SeamValidatorConfigurationBlock_pb_duplicateRemove_label},
{SeamPreferences.DUPLICATE_DESTROY, SeamPreferencesMessages.SeamValidatorConfigurationBlock_pb_duplicateDestroy_label},
{SeamPreferences.DUPLICATE_CREATE, SeamPreferencesMessages.SeamValidatorConfigurationBlock_pb_duplicateCreate_label},
{SeamPreferences.DUPLICATE_UNWRAP, SeamPreferencesMessages.SeamValidatorConfigurationBlock_pb_duplicateUnwrap_label},
{SeamPreferences.DESTROY_METHOD_BELONGS_TO_STATELESS_SESSION_BEAN, SeamPreferencesMessages.SeamValidatorConfigurationBlock_pb_destroyMethodBelongsToStatelessSessionBean_label},
{SeamPreferences.CREATE_DOESNT_BELONG_TO_COMPONENT, SeamPreferencesMessages.SeamValidatorConfigurationBlock_pb_createDoesNotBelongToComponent_label},
{SeamPreferences.UNWRAP_DOESNT_BELONG_TO_COMPONENT, SeamPreferencesMessages.SeamValidatorConfigurationBlock_pb_unwrapDoesNotBelongToComponent_label},
{SeamPreferences.OBSERVER_DOESNT_BELONG_TO_COMPONENT, SeamPreferencesMessages.SeamValidatorConfigurationBlock_pb_observerDoesNotBelongToComponent_label},
},
SeamCorePlugin.PLUGIN_ID
);
private static SectionDescription SECTION_FACTORY = new SectionDescription(
SeamPreferencesMessages.SeamValidatorConfigurationBlock_section_factory,
new String[][]{
{SeamPreferences.DUPLICATE_VARIABLE_NAME, SeamPreferencesMessages.SeamValidatorConfigurationBlock_pb_duplicateVariableName_label},
{SeamPreferences.UNKNOWN_FACTORY_NAME, SeamPreferencesMessages.SeamValidatorConfigurationBlock_pb_unknownFactoryName_label},
},
SeamCorePlugin.PLUGIN_ID
);
private static SectionDescription SECTION_BIJECTION = new SectionDescription(
SeamPreferencesMessages.SeamValidatorConfigurationBlock_section_bijection,
new String[][]{
{SeamPreferences.MULTIPLE_DATA_BINDER, SeamPreferencesMessages.SeamValidatorConfigurationBlock_pb_multipleDataBinder_label},
{SeamPreferences.UNKNOWN_DATA_MODEL, SeamPreferencesMessages.SeamValidatorConfigurationBlock_pb_unknownDataModel_label},
},
SeamCorePlugin.PLUGIN_ID
);
private static SectionDescription SECTION_VARIABLE = new SectionDescription(
SeamPreferencesMessages.SeamValidatorConfigurationBlock_section_variable,
new String[][]{
{SeamPreferences.UNKNOWN_VARIABLE_NAME, SeamPreferencesMessages.SeamValidatorConfigurationBlock_pb_unknownVariableName_label},
},
SeamCorePlugin.PLUGIN_ID
);
private static SectionDescription SECTION_SETTINGS = new SectionDescription(
SeamPreferencesMessages.SeamValidatorConfigurationBlock_section_settings,
new String[][]{
{SeamPreferences.INVALID_PROJECT_SETTINGS, SeamPreferencesMessages.SeamValidatorConfigurationBlock_pb_invalidSeamProjectSettings_label},
{SeamPreferences.INVALID_XML_VERSION, SeamPreferencesMessages.SeamValidatorConfigurationBlock_pb_invalidXMLVersion_label}
},
SeamCorePlugin.PLUGIN_ID
);
private static SectionDescription SECTION_PAGES_XML = new SectionDescription(
SeamPreferencesMessages.SeamValidatorConfigurationBlock_section_pages_xml,
new String[][]{
{SeamPreferences.UNRESOLVED_VIEW_ID, SeamPreferencesMessages.SeamValidatorConfigurationBlock_pb_unresolvedViewID_label},
},
SeamCorePlugin.PLUGIN_ID
);
public static SectionDescription[] ALL_SECTIONS = new SectionDescription[]{
SECTION_COMPONENT,
SECTION_ENTITY,
SECTION_LIFECYCLE,
SECTION_FACTORY,
SECTION_BIJECTION,
SECTION_VARIABLE,
SECTION_PAGES_XML,
SECTION_SETTINGS
};
private static Key[] getKeys() {
ArrayList<Key> keys = new ArrayList<Key>();
keys.add(ENABLE_BLOCK_KEY);
for (SectionDescription s: ALL_SECTIONS) {
s.collectKeys(keys);
}
keys.add(MAX_NUMBER_OF_PROBLEMS_KEY);
keys.add(WRONG_BUILDER_ORDER_KEY);
return keys.toArray(new Key[0]);
}
protected final static Key ENABLE_BLOCK_KEY = getKey(SeamCorePlugin.PLUGIN_ID, SeverityPreferences.ENABLE_BLOCK_PREFERENCE_NAME);
@Override
protected Key getEnableBlockKey() {
return ENABLE_BLOCK_KEY;
}
private static final Key MAX_NUMBER_OF_PROBLEMS_KEY = getKey(SeamCorePlugin.PLUGIN_ID, SeverityPreferences.MAX_NUMBER_OF_MARKERS_PREFERENCE_NAME);
@Override
protected Key getMaxNumberOfProblemsKey() {
return MAX_NUMBER_OF_PROBLEMS_KEY;
}
private static final Key WRONG_BUILDER_ORDER_KEY = getKey(SeamCorePlugin.PLUGIN_ID, SeverityPreferences.WRONG_BUILDER_ORDER_PREFERENCE_NAME);
protected Key getWrongBuilderOrderKey() {
return WRONG_BUILDER_ORDER_KEY;
}
public SeamValidatorConfigurationBlock(IStatusChangeListener context,
IProject project,
IWorkbenchPreferenceContainer container) {
super(context, project, getKeys(), container);
}
@Override
protected SectionDescription[] getAllSections() {
return ALL_SECTIONS;
}
@Override
protected String getCommonDescription() {
return SeamPreferencesMessages.SeamValidatorConfigurationBlock_common_description;
}
@Override
protected IDialogSettings getDialogSettings() {
return SeamCorePlugin.getDefault().getDialogSettings().getSection(SETTINGS_SECTION_NAME);
}
@Override
protected String getQualifier() {
return SeamCorePlugin.PLUGIN_ID;
}
}