org.tbee.swing.jpa
Class JpaEntitySearchBuilder<T>

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 org.tbee.swing.jpa.JpaEntitySearchBuilder<T>
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class JpaEntitySearchBuilder<T>
extends javax.swing.JPanel

See Also:
Serialized Form

Nested Class Summary
static interface JpaEntitySearchBuilder.JpaEntitySearchBuilderToggler
           
static class JpaEntitySearchBuilder.JPQL
           
static class JpaEntitySearchBuilder.Parameter
           
 class JpaEntitySearchBuilder.SearchableField
           
static interface JpaEntitySearchBuilder.SearchFeedbackListener
           
static class JpaEntitySearchBuilder.SearchFeedbackListenerImpl
           
 
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
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
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
JpaEntitySearchBuilder(java.lang.Class entityClass, java.lang.String prefix, java.lang.String path)
           
 
Method Summary
 void appendToWhereclause(java.lang.String value)
          append a part to the whereclause.
 void clear()
          clear all search fields
 void clearOrDefault()
          clear all search fields
 void clearOrDefaultSearchFields()
          clear all search fields
 void clearSearchFields()
          clear all search fields
 void clearWhereclauseAndParameters()
          clears both the whereclause and its parameters
 java.lang.Object convertStringToStandardTypes(java.lang.String s, java.lang.Class c)
           
protected  JpaEntitySearchBuilder.SearchableField createLinkedField(java.lang.String linkedField, java.lang.String[] linkedFieldTokens, int idx)
           
 javax.swing.JPanel createSearchPanel(JpaEntitySearchBuilder.SearchFeedbackListener startSearchListener, nl.knowledgeplaza.util.ValueHolder<java.util.List<T>> foundEntitiesValueHolder)
          Create the search panel
protected  void determineLabels()
           
protected  void determineLinkedFields()
           
protected  void determinePropertyNames()
           
protected  void determineSearchableFields()
           
static java.lang.Class getCustomBuilder(java.lang.Class entityClass)
           
 java.lang.Class getEntityClass()
          EntityClass
static java.util.List<java.lang.reflect.Field> getIdFields(java.lang.Class clazz)
           
static java.util.List<java.lang.String> getLinkedFields(java.lang.Class entityClass)
           
static java.util.List<java.lang.String> getMoveToTop(java.lang.String path)
           
 java.lang.String getPath()
          Path
 java.lang.String getPathForConfig()
           
 java.lang.String getPrefix()
          Prefix
 javax.persistence.Query getQuery()
           
static JpaEntitySearchComponentFactory getSearchComponentFactory(java.lang.Class entityClass, java.lang.String fieldName)
           
static java.util.List<java.lang.String> getUnfold(java.lang.String path)
           
 java.lang.String getWhereclause()
          Whereclause; <*> is replaced with the current active entity id
 java.util.List<JpaEntitySearchBuilder.Parameter> getWhereclauseParameters()
           
static JpaEntitySearchBuilder newJpaEntitySearchBuilder(java.lang.Class c, java.lang.String prefix)
           
protected static JpaEntitySearchBuilder newJpaEntitySearchBuilder(java.lang.Class c, java.lang.String prefix, java.lang.String path)
          For overriding when extending this class
static JpaEntitySearchBuilder obtainJpaEntitySearchBuilder(java.lang.Class c, java.lang.String prefix)
           
static JpaEntitySearchBuilder obtainJpaEntitySearchBuilder(java.lang.Class c, java.lang.String prefix, java.lang.String path)
          get a cached one, or create one
static void prepareJpaEntitySearchBuilder(java.lang.Class c, java.lang.String prefix)
           
static void prepareJpaEntitySearchBuilder(java.lang.Class c, java.lang.String prefix, java.lang.String path)
          If not present, prepare one and place in cache
static void returnJpaEntitySearchBuilder(JpaEntitySearchBuilder jpaEntitySearchBuilder)
          return to cache
protected  java.util.List<T> search(java.util.List<T> current, java.util.List<T> queryResult)
           
protected  java.util.List<T> searchAddToResult(java.util.List<T> current, java.util.List<T> queryResult)
           
protected  java.util.List<T> searchDialog(java.awt.Component component, java.lang.String title, int selectMode, java.util.List<T> returnSearchResult)
          Open a search dialog that returns a list of entities
protected  java.util.List<T> searchInResult(java.util.List<T> current, java.util.List<T> queryResult)
           
 java.util.List<T> searchMultipleDialog(java.awt.Component component, java.lang.String title)
          Open a search dialog that returns a list of entities
