edu.stanford.smi.protegex.owl.ui.widget
Class MultiWidgetPropertyWidget

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPanel
                  extended byedu.stanford.smi.protege.widget.AbstractWidget
                      extended byedu.stanford.smi.protege.widget.AbstractSlotWidget
                          extended byedu.stanford.smi.protegex.owl.ui.widget.AbstractPropertyWidget
                              extended byedu.stanford.smi.protegex.owl.ui.widget.MultiWidgetPropertyWidget
All Implemented Interfaces:
Accessible, edu.stanford.smi.protege.util.Disposable, ImageObserver, MenuContainer, edu.stanford.smi.protege.plugin.Plugin, PropertyWidget, edu.stanford.smi.protege.util.Selectable, Serializable, edu.stanford.smi.protege.widget.SlotWidget, edu.stanford.smi.protege.widget.Widget
Direct Known Subclasses:
AbstractClassDefinitionWidget, NameDocumentationWidget, OWLMetadataWidget, SwitchableClassDefinitionWidget

public abstract class MultiWidgetPropertyWidget
extends AbstractPropertyWidget

An AbstractPropertyWidget that allows to toggle between various nested Widgets using a JTabbedPane. Optionally, if you only have two widgets, they can also be displayed beside each other (restricted to two so that this could be implemented using a JSplitPane).

Author:
Holger Knublauch
See Also:
Serialized Form

Nested Class Summary
private  class MultiWidgetPropertyWidget.MultiWidgetConfigurationPanel
           
private  class MultiWidgetPropertyWidget.WidgetHolder
           
 
Nested classes inherited from class edu.stanford.smi.protege.widget.AbstractSlotWidget
 
Nested classes inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
private  boolean allMode
          Indicates whether this is in "all" mode
private  JPanel allPanel
          The JPanel that is used to display all widgets at the same time
private  edu.stanford.smi.protege.model.Instance instance
           
private  JTabbedPane tabbedPane
          The JTabbedPane the widgets reside in
private  edu.stanford.smi.protege.event.FrameListener valueListener
           
private  Hashtable widgetContainers
          Keys: SlotWidgets, Values: WidgetHolder
private  List widgets
          The list of sub-widgets
 
Fields inherited from class edu.stanford.smi.protege.widget.AbstractSlotWidget
 
Fields inherited from class edu.stanford.smi.protege.widget.AbstractWidget
 
Fields inherited from class javax.swing.JPanel
 
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.Container
 
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
MultiWidgetPropertyWidget()
          Constructs a new MultiWidgetPropertyWidget.
 
Method Summary
 void addNestedWidget(edu.stanford.smi.protege.widget.SlotWidget widget, String slotName, String tabName, String widgetName)
          Adds a new nested widget.
protected abstract  void createNestedWidgets()
          Adds the user-defined tabs to the widget.
 edu.stanford.smi.protege.widget.WidgetConfigurationPanel createWidgetConfigurationPanel()
           
protected  edu.stanford.smi.protege.model.WidgetDescriptor createWidgetDescriptor(edu.stanford.smi.protege.widget.SlotWidget widget, edu.stanford.smi.protege.model.Cls cls, edu.stanford.smi.protege.model.Slot slot)
           
 void dispose()
           
 RDFResource getEditedResource()
           
protected  JTabbedPane getTabbedPane()
           
private  MultiWidgetPropertyWidget.WidgetHolder getWidgetHolder(edu.stanford.smi.protege.widget.SlotWidget widget)
           
protected  void initAllPanel(JPanel allPanel, List widgets)
          Overload this to set layout, add static components, and otherwise modify the appearance of the panel if this is in "all" mode.
 void initialize()
          Overloaded to forward the nested calls into all nested components.
 Iterator listWidgets()
           
 void reinitAllPanel()
           
 void setAllMode(boolean allMode)
           
 void setAssociatedCls(edu.stanford.smi.protege.model.Cls cls)
           
 void setBorder(Border border)
           
 void setEditable(boolean b)
           
 void setInstance(edu.stanford.smi.protege.model.Instance newInstance)
          Overloaded to forward the method call into all nested components.
protected  void setSelectedTab(Component tab)
           
 void setup(edu.stanford.smi.protege.model.WidgetDescriptor descriptor, boolean isDesignTime, edu.stanford.smi.protege.model.Project project, edu.stanford.smi.protege.model.Cls cls, edu.stanford.smi.protege.model.Slot slot)
          Overloaded to forward the method call into all nested components.
protected  void setupSubWidgets(edu.stanford.smi.protege.model.Slot slot, edu.stanford.smi.protege.model.Cls cls, boolean isDesignTime, edu.stanford.smi.protege.model.Project project)
           
 
Methods inherited from class edu.stanford.smi.protegex.owl.ui.widget.AbstractPropertyWidget
getInstance, getOWLModel, getRDFProperty, getSlot, updateBorder
 
