Class ToggleDialog
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- org.openstreetmap.josm.gui.dialogs.ToggleDialog
-
- All Implemented Interfaces:
java.awt.event.AWTEventListener,java.awt.image.ImageObserver,java.awt.MenuContainer,java.io.Serializable,java.util.EventListener,javax.accessibility.Accessible,Helpful,ShowHideButtonListener,PreferenceChangedListener,Destroyable
- Direct Known Subclasses:
ChangesetDialog,CommandStackDialog,ConflictDialog,FilterDialog,ImageViewerDialog,LayerListDialog,MapPaintDialog,MinimapDialog,NotesDialog,PropertiesDialog,RelationListDialog,SelectionListDialog,UserListDialog,ValidatorDialog
public class ToggleDialog extends javax.swing.JPanel implements ShowHideButtonListener, Helpful, java.awt.event.AWTEventListener, Destroyable, PreferenceChangedListener
This class is a toggle dialog that can be turned on and off.- Since:
- 8
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classToggleDialog.ButtonHidingTypeThe button-hiding strategy in toggler dialogs.private classToggleDialog.DetachedDialogThe dialog class used to display toggle dialogs in a detached window.protected classToggleDialog.TitleBarThe title bar displayed in docked modeclassToggleDialog.ToggleDialogActionThe action to toggle the visibility state of this toggle dialog.-
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description private javax.swing.JRadioButtonMenuItemalwaysHiddenprivate javax.swing.JRadioButtonMenuItemalwaysShownprotected javax.swing.JToggleButtonbuttonprivate java.util.List<javax.swing.Action>buttonActionsprotected ToggleDialog.ButtonHidingTypebuttonHidingIndicates whether dynamic button hiding is active or not.private javax.swing.JPanelbuttonsPanelprotected javax.swing.JDialogdetachedDialogthe JDialog displaying the toggle dialog as undocked dialogprotected DialogsPaneldialogsPanelDialogsPanel that manages all ToggleDialogsprivate javax.swing.JRadioButtonMenuItemdynamicprotected booleanisCollapsedIf isShowing and isDocked are true, indicates whether the dialog is currently minimized or not.protected booleanisDockedIf isShowing is true, indicates whether the dialog is docked or not, e.protected booleanisShowingIndicates whether the dialog is showing or not.protected java.lang.Stringnameprotected java.lang.Class<? extends PreferenceSetting>preferenceClassThe linked preferences class (optional).protected java.lang.StringpreferencePrefixprivate intpreferredHeightthe preferred height if the toggle dialog is expandedstatic BooleanPropertyPROP_DYNAMIC_BUTTONSProperty to enable dynamic buttons globally.private ParametrizedEnumProperty<ToggleDialog.ButtonHidingType>propButtonHidingprivate static java.lang.StringSELECTEDprotected ToggleDialog.TitleBartitleBarprotected ToggleDialog.ToggleDialogActiontoggleActionThe action to toggle this dialogprotected javax.swing.JCheckBoxMenuItemwindowMenuItemholds the menu entry in the windows menu.-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
-
Constructor Summary
Constructors Constructor Description ToggleDialog(java.lang.String name, java.lang.String iconName, java.lang.String tooltip, Shortcut shortcut, int preferredHeight)ConstructorToggleDialog(java.lang.String name, java.lang.String iconName, java.lang.String tooltip, Shortcut shortcut, int preferredHeight, boolean defShow)ConstructorToggleDialog(java.lang.String name, java.lang.String iconName, java.lang.String tooltip, Shortcut shortcut, int preferredHeight, boolean defShow, java.lang.Class<? extends PreferenceSetting> prefClass)ConstructorToggleDialog(java.lang.String name, java.lang.String iconName, java.lang.String tooltip, Shortcut shortcut, int preferredHeight, boolean defShow, java.lang.Class<? extends PreferenceSetting> prefClass, boolean isExpert)Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidbuttonHidden()Called when the button is hiddenvoidbuttonShown()Called when the button is shownvoidclearButtonActions()Clear button actions.voidcloseDetachedDialog()Closes the detached dialog if this toggle dialog is currently displayed in a detached dialog.voidcollapse()Collapses the toggle dialog to the title bar onlyprotected java.awt.ComponentcreateLayout(java.awt.Component data, boolean scroll, java.util.Collection<SideButton> buttons)Create a component with the given layout for this component.protected java.awt.ComponentcreateLayout(java.awt.Component data, boolean scroll, java.util.Collection<SideButton> firstButtons, java.util.Collection<SideButton>... nextButtons)voiddestroy()Called when the object has been destroyed.protected voiddetach()Display the dialog in a detached window.protected voiddock()Displays the toggle dialog in the toggle dialog view on the right of the main map window.protected booleandockWhenClosingDetachedDlg()private voiddynamicButtonsPropertyChanged()voideventDispatched(java.awt.AWTEvent event)protected voidexpand()Expands the toggle dialogjavax.swing.JToggleButtongetButton()Gets the button from the button list that is used to display this dialog.protected java.awt.DimensiongetDefaultDetachedSize()Returns the default size of the detached dialog.intgetLastHeight()Returns the last used height stored in preferences or preferredHeight.java.lang.StringgetName()Replies the name of this toggle dialogjava.lang.StringgetPreferencePrefix()Replies the prefix for the preference settings of this dialog.intgetPreferredHeight()Returns the preferred height of this dialog.javax.swing.AbstractActiongetToggleAction()Replies the action to toggle the visible state of this toggle dialogjava.lang.StringhelpTopic()Returns the help topic on JOSM wiki for this feature.voidhideDialog()Hides the dialogvoidhideNotify()Called when toggle dialog is hidden (collapsed, removed, MapFrame is removed, ...).booleanisDialogInCollapsedView()Determines if this dialog is docked and collapsed.booleanisDialogInDefaultView()Determines if this dialog is docked and expanded.booleanisDialogShowing()Determines if this dialog is showing either as docked or as detached dialog.voidpreferenceChanged(PreferenceChangeEvent e)Triggered when a preference entry value changes.private voidrefreshHidingButtons()protected voidregisterInWindowMenu(boolean isExpert)Registers this dialog in the window menu.voidrememberHeight()Store the current height in preferences so that we can restore it.voidsetButton(javax.swing.JToggleButton button)Sets the button from the button list that is used to display this dialog.protected voidsetContentVisible(boolean visible)Sets the visibility of all components in this toggle dialog, except the title barvoidsetDialogsPanel(DialogsPanel dialogsPanel)Sets the dialogsPanel managing all toggle dialogs.protected voidsetIsButtonHiding(ToggleDialog.ButtonHidingType val)protected voidsetIsCollapsed(boolean val)protected voidsetIsDocked(boolean val)protected voidsetIsShowing(boolean val)voidsetTitle(java.lang.String title)Sets the title.voidshowDialog()Shows the dialogvoidshowNotify()Called when toggle dialog is shown (after it was created or expanded).protected voidstateChanged()primitive stateChangedListener for subclassesprotected voidtoggleButtonHook()Do something when the toggleButton is pressed.java.lang.StringtoString()voidunfurlDialog()Changes the state of the dialog such that the user can see the content.-
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
-
Methods inherited from class javax.swing.JComponent
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
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
-
Methods inherited from class java.awt.Component
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, getParent, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
PROP_DYNAMIC_BUTTONS
public static final BooleanProperty PROP_DYNAMIC_BUTTONS
Property to enable dynamic buttons globally.- Since:
- 6752
-
SELECTED
private static final java.lang.String SELECTED
- See Also:
- Constant Field Values
-
propButtonHiding
private final transient ParametrizedEnumProperty<ToggleDialog.ButtonHidingType> propButtonHiding
-
toggleAction
protected final ToggleDialog.ToggleDialogAction toggleAction
The action to toggle this dialog
-
preferencePrefix
protected java.lang.String preferencePrefix
-
name
protected final java.lang.String name
-
dialogsPanel
protected DialogsPanel dialogsPanel
DialogsPanel that manages all ToggleDialogs
-
titleBar
protected ToggleDialog.TitleBar titleBar
-
isShowing
protected boolean isShowing
Indicates whether the dialog is showing or not.
-
isDocked
protected boolean isDocked
If isShowing is true, indicates whether the dialog is docked or not, e. g. shown as part of the main window or as a separate dialog window.
-
isCollapsed
protected boolean isCollapsed
If isShowing and isDocked are true, indicates whether the dialog is currently minimized or not.
-
buttonHiding
protected ToggleDialog.ButtonHidingType buttonHiding
Indicates whether dynamic button hiding is active or not.
-
preferredHeight
private final int preferredHeight
the preferred height if the toggle dialog is expanded
-
detachedDialog
protected javax.swing.JDialog detachedDialog
the JDialog displaying the toggle dialog as undocked dialog
-
button
protected javax.swing.JToggleButton button
-
buttonsPanel
private javax.swing.JPanel buttonsPanel
-
buttonActions
private final transient java.util.List<javax.swing.Action> buttonActions
-
windowMenuItem
protected javax.swing.JCheckBoxMenuItem windowMenuItem
holds the menu entry in the windows menu. Required to properly toggle the checkbox on show/hide
-
alwaysShown
private final javax.swing.JRadioButtonMenuItem alwaysShown
-
dynamic
private final javax.swing.JRadioButtonMenuItem dynamic
-
alwaysHidden
private final javax.swing.JRadioButtonMenuItem alwaysHidden
-
preferenceClass
protected java.lang.Class<? extends PreferenceSetting> preferenceClass
The linked preferences class (optional). If set, accessible from the title bar with a dedicated button
-
-
Constructor Detail
-
ToggleDialog
public ToggleDialog(java.lang.String name, java.lang.String iconName, java.lang.String tooltip, Shortcut shortcut, int preferredHeight)
Constructor- Parameters:
name- the name of the dialogiconName- the name of the icon to be displayedtooltip- the tool tipshortcut- the shortcutpreferredHeight- the preferred height for the dialog
-
ToggleDialog
public ToggleDialog(java.lang.String name, java.lang.String iconName, java.lang.String tooltip, Shortcut shortcut, int preferredHeight, boolean defShow)
Constructor- Parameters:
name- the name of the dialogiconName- the name of the icon to be displayedtooltip- the tool tipshortcut- the shortcutpreferredHeight- the preferred height for the dialogdefShow- if the dialog should be shown by default, if there is no preference
-
ToggleDialog
public ToggleDialog(java.lang.String name, java.lang.String iconName, java.lang.String tooltip, Shortcut shortcut, int preferredHeight, boolean defShow, java.lang.Class<? extends PreferenceSetting> prefClass)
Constructor- Parameters:
name- the name of the dialogiconName- the name of the icon to be displayedtooltip- the tool tipshortcut- the shortcutpreferredHeight- the preferred height for the dialogdefShow- if the dialog should be shown by default, if there is no preferenceprefClass- the preferences settings class, or null if not applicable
-
ToggleDialog
public ToggleDialog(java.lang.String name, java.lang.String iconName, java.lang.String tooltip, Shortcut shortcut, int preferredHeight, boolean defShow, java.lang.Class<? extends PreferenceSetting> prefClass, boolean isExpert)
Constructor- Parameters:
name- the name of the dialogiconName- the name of the icon to be displayedtooltip- the tool tipshortcut- the shortcutpreferredHeight- the preferred height for the dialogdefShow- if the dialog should be shown by default, if there is no preferenceprefClass- the preferences settings class, or null if not applicableisExpert-trueif this dialog should only be displayed in expert mode- Since:
- 15650
-
-
Method Detail
-
registerInWindowMenu
protected void registerInWindowMenu(boolean isExpert)
Registers this dialog in the window menu. Called in the constructor.- Parameters:
isExpert-trueif this dialog should only be displayed in expert mode- Since:
- 15650
-
showDialog
public void showDialog()
Shows the dialog
-
unfurlDialog
public void unfurlDialog()
Changes the state of the dialog such that the user can see the content. (takes care of the panel reconstruction)
-
buttonHidden
public void buttonHidden()
Description copied from interface:ShowHideButtonListenerCalled when the button is hidden- Specified by:
buttonHiddenin interfaceShowHideButtonListener
-
buttonShown
public void buttonShown()
Description copied from interface:ShowHideButtonListenerCalled when the button is shown- Specified by:
buttonShownin interfaceShowHideButtonListener
-
hideDialog
public void hideDialog()
Hides the dialog
-
dock
protected void dock()
Displays the toggle dialog in the toggle dialog view on the right of the main map window.
-
detach
protected void detach()
Display the dialog in a detached window.
-
collapse
public void collapse()
Collapses the toggle dialog to the title bar only
-
expand
protected void expand()
Expands the toggle dialog
-
setContentVisible
protected void setContentVisible(boolean visible)
Sets the visibility of all components in this toggle dialog, except the title bar- Parameters:
visible- true, if the components should be visible; false otherwise
-
destroy
public void destroy()
Description copied from interface:DestroyableCalled when the object has been destroyed.- Specified by:
destroyin interfaceDestroyable
-
closeDetachedDialog
public void closeDetachedDialog()
Closes the detached dialog if this toggle dialog is currently displayed in a detached dialog.
-
showNotify
public void showNotify()
Called when toggle dialog is shown (after it was created or expanded). Descendants may overwrite this method, it's a good place to register listeners needed to keep dialog updated
-
hideNotify
public void hideNotify()
Called when toggle dialog is hidden (collapsed, removed, MapFrame is removed, ...). Good place to unregister listeners
-
getToggleAction
public javax.swing.AbstractAction getToggleAction()
Replies the action to toggle the visible state of this toggle dialog- Returns:
- the action to toggle the visible state of this toggle dialog
-
getPreferencePrefix
public java.lang.String getPreferencePrefix()
Replies the prefix for the preference settings of this dialog.- Returns:
- the prefix for the preference settings of this dialog.
-
setDialogsPanel
public void setDialogsPanel(DialogsPanel dialogsPanel)
Sets the dialogsPanel managing all toggle dialogs.- Parameters:
dialogsPanel- The panel managing all toggle dialogs
-
getName
public java.lang.String getName()
Replies the name of this toggle dialog- Overrides:
getNamein classjava.awt.Component
-
setTitle
public void setTitle(java.lang.String title)
Sets the title.- Parameters:
title- The dialog's title
-
setIsShowing
protected void setIsShowing(boolean val)
-
setIsDocked
protected void setIsDocked(boolean val)
-
setIsCollapsed
protected void setIsCollapsed(boolean val)
-
setIsButtonHiding
protected void setIsButtonHiding(ToggleDialog.ButtonHidingType val)
-
getPreferredHeight
public int getPreferredHeight()
Returns the preferred height of this dialog.- Returns:
- The preferred height if the toggle dialog is expanded
-
helpTopic
public java.lang.String helpTopic()
Description copied from interface:HelpfulReturns the help topic on JOSM wiki for this feature.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.awt.Component
-
isDialogShowing
public boolean isDialogShowing()
Determines if this dialog is showing either as docked or as detached dialog.- Returns:
trueif this dialog is showing either as docked or as detached dialog
-
isDialogInDefaultView
public boolean isDialogInDefaultView()
Determines if this dialog is docked and expanded.- Returns:
trueif this dialog is docked and expanded
-
isDialogInCollapsedView
public boolean isDialogInCollapsedView()
Determines if this dialog is docked and collapsed.- Returns:
trueif this dialog is docked and collapsed
-
setButton
public void setButton(javax.swing.JToggleButton button)
Sets the button from the button list that is used to display this dialog.Note: This is ignored by the
ToggleDialogfor now.- Parameters:
button- The button for this dialog.
-
getButton
public javax.swing.JToggleButton getButton()
Gets the button from the button list that is used to display this dialog.- Returns:
- button The button for this dialog.
-
getDefaultDetachedSize
protected java.awt.Dimension getDefaultDetachedSize()
Returns the default size of the detached dialog. Override this method to customize the initial dialog size.- Returns:
- the default size of the detached dialog
-
toggleButtonHook
protected void toggleButtonHook()
Do something when the toggleButton is pressed.
-
dockWhenClosingDetachedDlg
protected boolean dockWhenClosingDetachedDlg()
-
stateChanged
protected void stateChanged()
primitive stateChangedListener for subclasses
-
createLayout
protected java.awt.Component createLayout(java.awt.Component data, boolean scroll, java.util.Collection<SideButton> buttons)
Create a component with the given layout for this component.- Parameters:
data- The content to be displayedscroll-trueif it should be wrapped in aJScrollPanebuttons- The buttons to add.- Returns:
- The component.
-
createLayout
@SafeVarargs protected final java.awt.Component createLayout(java.awt.Component data, boolean scroll, java.util.Collection<SideButton> firstButtons, java.util.Collection<SideButton>... nextButtons)
-
clearButtonActions
public void clearButtonActions()
Clear button actions. Should be used when recreating the layout with sidebuttons, and the previous sidebuttons are no longer desired.- Since:
- 16113
-
eventDispatched
public void eventDispatched(java.awt.AWTEvent event)
- Specified by:
eventDispatchedin interfacejava.awt.event.AWTEventListener
-
preferenceChanged
public void preferenceChanged(PreferenceChangeEvent e)
Description copied from interface:PreferenceChangedListenerTriggered when a preference entry value changes.- Specified by:
preferenceChangedin interfacePreferenceChangedListener- Parameters:
e- the preference change event
-
dynamicButtonsPropertyChanged
private void dynamicButtonsPropertyChanged()
-
refreshHidingButtons
private void refreshHidingButtons()
-
getLastHeight
public int getLastHeight()
Returns the last used height stored in preferences or preferredHeight.- Returns:
- the last used height stored in preferences or preferredHeight
- Since:
- 14425
-
rememberHeight
public void rememberHeight()
Store the current height in preferences so that we can restore it.- Since:
- 14425
-
-