1 /* 2 * The contents of this file are subject to the terms of the Common Development 3 * and Distribution License (the License). You may not use this file except in 4 * compliance with the License. 5 * 6 * You can obtain a copy of the License at http://www.netbeans.org/cddl.html 7 * or http://www.netbeans.org/cddl.txt. 8 * 9 * When distributing Covered Code, include this CDDL Header Notice in each file 10 * and include the License file at http://www.netbeans.org/cddl.txt. 11 * If applicable, add the following below the CDDL Header, with the fields 12 * enclosed by brackets [] replaced by your own identifying information: 13 * "Portions Copyrighted [year] [name of copyright owner]" 14 * 15 * The Original Software is NetBeans. The Initial Developer of the Original 16 * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun 17 * Microsystems, Inc. All Rights Reserved. 18 */ 19 20 package org.netbeans.spi.options; 21 22 /** 23 * Implementation of this class represents one category (like "Ant" 24 * or "Form Editor") in Miscellaneous Panel of Options Dialog. It should 25 * be registerred in layers: 26 * 27 * <pre style="background-color: rgb(255, 255, 153);"> 28 * <folder name="OptionsDialog"> 29 * <folder name="Advanced"> 30 * <file name="FooAdvancedPanel.instance"> 31 * <attr name="instanceClass" stringvalue="org.foo.FooAdvancedPanel"/> 32 * </file> 33 * </folder> 34 * </folder></pre> 35 * 36 * No explicit sorting recognized (may be sorted e.g. by display name). 37 * 38 * @see OptionsCategory 39 * @see OptionsPanelController 40 * @author Jan Jancura 41 */ 42 public abstract class AdvancedOption { 43 44 /** 45 * Returns name of category used in Advanced Panel of 46 * Options Dialog. 47 * 48 * @return name of category 49 */ 50 public abstract String getDisplayName (); 51 52 /** 53 * Returns tooltip to be used on category name. 54 * 55 * @return tooltip for this category 56 */ 57 public abstract String getTooltip (); 58 59 /** 60 * Returns {@link OptionsPanelController} for this category. PanelController 61 * creates visual component to be used inside of Advanced Panel. 62 * 63 * @return new instance of {@link OptionsPanelController} for this advanced options 64 * category 65 */ 66 public abstract OptionsPanelController create (); 67 68 } 69