/*
* 7 févr. 2005 - 11:19:31
*
* Navigator.java Copyright (C) 2004 Dreux Loic dreuxl@free.fr
*
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; either version 2 of the License, or any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package org.analyse.core.gui.panel;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.util.HashMap;
import java.util.Map;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JPanel;
import org.analyse.core.gui.AnalyseFrame;
import org.analyse.core.gui.action.BasicAction;
import org.analyse.core.util.Constantes;
import org.analyse.core.util.Utilities;
import com.jgoodies.forms.builder.PanelBuilder;
import com.jgoodies.forms.layout.CellConstraints;
import com.jgoodies.forms.layout.FormLayout;
import com.jgoodies.uif.lite.panel.SimpleInternalFrame;
public class Navigator extends JPanel
{
/**
*
*/
private static final long serialVersionUID = 5561301850688044080L;
private SimpleInternalFrame iFrame;
private Map<String, JPanel> hashtable;
private AnalyseFrame analyseFrame;
private JPanel centre;
private FormLayout layout;
private PanelBuilder builder;
private CellConstraints cc;
private int inc;
public Navigator(AnalyseFrame analyseFrame)
{
/* Construction du Navigator */
super(new BorderLayout());
this.setBorder(BorderFactory.createEmptyBorder(4,4,0,0));
this.analyseFrame = analyseFrame;
/* Initialise la hashtable contenant les Panels */
hashtable = new HashMap<String, JPanel>();
/* Construction de la Frame Interne*/
iFrame = new SimpleInternalFrame(Utilities.getLangueMessage(Constantes.MESSAGE_NAVIGATEUR));
layout = new FormLayout(
"5px, 182px, 5px",
"2mm, p, 2mm, p, 2mm, p, 2mm, p, 2mm, p, 2mm, p");
builder = new PanelBuilder(layout);
cc = new CellConstraints();
inc = 2;
this.add(iFrame);
}
/**
* Ajoute un bouton dans la barre de Navigation
* @param action Action liée au bouton
*/
public void addButton(BasicAction action)
{
JButton button = new JButton(action) {
/**
*
*/
private static final long serialVersionUID = -8635984393664103035L;
public void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D)g;
g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
super.paintComponent(g2d);
}
};
button.setOpaque(false);
button.setBorder(null);
button.setHorizontalAlignment(JButton.LEFT);
button.setForeground(new Color(70,47,47));
builder.add(button, cc.xy(2, inc));
inc += 2;
if(centre != null)
iFrame.remove(centre);
centre = builder.getPanel();
centre.setBackground(Color.white);
iFrame.add(BorderLayout.CENTER, centre);
}
}