tecgraf.javautils.gui.panel
Class ExpandablePanel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by tecgraf.javautils.gui.panel.ExpandablePanel
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible

public class ExpandablePanel
extends JPanel

Painel expansível. Consiste de dois painéis: um com o cabeçalho (título do painel + botão de controle), e outro com o conteúdo a ser gerenciado.

Author:
Tecgraf
See Also:
Serialized Form

Nested Class Summary
static class ExpandablePanel.Position
          Constantes para definir o posicionamento do botão de controle.
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
static String COLLAPSE_ACTION_ID
          Id do evento enviado quando o painel é fechado.
static String EXPAND_ACTION_ID
          Id do evento enviado quando o painel é aberto.
static int LEFT_INSET
          Identação à esquerda para alinhar ao título do painel.
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
ExpandablePanel(String title, boolean showSeparator, ExpandablePanel.Position controlPosition, boolean identLeft, LayoutManager layout)
          Construtor.
ExpandablePanel(String title, ExpandablePanel.Position controlPosition)
          Constrói um painel que não possui separador, não identa seu conteúdo e cujo layout manager default é o GridBagLayout.
ExpandablePanel(String title, ExpandablePanel.Position controlPosition, boolean showSeparator, boolean identLeft)
          Constrói um painel cujo layout manager default é o GridBagLayout.
 
Method Summary
protected  void addImpl(Component comp, Object constraints, int index)
          
 boolean isExpanded()
          Obtém o estado do painel.
static boolean isExpandEvent(ActionEvent event)
          Verifica se um evento é um evento de expansão de um painel.
 void remove(Component comp)
          
 void remove(int index)
          
 void removeAll()
          
 ActionListener removeListener()
          Remove o listener.
 void setEnabled(boolean enabled)
          
 boolean setExpanded(boolean expanded)
          Define o estado do painel, revalidando o seu pai.
 boolean setExpanded(boolean expanded, boolean notifyParent, boolean notifyListener)
          Define o estado do painel.
 void setLayout(LayoutManager layout)
          
 ActionListener setListener(ActionListener newListener)
          Define um listener para mudanças de estado do painel.
 ExpandablePanel setTitle(String title)
          Redefine o título do painel.
 
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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, 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, 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, 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, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, transferFocusBackward, 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, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

EXPAND_ACTION_ID

public static final String EXPAND_ACTION_ID
Id do evento enviado quando o painel é aberto.

See Also:
Constant Field Values

COLLAPSE_ACTION_ID

public static final String COLLAPSE_ACTION_ID
Id do evento enviado quando o painel é fechado.

See Also:
Constant Field Values

LEFT_INSET

public static final int LEFT_INSET
Identação à esquerda para alinhar ao título do painel.

O 12 é um "número mágico" obtido empiricamente...

Constructor Detail

ExpandablePanel

public ExpandablePanel(String title,
                       ExpandablePanel.Position controlPosition)
Constrói um painel que não possui separador, não identa seu conteúdo e cujo layout manager default é o GridBagLayout.

Parameters:
title - título do painel
controlPosition - posicionamento do controle

ExpandablePanel

public ExpandablePanel(String title,
                       ExpandablePanel.Position controlPosition,
                       boolean showSeparator,
                       boolean identLeft)
Constrói um painel cujo layout manager default é o GridBagLayout.

Parameters:
title - título do painel
controlPosition - posicionamento do controle
showSeparator - true para exibir um separador acima do título
identLeft - true para identar o conteúdo de forma a alinhá-lo com o título (útil para posicionamento ExpandablePanel.Position.CONTROL_LEFT)

ExpandablePanel

public ExpandablePanel(String title,
                       boolean showSeparator,
                       ExpandablePanel.Position controlPosition,
                       boolean identLeft,
                       LayoutManager layout)
Construtor.

Parameters:
title - título do painel
controlPosition - posicionamento do controle
showSeparator - true para exibir um separador acima do título
identLeft - true para identar o conteúdo de forma a alinhá-lo com o título (útil para posicionamento ExpandablePanel.Position.CONTROL_LEFT)
layout - layout manager
Method Detail

isExpandEvent

public static boolean isExpandEvent(ActionEvent event)
Verifica se um evento é um evento de expansão de um painel.

Parameters:
event - evento
Returns:
true se o evento corresponde à expansão de um painel

isExpanded

public boolean isExpanded()
Obtém o estado do painel.

Returns:
true se o painel está expandido

setExpanded

public boolean setExpanded(boolean expanded,
                           boolean notifyParent,
                           boolean notifyListener)
Define o estado do painel.

Parameters:
expanded - true para expandir o painel, false para fechá-lo
notifyParent - true para revalidar o pai do painel. Usar false quando esta operação fizer parte de um lote, onde o pai só deve ser revalidado após a última operação (e não a cada operação)
notifyListener - true se os listeneres devem ser notificados
Returns:
true se o estado foi alterado, false se o painel já estava no estado solicitado
See Also:
setExpanded(boolean)

setExpanded

public boolean setExpanded(boolean expanded)
Define o estado do painel, revalidando o seu pai.

Parameters:
expanded - true para expandir o painel, false para fechá-lo
Returns:
true se o estado foi alterado, false se o painel já estava no estado solicitado
See Also:
setExpanded(boolean, boolean, boolean)

addImpl

protected void addImpl(Component comp,
                       Object constraints,
                       int index)

Overrides:
addImpl in class Container

remove

public void remove(int index)

Overrides:
remove in class Container

remove

public void remove(Component comp)

Overrides:
remove in class Container

removeAll

public void removeAll()

Overrides:
removeAll in class Container

setLayout

public void setLayout(LayoutManager layout)

Overrides:
setLayout in class Container

setEnabled

public void setEnabled(boolean enabled)

Overrides:
setEnabled in class JComponent

setTitle

public ExpandablePanel setTitle(String title)
Redefine o título do painel.

Parameters:
title - título
Returns:
o próprio painel, para encadeamento

setListener

public ActionListener setListener(ActionListener newListener)
Define um listener para mudanças de estado do painel.

Parameters:
newListener - listener. Se for null, remove o listener corrente
Returns:
listener cadastrado anteriormente (ou null se não havia um listener)

removeListener

public ActionListener removeListener()
Remove o listener. Equivale a setListener(ActionListener) com parâmetro null.

Returns:
listener cadastrado anteriormente (ou null se não havia um listener)


Copyright © 2014 Tecgraf/PUC-Rio. All rights reserved.