/*
 * Copyright (c) 2010 Mia-Software.
 * 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:
 *    Gabriel Barbier (Mia-Software) - initial API and implementation
 */

package org.eclipse.gmt.modisco.infra.prefuse.examples.graphview;

public interface GraphViewConstants {
	static final String graph = "graph"; //$NON-NLS-1$
    static final String nodes = "graph.nodes"; //$NON-NLS-1$
    static final String edges = "graph.edges"; //$NON-NLS-1$
    static final String draw = "draw"; //$NON-NLS-1$

}