protected  java.util.List<T> searchRemoveFromResult(java.util.List<T> current, java.util.List<T> queryResult)
           
 T searchSingleDialog(java.awt.Component component, java.lang.String title)
          Open a search dialog that returns one entity or null
 T searchSingleDialog(java.awt.Component component, java.lang.String title, java.util.List<T> returnSearchResult)
          Special for filtering: Open a search dialog that returns one entity or null AND the complete search result set
static void setCustomBuilder(java.lang.Class entityClass, java.lang.Class searchClass)
          custom builders
 void setEntityClass(java.lang.Class value)
           
static void setLinkedFields(java.lang.Class entityClass, java.lang.String... propertyNames)
          LinkedFields
static void setMoveToTop(java.lang.Class entityClass, java.lang.String... propertyNames)
          MoveToTop
static void setMoveToTop(java.lang.String path, java.lang.String... propertyNames)
           
protected  void setPath(java.lang.String value)
           
 void setPrefix(java.lang.String value)
           
static void setSearchComponentFactory(java.lang.Class entityClass, java.lang.String fieldName, JpaEntitySearchComponentFactory searchComponentFactory)
          SearchComponent
static void setUnfold(java.lang.Class clazz, java.lang.String... propertyNames)
           
static void setUnfold(java.lang.String path, java.lang.String... propertyNames)
          Unfold
protected  void setupGui()
           
 void setWhereclause(java.lang.String value)
           
 void setWhereclauseParameter(JpaEntitySearchBuilder.Parameter parameter)
           
 void setWhereclauseParameter(java.lang.String name, java.lang.Object value)
          whereclause parameters
 void unfold(java.lang.String pathToUnfold)
           
 
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, 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, 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
 

Constructor Detail

JpaEntitySearchBuilder

public JpaEntitySearchBuilder(java.lang.Class entityClass,
                              java.lang.String prefix,
                              java.lang.String path)
Method Detail

obtainJpaEntitySearchBuilder

public static JpaEntitySearchBuilder obtainJpaEntitySearchBuilder(java.lang.Class c,
                                                                  java.lang.String prefix,
                                                                  java.lang.String path)
get a cached one, or create one


obtainJpaEntitySearchBuilder

public static JpaEntitySearchBuilder obtainJpaEntitySearchBuilder(java.lang.Class c,
                                                                  java.lang.String prefix)

returnJpaEntitySearchBuilder

public static void returnJpaEntitySearchBuilder(JpaEntitySearchBuilder jpaEntitySearchBuilder)
return to cache

Parameters:
jpaEntitySearchBuilder -

prepareJpaEntitySearchBuilder

public static void prepareJpaEntitySearchBuilder(java.lang.Class c,
                                                 java.lang.String prefix,
                                                 java.lang.String path)
If not present, prepare one and place in cache

Parameters:
c -
prefix -

prepareJpaEntitySearchBuilder

public static void prepareJpaEntitySearchBuilder(java.lang.Class c,
                                                 java.lang.String prefix)

setCustomBuilder

public static void setCustomBuilder(java.lang.Class entityClass,
                                    java.lang.Class searchClass)
custom builders


getCustomBuilder

public static java.lang.Class getCustomBuilder(java.lang.Class entityClass)

newJpaEntitySearchBuilder

protected static JpaEntitySearchBuilder newJpaEntitySearchBuilder(java.lang.Class c,
                                                                  java.lang.String prefix,
                                                                  java.lang.String path)
For overriding when extending this class

Parameters:
c -
Returns:

newJpaEntitySearchBuilder

public static JpaEntitySearchBuilder newJpaEntitySearchBuilder(java.lang.Class c,
                                                               java.lang.String prefix)

setLinkedFields

public static void setLinkedFields(java.lang.Class entityClass,
                                   java.lang.String... propertyNames)
LinkedFields


getLinkedFields

public static java.util.List<java.lang.String> getLinkedFields(java.lang.Class entityClass)

setMoveToTop

public static void setMoveToTop(java.lang.Class entityClass,
                                java.lang.String... propertyNames)
MoveToTop


setMoveToTop

public static void setMoveToTop(java.lang.String path,
                                java.lang.String... propertyNames)

getMoveToTop

public static java.util.List<java.lang.String> getMoveToTop(java.lang.String path)

setUnfold

public static void setUnfold(java.lang.String path,
                             java.lang.String... propertyNames)
Unfold


setUnfold

public static void setUnfold(java.lang.Class clazz,
                             java.lang.String... propertyNames)

getUnfold

public static java.util.List<java.lang.String> getUnfold(java.lang.String path)