Methods inherited from class edu.stanford.smi.protege.widget.AbstractSlotWidget
addButtonConfiguration, addButtonConfiguration, allowsMultipleValues, areDirectValues, configure, displayButton, displayButton, getAssociatedCls, getButtonDescription, getCls, getClsWidget, getDefaultLabel, getDefaultToolTip, getDoubleClickAction, getFirstItem, getInvalidValueText, getLabel, getMaximumCardinality, getMinimumCardinality, getPreferredSize, getSelectionBorderSize, getValues, handleDoubleClick, isDirectValue, isSlotAtCls, loadValues, localizeStandardLabel, reshape, setAllowed, setCls, setDefaultToolTip, setDoubleClickListener, setInstanceValues, setInvalidValueBorder, setNormalBorder, setPreferredColumns, setPreferredRows, setPreferredSize, setSelectedBorder, setSelectedBorder, setShowInstanceListener, setSlot, setValues, setWidgetValues, showInstance, valueChanged
 
Methods inherited from class edu.stanford.smi.protege.widget.AbstractWidget
addSelectionListener, beginTransaction, clearSelection, endTransaction, equals, getDescriptor, getKnowledgeBase, getProject, getPropertyList, getSelection, getStringProperty, isDesignTime, isRuntime, notifySelectionListeners, paint, removeSelectionListener, setLabel, setPropertyList, setup, show
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setLayout, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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
 
Methods inherited from interface edu.stanford.smi.protege.widget.SlotWidget
getAssociatedCls, getCls, getDefaultToolTip, setDefaultToolTip
 
Methods inherited from interface edu.stanford.smi.protege.widget.Widget
configure, getDescriptor, getKnowledgeBase, getLabel, getProject, setLabel
 
Methods inherited from interface edu.stanford.smi.protege.util.Selectable
addSelectionListener, clearSelection, getSelection, notifySelectionListeners, removeSelectionListener
 
Methods inherited from interface edu.stanford.smi.protege.plugin.Plugin
getName
 

Field Detail

allMode

private boolean allMode
Indicates whether this is in "all" mode


allPanel

private JPanel allPanel
The JPanel that is used to display all widgets at the same time


valueListener

private edu.stanford.smi.protege.event.FrameListener valueListener

instance

private edu.stanford.smi.protege.model.Instance instance

tabbedPane

private JTabbedPane tabbedPane
The JTabbedPane the widgets reside in


widgets

private List widgets
The list of sub-widgets


widgetContainers

private Hashtable widgetContainers
Keys: SlotWidgets, Values: WidgetHolder

Constructor Detail

MultiWidgetPropertyWidget

public MultiWidgetPropertyWidget()
Constructs a new MultiWidgetPropertyWidget. This calls addNestedWidget.

Method Detail

addNestedWidget

public void addNestedWidget(edu.stanford.smi.protege.widget.SlotWidget widget,
                            String slotName,
                            String tabName,
                            String widgetName)
Adds a new nested widget. This should only be called during initialization.

Parameters:
widget - the SlotWidget to add
slotName - the name of the Slot represented by the widget (null for default)
tabName - the name to appear on the tab
widgetName - the name to appear in the LabeledComponent

createNestedWidgets

protected abstract void createNestedWidgets()
Adds the user-defined tabs to the widget. Overload this method and call addNestedWidget(...) for each nested widget. Note that all tab components must be instance of SlotWidget.


createWidgetDescriptor

protected edu.stanford.smi.protege.model.WidgetDescriptor createWidgetDescriptor(edu.stanford.smi.protege.widget.SlotWidget widget,
                                                                                 edu.stanford.smi.protege.model.Cls cls,
                                                                                 edu.stanford.smi.protege.model.Slot slot)

dispose

public void dispose()

createWidgetConfigurationPanel

public edu.stanford.smi.protege.widget.WidgetConfigurationPanel createWidgetConfigurationPanel()

getEditedResource

public RDFResource getEditedResource()
Specified by:
getEditedResource in interface PropertyWidget
Overrides:
getEditedResource in class AbstractPropertyWidget

getTabbedPane

protected JTabbedPane getTabbedPane()

getWidgetHolder

private MultiWidgetPropertyWidget.WidgetHolder getWidgetHolder(edu.stanford.smi.protege.widget.SlotWidget widget)

initAllPanel

protected void initAllPanel(JPanel allPanel,
                            List widgets)
Overload this to set layout, add static components, and otherwise modify the appearance of the panel if this is in "all" mode.

Parameters:
allPanel - the Panel that will host all widgets

initialize

public void initialize()
Overloaded to forward the nested calls into all nested components.


listWidgets

public Iterator listWidgets()

setAllMode

public void setAllMode(boolean allMode)

reinitAllPanel

public void reinitAllPanel()

setAssociatedCls

public void setAssociatedCls(edu.stanford.smi.protege.model.Cls cls)

setBorder

public void setBorder(Border border)

setEditable

public void setEditable(boolean b)

setInstance

public void setInstance(edu.stanford.smi.protege.model.Instance newInstance)
Overloaded to forward the method call into all nested components.


setSelectedTab

protected void setSelectedTab(Component tab)

setup

public void setup(edu.stanford.smi.protege.model.WidgetDescriptor descriptor,
                  boolean isDesignTime,
                  edu.stanford.smi.protege.model.Project project,
                  edu.stanford.smi.protege.model.Cls cls,
                  edu.stanford.smi.protege.model.Slot slot)
Overloaded to forward the method call into all nested components.


setupSubWidgets

protected void setupSubWidgets(edu.stanford.smi.protege.model.Slot slot,
                               edu.stanford.smi.protege.model.Cls cls,
                               boolean isDesignTime,
                               edu.stanford.smi.protege.model.Project project)