/*
 * This file is part of Herschel Common Science System (HCSS).
 * Copyright 2001-2010 Herschel Science Ground Segment Consortium
 *
 * HCSS is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation, either version 3 of
 * the License, or (at your option) any later version.
 *
 * HCSS 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 Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General
 * Public License along with HCSS.
 * If not, see .
 */
package org.jplot2d.swing.proptable.editor;

import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.plaf.LabelUI;

import org.jplot2d.swing.proptable.cellrenderer.FontCellRenderer;

/**
 * FontPropertyEditor.
* */ public class FontPropertyEditor extends AbstractPropertyEditor { private FontCellRenderer label; private JButton button; private Font font; private FontChooserDialog fontDialog; public FontPropertyEditor() { editor = new JPanel(new BorderLayout(0, 0)); editor.add(getLabel(), "Center"); editor.add(getButton(), "East"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { selectFont(); } }); editor.setOpaque(false); } private FontCellRenderer getLabel() { if (label == null) { label = new FontCellRenderer(); label.setUI((LabelUI) UIManager.getUI(label)); label.setOpaque(false); } return label; } private JButton getButton() { if (button == null) { button = new FixedButton(); } return button; } public Font getValue() { return font; } public void setValue(Object value) { font = (Font) value; label.setValue(value); } protected void selectFont() { if (fontDialog == null) { Window win = SwingUtilities.getWindowAncestor(editor); fontDialog = new FontChooserDialog(win, true); } fontDialog.setFontValue(getValue()); fontDialog.setLocationRelativeTo(editor); fontDialog.setVisible(true); if (fontDialog.isOK()) { Font oldFont = font; setValue(fontDialog.getFontValue()); firePropertyChange(oldFont, font); } } }

Ads help maintain this website.