public abstract class ProjectSettingsTraversablePanel extends DefaultTraversablePanel
TraversableContext
must contain the project
properties HashStructure that will be edited. It must also contain
the workspace-level properties HashStructure to support those
properties that are registered as shareable across projects in a
workspace.
In the case of the Project Properties dialog, this panel can edit
user-private properties, project-shared properties, or workspace-
shared properties. Subclasses must get the appropriate properties
data, by calling getPropertyData(Namespace)
.
Note that despite the name, this class is now also used for panels in the
Application Properties dialog. Not all terminology may have been updated to
reflect this.
javax.swing.JPanel.AccessibleJPanel
javax.swing.JComponent.AccessibleJComponent
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
CHAINED_PROPERTY_DATA_KEY
Deprecated.
|
static java.lang.String |
DEFAULT_PROJECT_KEY
Deprecated.
|
static java.lang.String |
EDITING_CUSTOM_PROPERTIES_KEY
Deprecated.
|
static java.lang.String |
PROPERTY_DATA_KEY
Deprecated.
|
static java.lang.String |
USER_ONLY_PROPERTY_DATA_KEY
Deprecated.
|
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Constructor and Description |
---|
ProjectSettingsTraversablePanel() |
Modifier and Type | Method and Description |
---|---|
void |
activateProperties(TraversableContext tc,
boolean useCustom)
Enables or disables custom properties.
|
java.awt.Component |
add(java.awt.Component comp) |
java.awt.Component |
add(java.awt.Component comp,
int index) |
void |
add(java.awt.Component comp,
java.lang.Object constraints) |
void |
add(java.awt.Component comp,
java.lang.Object constraints,
int index) |
boolean |
arePropertiesOverridden()
Deprecated.
No replacement.
|
static boolean |
editingUserProperties(Namespace data)
Indicates whether or not the supplied
Namespace
corresponds to user properties opposed to shared properties. |
protected boolean |
editsSharedProperties()
Indicates whether this panel supports editing of Workspace-level
properties that are shared across projects.
|
abstract java.lang.String |
getDataKey()
Subclasses should implement this method and return the single
key used to identify their project properties, unless
the UI describes properties that span more than a single
HashStructure , in which case null
should be returned. |
protected java.lang.String |
getHashAdapterDelegateKey()
If the properties edited by this panel may be managed
by a
HSAdapterDelegate ,
override this method and return the key that identifies the parent
hash structure. |
java.awt.LayoutManager |
getLayout() |
protected static Project |
getProject(Namespace data)
Returns the Project that is being edited.
|
protected static Project |
getProject(Namespace data,
boolean projectCopy)
Returns the Project that is being edited.
|
protected static Workspace |
getProjectsOwningWorkspace(Namespace data)
|
protected static PropertyStorage |
getPropertyData(Namespace data)
Gets a
PropertyStorage object that wraps the properties
under edit. |
abstract java.lang.String[] |
getPropertyKeys()
Subclasses must implement this method and return the list of
property keys for this Project Properties panel.
|
static boolean |
isDefaultProject(Namespace data)
Indicates whether or not the data in the supplied
corresponds to the default project
properties data. |
static boolean |
isEditingSharedProperties(Namespace data)
Indicates whether this panel is currently editing Workspace-level
properties that are shared across projects.
|
boolean |
isUserOnly()
The default implementation returns
false , indicating
that the properties that are edited on this panel can be set
at the user and at the project level. |
void |
onEntry(TraversableContext traversableContext)
Does nothing by default.
|
abstract void |
onProjectPanelEntry(TraversableContext traversableContext)
Subclasses must implement this method which is invoked when the
panel is about to be displayed.
|
void |
remove(java.awt.Component comp) |
void |
remove(int index) |
void |
removeAll() |
void |
setLayout(java.awt.LayoutManager mgr) |
boolean |
supportsSharedProperties() |
gbc, gbc, getComponent, getDefaultTitle, getExitTransition, getHelpID, getText, onExit, setDefaultTitle, setHelpID
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, transferFocusDownCycle, validate, validateTree
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
@Deprecated public static final java.lang.String DEFAULT_PROJECT_KEY
@Deprecated public static final java.lang.String EDITING_CUSTOM_PROPERTIES_KEY
@Deprecated public static final java.lang.String PROPERTY_DATA_KEY
@Deprecated public static final java.lang.String CHAINED_PROPERTY_DATA_KEY
@Deprecated public static final java.lang.String USER_ONLY_PROPERTY_DATA_KEY
public void onEntry(TraversableContext traversableContext)
DefaultTraversablePanel
onEntry
in interface Traversable
onEntry
in class DefaultTraversablePanel
traversableContext
- The data wrapper where the
Traversable
locates the data that it needs to
populate the UI.Traversable.onEntry(TraversableContext)
public abstract void onProjectPanelEntry(TraversableContext traversableContext)
Note: This method should be protected. This method should
not be called directly; instead use onEntry(oracle.ide.panels.TraversableContext)
when displaying
this panel.
traversableContext
- the shared data contextpublic abstract java.lang.String getDataKey()
HashStructure
, in which case null
should be returned.null
getPropertyKeys()
public abstract java.lang.String[] getPropertyKeys()
HashStructure
,
subclasses should implement getDataKey()
and return the key used to store the set of properties, then
this method should return the keys as short property names like:
"debugInformation"
HashStructure
, the property keys must be in the
form:
"oracle.jdeveloper.compiler.OjcConfiguration/debugInformation"
getDataKey()
protected java.lang.String getHashAdapterDelegateKey()
HSAdapterDelegate
,
override this method and return the key that identifies the parent
hash structure.
Note: Only override this method if all properties edited
in this GUI are delegated using a single key. If some properties
are delegated while others are not, use a HSAdapterDelegateComponent
to wrap the components that edit those properties.
HSAdapterDelegateComponent
protected static Workspace getProjectsOwningWorkspace(Namespace data)
Workspace
in the Namespace
. This
method should not be used to retrieve the workspace properties under
edit.data
- the data used in the context of this panelWorkspace
or nulljava.lang.NullPointerException
- if data is nullprotected static Project getProject(Namespace data)
getPropertyData(oracle.ide.util.Namespace)
and edit properties in that object.data
- the shared data used in the context of this panelProject
under edit; could be null if called
outside the context of the Project Properties dialogjava.lang.NullPointerException
- if data is nullgetProject(Namespace, boolean)
,
getPropertyData(oracle.ide.util.Namespace)
protected static Project getProject(Namespace data, boolean projectCopy)
projectCopy
is true, a copy of the Project is returned and any direct edits
to this Project's properties will not be persisted and no changes
made during the lifetime of the dialog will be visible in the
Project object.
This method should not be used to retrieve or edit the properties
of the Project under edit. Instead call getPropertyData(oracle.ide.util.Namespace)
.
data
- the data used in the context of this panelprojectCopy
- if true, returns a copy of the original project,
without any edits made in the settings dialogProject
java.lang.NullPointerException
- if data is nullgetProject(Namespace)
,
getPropertyData(oracle.ide.util.Namespace)
protected static PropertyStorage getPropertyData(Namespace data)
PropertyStorage
object that wraps the properties
under edit. This method handles returning the correct properties
object, either those stored at the project-level or those stored
in the workspace.data
- the data used in the context of this paneljava.lang.NullPointerException
- if data is nullsupportsWorkspaceSharedProperties()
protected boolean editsSharedProperties()
false.
Subclasses must override this method and return
true
to allow editing of workspace-level shared properties
from the Project Properties dialog.
Note: Not only must the panel return true
here but the
key that identifies the root of your properties hash structure must
be registered using the shared-properties-hook.
true
if properties can be stored at the workspace
level and shared across projects, false
otherwisepublic static boolean isEditingSharedProperties(Namespace data)
data
- The TraversableContext for the panelpublic final boolean supportsSharedProperties()
public boolean isUserOnly()
false
, indicating
that the properties that are edited on this panel can be set
at the user and at the project level.
Subclasses that provide UI for user-only properties, those which are
never stored in the project, should override this method and
return true
.
true
if the properties can only be set at the
user level, false
otherwisepublic static final boolean isDefaultProject(Namespace data)
Namespace
corresponds to the default project
properties data.data
- the shared Namespace
true
if the data is from the default
project. Returns false
if the data is a
real project.public static final boolean editingUserProperties(Namespace data)
Namespace
corresponds to user properties opposed to shared properties.true
if the data is user-specific
project properties. Returns false
if the data
corresponds to (shared) project properties.public final void activateProperties(TraversableContext tc, boolean useCustom)
useCustom
is true
, the custom properties are enabled so that
they are accessible in the chained HashStructure. When
useCustom
is false
, the custom properties
are hidden so that they are not accessible from the project.tc
- the shared data contextuseCustom
- when true
, custom properties are
enabled, when false
they are disabled and only
project-level (shared) properties are usedHashStructureNode.getProperties()
,
HashStructureNode.getPropertiesForOverriding()
@Deprecated public boolean arePropertiesOverridden()
public void setLayout(java.awt.LayoutManager mgr)
setLayout
in class java.awt.Container
public java.awt.Component add(java.awt.Component comp)
add
in class java.awt.Container
public java.awt.Component add(java.awt.Component comp, int index)
add
in class java.awt.Container
public void add(java.awt.Component comp, java.lang.Object constraints)
add
in class java.awt.Container
public void add(java.awt.Component comp, java.lang.Object constraints, int index)
add
in class java.awt.Container
public void remove(java.awt.Component comp)
remove
in class java.awt.Container
public void remove(int index)
remove
in class java.awt.Container
public void removeAll()
removeAll
in class java.awt.Container
public java.awt.LayoutManager getLayout()
getLayout
in class java.awt.Container