/*******************************************************************************
 * Copyright (c) 2003, 2008 IBM Corporation and others.
 * 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:
 *    Kentarou FUKUDA - initial API and implementation
 *******************************************************************************/ 

package org.eclipse.actf.visualization.eval.problem;

import org.eclipse.actf.visualization.eval.internal.Messages;


public class ProblemConst {
    public static final String ALL_ERRORS = Messages.getString("ProblemConst.All_Errors_1"); //$NON-NLS-1$

    public static final String ESSENTIAL = Messages.getString("ProblemConst.Essential_2"); //$NON-NLS-1$

    public static final String USER_CHECK = Messages.getString("ProblemConst.User_Check_5"); //$NON-NLS-1$

    public static final String INFO = Messages.getString("ProblemConst.Info"); //$NON-NLS-1$
    
    public static final String COMPLIANCE = Messages.getString("ProblemConst.Compliance_6"); //$NON-NLS-1$

    public static final String ACCESSIBILITY = Messages.getString("ProblemConst.0"); //$NON-NLS-1$

    //the titles of the Problem Table
    public final static String TITLE_ICON = Messages.getString("ProblemConst.Type_11"); //$NON-NLS-1$

    public final static String TITLE_LINE = Messages.getString("ProblemConst.Line_12"); //$NON-NLS-1$

    public final static String TITLE_HIGHLIGHT = Messages.getString("ProblemConst.Highlight"); //$NON-NLS-1$
    
    public final static String TITLE_DESCRIPTION =  Messages.getString("ProblemConst.Problem_Description_17"); //$NON-NLS-1$

    public final static String TITLE_FORECOLOR = Messages.getString("ProblemConst.Foreground_18"); //$NON-NLS-1$

    public final static String TITLE_BACKCOLOR = Messages.getString("ProblemConst.Background_19"); //$NON-NLS-1$

    public final static String TITLE_SEVERITY = Messages.getString("ProblemConst.Severity_20"); //$NON-NLS-1$

    public final static String TITLE_X = Messages.getString("ProblemConst.X_21"); //$NON-NLS-1$

    public final static String TITLE_Y = Messages.getString("ProblemConst.Y_22"); //$NON-NLS-1$

    public final static String TITLE_AREA = Messages.getString("ProblemConst.Area_23"); //$NON-NLS-1$

}