getEntityClass

public java.lang.Class getEntityClass()
EntityClass


setEntityClass

public void setEntityClass(java.lang.Class value)

getPrefix

public java.lang.String getPrefix()
Prefix


setPrefix

public void setPrefix(java.lang.String value)

getPath

public java.lang.String getPath()
Path


setPath

protected void setPath(java.lang.String value)

getPathForConfig

public java.lang.String getPathForConfig()

getWhereclause

public java.lang.String getWhereclause()
Whereclause; <*> is replaced with the current active entity id


setWhereclause

public void setWhereclause(java.lang.String value)

appendToWhereclause

public void appendToWhereclause(java.lang.String value)
append a part to the whereclause. BEWARE: an 'and' is prefix automatically if appropriate. <*> is replaced with the current active entity id


setWhereclauseParameter

public void setWhereclauseParameter(java.lang.String name,
                                    java.lang.Object value)
whereclause parameters


setWhereclauseParameter

public void setWhereclauseParameter(JpaEntitySearchBuilder.Parameter parameter)

getWhereclauseParameters

public java.util.List<JpaEntitySearchBuilder.Parameter> getWhereclauseParameters()

clearWhereclauseAndParameters

public void clearWhereclauseAndParameters()
clears both the whereclause and its parameters


setSearchComponentFactory

public static void setSearchComponentFactory(java.lang.Class entityClass,
                                             java.lang.String fieldName,
                                             JpaEntitySearchComponentFactory searchComponentFactory)
SearchComponent


getSearchComponentFactory

public static JpaEntitySearchComponentFactory getSearchComponentFactory(java.lang.Class entityClass,
                                                                        java.lang.String fieldName)

determineSearchableFields

protected void determineSearchableFields()

determineLinkedFields

protected void determineLinkedFields()

createLinkedField

protected JpaEntitySearchBuilder.SearchableField createLinkedField(java.lang.String linkedField,
                                                                   java.lang.String[] linkedFieldTokens,
                                                                   int idx)

determinePropertyNames

protected void determinePropertyNames()

determineLabels

protected void determineLabels()

setupGui

protected void setupGui()

unfold

public void unfold(java.lang.String pathToUnfold)
Parameters:
pathToUnfold -

clear

public void clear()
clear all search fields


clearSearchFields

public void clearSearchFields()
clear all search fields


clearOrDefault

public void clearOrDefault()
clear all search fields


clearOrDefaultSearchFields

public void clearOrDefaultSearchFields()
clear all search fields


getQuery

public javax.persistence.Query getQuery()

convertStringToStandardTypes

public java.lang.Object convertStringToStandardTypes(java.lang.String s,
                                                     java.lang.Class c)
Parameters:
s -
c -
Returns:

getIdFields

public static java.util.List<java.lang.reflect.Field> getIdFields(java.lang.Class clazz)
Parameters:
clazz -
name -
Returns:

searchSingleDialog

public T searchSingleDialog(java.awt.Component component,
                            java.lang.String title,
                            java.util.List<T> returnSearchResult)
Special for filtering: Open a search dialog that returns one entity or null AND the complete search result set


searchSingleDialog

public T searchSingleDialog(java.awt.Component component,
                            java.lang.String title)
Open a search dialog that returns one entity or null


searchMultipleDialog

public java.util.List<T> searchMultipleDialog(java.awt.Component component,
                                              java.lang.String title)
Open a search dialog that returns a list of entities


searchDialog

protected java.util.List<T> searchDialog(java.awt.Component component,
                                         java.lang.String title,
                                         int selectMode,
                                         java.util.List<T> returnSearchResult)
Open a search dialog that returns a list of entities


createSearchPanel

public javax.swing.JPanel createSearchPanel(JpaEntitySearchBuilder.SearchFeedbackListener startSearchListener,
                                            nl.knowledgeplaza.util.ValueHolder<java.util.List<T>> foundEntitiesValueHolder)
Create the search panel


search

protected java.util.List<T> search(java.util.List<T> current,
                                   java.util.List<T> queryResult)

searchInResult

protected java.util.List<T> searchInResult(java.util.List<T> current,
                                           java.util.List<T> queryResult)

searchRemoveFromResult

protected java.util.List<T> searchRemoveFromResult(java.util.List<T> current,
                                                   java.util.List<T> queryResult)

searchAddToResult

protected java.util.List<T> searchAddToResult(java.util.List<T> current,
                                              java.util.List<T> queryResult)


Copyright © 2010 KnowledgePlaza. All Rights Reserved.