001 // License: GPL. For details, see LICENSE file.
002 package org.openstreetmap.josm.gui.preferences;
003
004 import javax.swing.JPanel;
005 import javax.swing.JScrollPane;
006
007 import org.openstreetmap.josm.tools.GBC;
008
009 public abstract class DefaultTabPreferenceSetting extends DefaultPreferenceSetting implements TabPreferenceSetting {
010
011 private final String iconName;
012 private final String description;
013 private final String title;
014
015 public DefaultTabPreferenceSetting() {
016 this(null, null, null);
017 }
018
019 public DefaultTabPreferenceSetting(String iconName, String title, String description) {
020 this(iconName, title, description, false);
021 }
022
023 public DefaultTabPreferenceSetting(String iconName, String title, String description, boolean isExpert) {
024 super(isExpert);
025 this.iconName = iconName;
026 this.description = description;
027 this.title = title;
028 }
029
030 @Override
031 public String getIconName() {
032 return iconName;
033 }
034
035 @Override
036 public String getTooltip() {
037 if (getDescription() != null) {
038 return "<html>"+getDescription()+"</html>";
039 } else {
040 return null;
041 }
042 }
043
044 @Override
045 public String getDescription() {
046 return description;
047 }
048
049 @Override
050 public String getTitle() {
051 return title;
052 }
053
054 protected final void createPreferenceTabWithScrollPane(PreferenceTabbedPane gui, JPanel panel) {
055 GBC a = GBC.eol().insets(-5,0,0,0);
056 a.anchor = GBC.EAST;
057
058 JScrollPane scrollPane = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
059 scrollPane.setBorder(null);
060
061 JPanel tab = gui.createPreferenceTab(this);
062 tab.add(scrollPane, GBC.eol().fill(GBC.BOTH));
063 tab.add(GBC.glue(0,10), a);
064 }
065 }