/*
Copyright 2014 by Sean Luke and George Mason University
Licensed under the Academic Free License version 3.0
See the file "LICENSE" for more information
*/
package sim.portrayal.inspector;
public interface TabbableAndGroupable
{
/** Returns a list of names for tabs to appear in the TabbedInspector. */
public String[] provideTabNames();
/** Returns, for each tab and each group, a list of names of Java Bean Properties of this object
which should appear under that tab and group. */
public String[][][] provideTabGroupProperties();
/** Returns, for each tab, a list of names of groups which should appear under that tab.
The number of groups per tab must be equal to, or one less than, the number of tab
properties per tab as provided in provideTabProperties(). If there is one less
group, then the remaining tab properties will be inserted inline. */
public String[][] provideTabGroups();
/** Returns a name for an additional tab holding the remaining Java Bean Properties
not given in provideValues(), or null if no such tab should be displayed. */
public String provideExtraTab();
}