001 /* JAPI - (Yet another (hopefully) useful) Java API 002 * 003 * Copyright (C) 2004-2006 Christian Hujer 004 * 005 * This program is free software; you can redistribute it and/or 006 * modify it under the terms of the GNU General Public License as 007 * published by the Free Software Foundation; either version 2 of the 008 * License, or (at your option) any later version. 009 * 010 * This program is distributed in the hope that it will be useful, but 011 * WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 013 * General Public License for more details. 014 * 015 * You should have received a copy of the GNU General Public License 016 * along with this program; if not, write to the Free Software 017 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 018 * 02111-1307, USA. 019 */ 020 021 package net.sf.japi.swing.prefs; 022 023 import java.net.URL; 024 import java.awt.LayoutManager; 025 import javax.swing.Icon; 026 import javax.swing.JComponent; 027 import javax.swing.JPanel; 028 import javax.swing.BoxLayout; 029 import net.sf.japi.swing.ColumnLayout; 030 031 /** Abstract preferences implementation. 032 * Subclass this. 033 * Build the panel in your constructor. 034 * The default layout of an AbstractPrefs is {@link BoxLayout} with {@link BoxLayout#Y_AXIS}. 035 * @author <a href="mailto:chris@riedquat.de">Christian Hujer</a> 036 */ 037 public abstract class AbstractPrefs extends JPanel implements Prefs { 038 039 /** The icon to be displayed in the list where the user can choose amongst preferences. 040 * @see #getListLabelIcon() 041 * @serial include 042 */ 043 private Icon listLabelIcon; 044 045 /** The label text to be displayed in the list where the user can choose amongst preferences. 046 * @see #getListLabelText() 047 * @serial include 048 */ 049 private String listLabelText; 050 051 /** The title text to be displayed as title for this prefs module. 052 * @see #getLabelText() 053 * @serial include 054 */ 055 private String labelText; 056 057 /** The Help URL. 058 * @serial include 059 */ 060 private URL helpURL; 061 062 /** The Help text (HTML). 063 * @serial include 064 */ 065 private String helpText; 066 067 /** Constructor. */ 068 protected AbstractPrefs() { 069 super(new ColumnLayout()); 070 // setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); 071 } 072 073 /** Constructor that allows setting the initial layout. 074 * @param layout Layout 075 */ 076 protected AbstractPrefs(final LayoutManager layout) { 077 super(layout); 078 } 079 080 /** {@inheritDoc} */ 081 public final JComponent getEditComponent() { 082 return this; 083 } 084 085 /** {@inheritDoc} */ 086 public final Icon getListLabelIcon() { 087 return listLabelIcon; 088 } 089 090 /** Set the icon that is to be displayed in the list where the user can choose amongst preferences. 091 * @param listLabelIcon icon 092 */ 093 protected final void setListLabelIcon(final Icon listLabelIcon) { 094 this.listLabelIcon = listLabelIcon; 095 } 096 097 /** {@inheritDoc} */ 098 public final String getListLabelText() { 099 return listLabelText; 100 } 101 102 /** Set the label text that is to be displayed in the list where the user can choose amongst preferences. 103 * @param listLabelText text 104 */ 105 protected final void setListLabelText(final String listLabelText) { 106 this.listLabelText = listLabelText; 107 } 108 109 /** {@inheritDoc} */ 110 public final String getLabelText() { 111 return labelText; 112 } 113 114 /** Set the title text that is to be displayed as title for this prefs module. 115 * @param labelText text 116 */ 117 protected final void setLabelText(final String labelText) { 118 this.labelText = labelText; 119 } 120 121 /** {@inheritDoc} */ 122 public final URL getHelpURL() { 123 return helpURL; 124 } 125 126 /** Set the help URL. 127 * @param helpURL Help URL 128 */ 129 protected final void setHelpURL(final URL helpURL) { 130 this.helpURL = helpURL; 131 } 132 133 /** {@inheritDoc} */ 134 public final String getHelpText() { 135 return helpText; 136 } 137 138 /** Set the help text. 139 * @param helpText Help text 140 */ 141 protected final void setHelpText(final String helpText) { 142 this.helpText = helpText; 143 } 144 145 } // class AbstractPrefs