001 // License: GPL. Copyright 2007 by Immanuel Scholz and others 002 package org.openstreetmap.josm.gui.preferences; 003 004 /** 005 * Base interface of Preferences settings, should not be directly implemented, 006 * see {@link TabPreferenceSetting} and {@link SubPreferenceSetting}. 007 */ 008 public interface PreferenceSetting { 009 /** 010 * Add the GUI elements to the dialog. The elements should be initialized after 011 * the current preferences. 012 */ 013 void addGui(PreferenceTabbedPane gui); 014 015 /** 016 * Called when OK is pressed to save the setting in the preferences file. 017 * Return true when restart is required. 018 */ 019 boolean ok(); 020 021 /** 022 * Called to know if the preferences tab has only to be displayed in expert mode. 023 * @return true if the tab has only to be displayed in expert mode, false otherwise. 024 */ 025 public boolean isExpert(); 026 }