001 /* 002 Copyright (C) 2001-2003 Laurent Martelli <laurent@aopsys.com> 003 004 This program is free software; you can redistribute it and/or modify 005 it under the terms of the GNU Lesser General Public License as 006 published by the Free Software Foundation; either version 2 of the 007 License, or (at your option) any later version. 008 009 This program is distributed in the hope that it will be useful, but 010 WITHOUT ANY WARRANTY; without even the implied warranty of 011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 012 Lesser General Public License for more details. 013 014 You should have received a copy of the GNU Lesser General Public 015 License along with this program; if not, write to the Free Software 016 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 017 USA */ 018 019 package org.objectweb.jac.aspects.gui.swing; 020 021 import java.awt.Dimension; 022 import java.awt.GridLayout; 023 import java.awt.Insets; 024 import javax.swing.BorderFactory; 025 import javax.swing.BoxLayout; 026 import javax.swing.JCheckBox; 027 import javax.swing.JComponent; 028 import org.objectweb.jac.aspects.gui.FieldUpdate; 029 import org.objectweb.jac.aspects.gui.FieldView; 030 import org.objectweb.jac.core.rtti.FieldItem; 031 032 033 034 public class BooleanViewer extends AbstractFieldView 035 implements FieldView, FieldUpdate 036 { 037 JCheckBox checkBox = new JCheckBox(); 038 039 public BooleanViewer(Boolean value, Object substance, FieldItem field) { 040 super(substance,field); 041 checkBox.setEnabled(false); 042 add(checkBox); 043 } 044 045 public BooleanViewer() { 046 setLayout(new GridLayout(1,1)); 047 checkBox.setVerticalAlignment(JCheckBox.CENTER); 048 checkBox.setHorizontalAlignment(JCheckBox.CENTER); 049 checkBox.setMargin(new Insets(0,0,0,0)); 050 checkBox.setBorder(BorderFactory.createEmptyBorder()); 051 add(checkBox); 052 } 053 054 public void setValue(Object value) { 055 checkBox.setSelected(((Boolean)value).booleanValue()); 056 } 057 058 protected JComponent getComponent() { 059 return checkBox; 060 } 061 062 public Dimension getPreferredSize() { 063 return checkBox.getPreferredSize(); 064 } 065 }