/**************************************************************************** * Copyright (c) 2009 Atos Origin. * * 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: * Thibault Landre (Atos Origin) - Initial API and implementation * Lorenzo Vincent (CEA LIST) - Add Compartment Visibility * Vincent Lorenzo (CEA-LIst) - bug 335989: [Preferences] [Enhancement] Add a group for labels in each Connection Preference Page *****************************************************************************/ package org.eclipse.papyrus.infra.gmfdiag.preferences.utils; /** * <p> * A class that defines the available preference type available through Papyrus. * </p> * <p> * It defines the following type: * </p> * <ul> * <li>COLOR_FILL</li> * <li>FONT</li> * <li>COLOR_FONT</li> * <li>COLOR_LINE</li> * <li>COLOR_GRADIENT</li> * <li>GRADIENT_POLICY</li> * <li>JUMPLINK_STATUS</li> * <li>JUMPLINK_REVERSE</li> * <li>JUMPLINK_TYPE</li> * <li>ROUTING_POLICY_DISTANCE</li> * <li>ROUTING_POLICY_OBSTRUCTION</li> * <li>ROUTING_STYLE</li> * <li>SMOOTHNESS</li> * </ul> * <p> * It also helps to retrieve the string used to store the preference type for a given element. * </p> * */ public class PreferenceConstantHelper { /** * Prefix for preference for Papyrus Level editor */ public static String PAPYRUS_EDITOR_PREFERENCE_PREFIX = "PAPYRUS_EDITOR"; //$NON-NLS-1$ /** * Prefix for preference for Diagram Level */ public static String DIAGRAM_PREFERENCE_PREFIX = "DIAGRAM_"; //$NON-NLS-1$ /** * Prefix for preference for element Level */ public static String DIAGRAM_ELEMENT = "ELEMENT_"; //$NON-NLS-1$ private final static String COLOR = "color."; //$NON-NLS-1$ private final static String GRADIENT = "gradient"; //$NON-NLS-1$ private final static String POLICY = ".policy"; //$NON-NLS-1$ private final static String JUMPLINK = "jumplink."; //$NON-NLS-1$ private final static String ROUTING = "routing"; //$NON-NLS-1$ private final static String ROUTING_POLICY = ROUTING + POLICY; private final static String COLOR_FILL_CONSTANT = COLOR + "fill"; //$NON-NLS-1$ private final static String FONT_CONSTANT = "font"; //$NON-NLS-1$ private final static String COLOR_FONT_CONSTANT = COLOR + FONT_CONSTANT; private final static String COLOR_LINE_CONSTANT = COLOR + "line"; //$NON-NLS-1$ private final static String COLOR_GRADIENT_CONSTANT = COLOR + GRADIENT; private final static String GRADIENT_POLICY_CONSTANT = GRADIENT + POLICY; private final static String JUMPLINK_STATUS_CONSTANT = JUMPLINK + "status"; //$NON-NLS-1$ private final static String JUMPLINK_REVERSE_CONSTANT = JUMPLINK + "reverse"; //$NON-NLS-1$ private final static String JUMPLINK_TYPE_CONSTANT = JUMPLINK + "type"; //$NON-NLS-1$ private final static String ROUTING_POLICY_DISTANCE_CONSTANT = ROUTING_POLICY + ".distance"; //$NON-NLS-1$ private final static String ROUTING_POLICY_OBSTRUCTION_CONSTANT = ROUTING_POLICY + ".obstruction"; //$NON-NLS-1$ private final static String ROUTING_STYLE_CONSTANT = ROUTING + ".style"; //$NON-NLS-1$ private final static String SMOOTHNESS_CONSTANT = "smoothness"; //$NON-NLS-1$ private final static String SHADOW_CONSTANT = "shadow"; //$NON-NLS-1$ private final static String ELEMENTICON_CONSTANT = "elementicon"; //$NON-NLS-1$ private final static String QUALIFIEDNAME_CONSTANT = "qualifiedname"; //$NON-NLS-1$ private final static String HEIGHT_CONSTANT = "height";//$NON-NLS-1$ private final static String WIDTH_CONSTANT = "width"; //$NON-NLS-1$ private final static String COMPARTMENT_VISIBILITY_CONSTANT = "compartment.visibility"; //$NON-NLS-1$ private final static String COMPARTMENT_NAME_VISIBILITY_CONSTANT = "compartment_name.visibility"; //$NON-NLS-1$ private final static String LABEL_VISIBILITY_CONSTANT = "label.visibility"; //$NON-NLS-1$ private final static String LOCATION_X_CONSTANT = "location_x";//$NON-NLS-1$ private final static String LOCATION_Y_CONSTANT = "location_y"; //$NON-NLS-1$ /** * A preference of type COLOR FILL */ public final static int COLOR_FILL = 0; /** * A preference of type FONT */ public final static int FONT = COLOR_FILL + 1; /** * A preference of type COLOR FONT */ public final static int COLOR_FONT = FONT + 1; /** * A preference of type COLOR LINE */ public final static int COLOR_LINE = COLOR_FONT + 1; /** * A preference of type COLOR GRADIENT */ public final static int COLOR_GRADIENT = COLOR_LINE + 1; /** * A preference of type GRADIENT POLICY */ public final static int GRADIENT_POLICY = COLOR_GRADIENT + 1; /** * A preference of type JUMPLINK STATUS */ public final static int JUMPLINK_STATUS = GRADIENT_POLICY + 1; /** * A preference of type JUMPLINK REVERSE */ public final static int JUMPLINK_REVERSE = JUMPLINK_STATUS + 1; /** * A preference of type JUMPLINK TYPE */ public final static int JUMPLINK_TYPE = JUMPLINK_REVERSE + 1; /** * A preference of type ROUTING POLICY DISTANCE */ public final static int ROUTING_POLICY_DISTANCE = JUMPLINK_TYPE + 1; /** * A preference of type ROUTING POLICY OBSTRUCTION */ public final static int ROUTING_POLICY_OBSTRUCTION = ROUTING_POLICY_DISTANCE + 1; /** * A preference of type ROUTING STYLE */ public final static int ROUTING_STYLE = ROUTING_POLICY_OBSTRUCTION + 1; /** * A preference of type SMOOTHNESS */ public final static int SMOOTHNESS = ROUTING_STYLE + 1; /** * A preference of type Shadow */ public final static int SHADOW = SMOOTHNESS + 1; /** * A preference of type elementIcon */ public final static int ELEMENTICON = SHADOW + 1; /** * A preference of type QualifiedName */ public final static int QUALIFIEDNAME = ELEMENTICON + 1; /** * A preference of type height */ public static final int HEIGHT = QUALIFIEDNAME + 1; /** * A preference of type width */ public static final int WIDTH = HEIGHT + 1; /** * A preference of type compartment visibility */ public static final int COMPARTMENT_VISIBILITY = WIDTH + 1; /** * A preference of type compartment visibility */ public static final int COMPARTMENT_NAME_VISIBILITY = COMPARTMENT_VISIBILITY + 1; /** * A preference of type label visibility */ public static final int LABEL_VISIBILITY = COMPARTMENT_NAME_VISIBILITY + 1; /** * A preference for label default location */ public static final int LOCATION_X = LABEL_VISIBILITY + 1; /** * A preference for label default location */ public static final int LOCATION_Y = LOCATION_X + 1; /** * Get the preference constant used to store the preference of an element. * * @param elementName * the name of the element * @param preferenceType * the type of preference to store. It must be a value defined in {@link PreferenceConstantHelper} * @return the constant used. */ public static String getConstant(String elementName, int preferenceType) { StringBuffer sb = new StringBuffer(); sb.append(elementName); sb.append("."); //$NON-NLS-1$ switch(preferenceType) { case COLOR_FILL: sb.append(COLOR_FILL_CONSTANT); break; case FONT: sb.append(FONT_CONSTANT); break; case COLOR_FONT: sb.append(COLOR_FONT_CONSTANT); break; case COLOR_LINE: sb.append(COLOR_LINE_CONSTANT); break; case COLOR_GRADIENT: sb.append(COLOR_GRADIENT_CONSTANT); break; case GRADIENT_POLICY: sb.append(GRADIENT_POLICY_CONSTANT); break; case JUMPLINK_STATUS: sb.append(JUMPLINK_STATUS_CONSTANT); break; case JUMPLINK_REVERSE: sb.append(JUMPLINK_REVERSE_CONSTANT); break; case JUMPLINK_TYPE: sb.append(JUMPLINK_TYPE_CONSTANT); break; case ROUTING_POLICY_DISTANCE: sb.append(ROUTING_POLICY_DISTANCE_CONSTANT); break; case ROUTING_POLICY_OBSTRUCTION: sb.append(ROUTING_POLICY_OBSTRUCTION_CONSTANT); break; case ROUTING_STYLE: sb.append(ROUTING_STYLE_CONSTANT); break; case SMOOTHNESS: sb.append(SMOOTHNESS_CONSTANT); break; case SHADOW: sb.append(SHADOW_CONSTANT); break; case ELEMENTICON: sb.append(ELEMENTICON_CONSTANT); break; case QUALIFIEDNAME: sb.append(QUALIFIEDNAME_CONSTANT); break; case HEIGHT: sb.append(HEIGHT_CONSTANT); break; case WIDTH: sb.append(WIDTH_CONSTANT); break; case COMPARTMENT_VISIBILITY: sb.append(COMPARTMENT_VISIBILITY_CONSTANT); break; case COMPARTMENT_NAME_VISIBILITY: sb.append(COMPARTMENT_NAME_VISIBILITY_CONSTANT); break; case LABEL_VISIBILITY: sb.append(LABEL_VISIBILITY_CONSTANT); case LOCATION_X: sb.append(LOCATION_X_CONSTANT); case LOCATION_Y: sb.append(LOCATION_Y_CONSTANT); default: break; } return sb.toString(); } /** * * @param elementName * diagramKind+'_'+element * @param preferenceType * the type of preference to store. It must be a value defined in {@link PreferenceConstantHelper} * @return the key for the element of a diagram */ public static String getElementConstant(String elementName, int preferenceType) { return DIAGRAM_ELEMENT + getConstant(elementName, preferenceType); } /** * * @param elementName * diagramKind+'_'+element * @param compartmentName * the compartment name * @param preferenceType * the type of preference to store. It must be a value defined in {@link PreferenceConstantHelper} * @return the key for the element of a diagram */ public static String getCompartmentElementConstant(String elementName, String compartmentName, int preferenceType) { String tmp = getElementConstant(elementName, preferenceType); return tmp.replaceFirst("\\.", "_" + compartmentName + "."); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } /** * * * @param elementName * diagramKind+'_'+element * @param labelRole * he role of the label * @param preferenceType * the type of preference to store. It must be a value defined in {@link PreferenceConstantHelper} * @return the key for the element of a diagram */ public static String getLabelElementConstant(String elementName, String labelRole, int preferenceType) { String tmp = getElementConstant(elementName, preferenceType); return tmp.replaceFirst("\\.", "_" + labelRole + "."); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } /** * * @param preferenceType * the type of preference to store. It must be a value defined in {@link PreferenceConstantHelper} * @return get the preference key at the papyrus editor level */ public static String getPapyrusEditorConstant(int preferenceType) { return getConstant(PAPYRUS_EDITOR_PREFERENCE_PREFIX, preferenceType); } /** * * @param diagramKind * the kind of diagram. * @param preferenceType * the type of preference to store. It must be a value defined in {@link PreferenceConstantHelper} * @return the preference key at the diagram level */ public static String getDiagramConstant(String diagramKind, int preferenceType) { return DIAGRAM_PREFERENCE_PREFIX + getConstant(diagramKind, preferenceType); } }