/*
The contents of this file are subject to the Projity Public License Version 1.0
("License"); You may not use this file except in compliance with the
License. You may obtain a copy of the License at http://www.projity.com/PPL/license.html
Software distributed under the License is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
the specific language governing rights and limitations under the License.

The Original Code is: Projity Open Source

The Initial Developer of the Original Code is Projity, Inc.
Portions created by Projity are Copyright (C) 2004-2007 Projity, Inc.;
All Rights Reserved.
Contributor(s): Laurent Chretienneau, Howard Katz
*/
package com.projity.pm.graphic.laf;

import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Shape;

import javax.swing.JComponent;
import javax.swing.JTabbedPane;
import javax.swing.LookAndFeel;

public interface LafManager {

	public abstract void clean();

	public abstract LookAndFeel getPlaf();

	public abstract void initLookAndFeel();

	public abstract void setColorTheme(String viewName);

	public abstract void changePalette();

	public abstract boolean isChangePaletteAllowed(LookAndFeel lookAndFeel);

	public abstract void paintComponent(Graphics g, Component component,
			boolean selected);

	public abstract void setUI(JTabbedPane component);

	public abstract void setColorScheme(JComponent component);

	public abstract void paintTimeScale(Graphics2D g2, int x, int y, int w,
			int h, Shape[] shapes);
	
	public abstract Color getSelectedBackgroundColor();
	
	public abstract Color getUnselectedBackgroundColor();

	public abstract void dumpUIValues();
}