public abstract class ControlPopupForm extends Form implements PopupController
Generally you would call "attachTo()" to associate a ControlPopupForm with a Control. By default, the onEvent() method of the ControlPopupForm will listen for a ControlEvent.PRESSED event generated by the attached Control and then display itself when it is detected.
Note that a single ControlPopupForm can be attached to more than one Control. If any of the Controls is pressed, the Form will call setFor(Control who) for that particular control and then display itself.
A ControlPopupForm displays itself in a borderless Frame and modifies itself to be Flat. You will need to inherit from ControlPopupForm and add the necessary controls for whatever type of input you wish.
To close the Form simply call exit(IDOK) or exit(IDCANCEL) whenever data entry is complete. You should also then transfer (if necessary) data to the control to which the form was popped up for.
A ControlPopupForm can also be used without being attached to a particular control. To do that create it when necessary and then call setFor(Control client). This will display the Form appropriately and if it is closed without cancelling the transferToClient() method is called - which you will have to override.
Form.FormMaker, Form.ToolsOrSoftKey, Form.ValidateBeforeExit
Modifier and Type | Field and Description |
---|---|
protected WeakSet |
attachedTo |
Control |
client
This is the client that popped up this control.
|
boolean |
closeIfPressClient
Normally, pressing outside the popup Form has no effect, but if this is true, then if you press
the original client Control, then the popup Form will close with exit code IDCANCEL.
|
int |
execFormOptions |
static Font |
popupFont
This is the Font that will be used for popup forms.
|
boolean |
putByClient
This tells the Form to place itself as close by the client as possible.
|
Point |
putByPen
If the PopupForm should be placed near a spot on the window then this should hold the co-ordinates of the point.
|
boolean |
relayoutOnDisplay |
acceptsDroppedFiles, apply, back, buttons, BUTTONS_TO_SOFT_KEY_FIRST_BUTTON_SEPARATE, BUTTONS_TO_SOFT_KEY_MENU_ALWAYS, BUTTONS_TO_SOFT_KEY_USE_FIRST_SOFT_KEY, buttonsPanel, buttonsPerRow, cancel, CLOSING_FLAG, deflt, dismantleOnClose, dontAddSIPFiller, exitButtonDefined, EXITING_FLAG, exitSystemOnClose, exitValue, fieldHandlers, firstFocus, formFrame, frameAlpha, handle, hasTitle, hasTopBar, hideSoftKeyBarIfNotFound, inheritSoftKeys, isAutoScrolling, isMainAppletForm, keepFrame, minimumShowTime, moveable, no, noBorder, ok, pl, reset, resizable, resizeOnSIP, shadowed, SHOWN_FLAG, shownTime, softkeyBars, title, titleCancel, titleControls, titleOK, topControls, WINDOW_TITLE_DONT_CHANGE, windowFlagsToClear, windowFlagsToSet, windowIcon, windowTitle, yes
BACKB, CANCELB, checkIcon, close, cross, crossIcon, DEFCANCELB, DEFOKB, EXIT_IDBACK, EXIT_IDCANCEL, EXIT_IDNO, EXIT_IDOK, EXIT_IDYES, IDBACK, IDCANCEL, IDNO, IDOK, IDYES, MBB, MBNONE, MBOK, MBOKCANCEL, MBYESNO, MBYESNOCANCEL, NOB, OKB, stop, tick, tools, YESB
autoSpan, layout, mySplitter, nextSplitter, quickRecalculate
all, calculated, childListeners, defaultAddToMeCellConstraints, defaultTags, equalHeights, equalWidths, grid, lastAdded, layoutManager, made, noInsets, stretchFirstColumn, stretchFirstRow, stretchLastColumn, stretchLastRow, titleGap
isFullScrollClient, origin, scrollPercent, virtualSize
closedFocus, cycleFocus, dontAutoScroll, dontFocusOnChildren, FIND_FOR_MOUSE_PRESS, takeNextFocus
backGround, beforeRemoved, borderColor, borderStyle, borderWidth, children, columns, constraints, curFont, debugModify, debugRepaintNow, disabledBackground, dragging, dragResolution, dragTime, exitKeys, fieldTransfer, font, fontChange, fontFrom, foreGround, height, holdDownPause, holdTick, hotKey, image, lastSelected, listeners, lockPaint, maxHeight, maxWidth, menuState, minHeight, minWidth, modifiers, name, next, parent, penStatus, preferredHeight, preferredWidth, prev, prompt, promptControl, rows, ss, startDragResolution, tags, tail, text, toolTip, width, x, y
clipItems, clipObject, clipOwner, debugControl, debugFlag, doubleBuffer, doubleClickTime, doubleSizedFontHeight, firstPress, globalEditable, globalEnabled, PEN_STATUS_DID_HOLD_DOWN, PEN_STATUS_GOT_PEN_DOWN, PEN_STATUS_PEN_IS_ON, pressPoint, TAG_BOOLEAN_KEEP_BELOW_SIP, TAG_HOVER_TIME_INT, TAG_LAST_USER_DATA, TAG_USER_DATA, TAKE_FIRST_PRESS, unnamed
CLOSE_FOR_NEW_POPUP, FLAG_NEW_POPUP_IS_MENU
ALWAYS_STRETCHABLE, BOTTOM, CELLFLAG, CELLMASK, CENTER, CONTROLMASK, DONTCHANGE, DONTFILL, DONTSTRETCH, EAST, FILL, GROW, HCENTER, HCONTRACT, HEXPAND, HFILL, HGROW, HSHRINK, HSTRETCH, INITIALLY_CLOSED, INITIALLY_HIDDEN, INITIALLY_MINIMIZED, INITIALLY_PREFERRED_SIZE, INSETS, LEFT, MAXIMUMSIZE, MINIMUMSIZE, NORTH, NORTHEAST, NORTHWEST, PREFERREDSIZE, RECT, RIGHT, SHRINK, SOUTH, SOUTHEAST, SOUTHWEST, SPAN, STRETCH, TAG_BACKGROUND_IMAGE, TAG_BUSY_DISPLAY, TAG_COLORS, TAG_CONTROL_PAINTER, TAG_EXPOSE_GROUP, TAG_FIXEDSIZE, TAG_GRAY_BACKGROUND, TAG_HIDE_CONTROL_OBJECT, TAG_HIDE_PARENT, TAG_INNER_TEXT_INSETS, TAG_INPUT_STACK_PARENT, TAG_INSETS, TAG_MAKE_VISIBLE, TAG_MAXIMUMSIZE, TAG_MINIMUMSIZE, TAG_PAINT_CONTROL_LIST, TAG_PREFERRED_TEXT_SIZE, TAG_PREFERRED_TEXT_SIZE_HEIGHT, TAG_PREFERRED_TEXT_SIZE_WIDTH, TAG_PREFERREDSIZE, TAG_RECT, TAG_SHADOW_INSETS, TAG_SPAN, TAG_SWIPER, TAG_TEMPORARY_ERROR, TAG_TEXT_INSETS, TAG_TEXTSIZE, TEXTSIZE, TOP, VCENTER, VCONTRACT, VEXPAND, VFILL, VGROW, VSHRINK, VSTRETCH, WEST
GoHigher, GoLower, Horizontal, OPTION_INDICATOR_ONLY, PageHigher, PageLower, ScrollHigher, ScrollLower, TrackTo, Vertical
BDR_DOTTED, BDR_INNER, BDR_NOBORDER, BDR_OUTER, BDR_OUTLINE, BDR_RAISEDINNER, BDR_RAISEDOUTER, BDR_SUNKENINNER, BDR_SUNKENOUTER, BF_ABUT_ANY, BF_ABUT_BOTTOM, BF_ABUT_LEFT, BF_ABUT_RIGHT, BF_ABUT_TOP, BF_BOTTOM, BF_BOTTOMLEFT, BF_BOTTOMRIGHT, BF_BUTTON, BF_DIAGONAL, BF_DIAGONAL_ENDBOTTOMLEFT, BF_DIAGONAL_ENDBOTTOMRIGHT, BF_DIAGONAL_ENDTOPLEFT, BF_DIAGONAL_ENDTOPRIGHT, BF_EXACT, BF_FLAT, BF_LEFT, BF_MIDDLE, BF_MONO, BF_PALM, BF_RECT, BF_RIGHT, BF_SOFT, BF_SQUARE, BF_TOP, BF_TOPLEFT, BF_TOPRIGHT, EDGE_BUMP, EDGE_ETCHED, EDGE_RAISED, EDGE_SUNKEN
All, AlwaysEnabled, AlwaysRecalculateSizes, ByDeferredMouse, ByDeferredPen, ByFrameChange, ByKeyboard, ByMouse, ByPen, ByRequest, CalculatedSizes, ContainerDontPaintChildren, Disabled, DisablePopupMenu, DisplayOnly, DontBuffer, Down, DrawFlat, Flag, ForceResize, HasData, Invisible, KeepImage, KeepSIP, Left, MakeMenuAtLeastAsWide, Maximize, Minimize, ModifiersInheritedFromWindow, MouseSensitive, NoFocus, NotAnEditor, NotEditable, PaintDataOnly, PaintOutsideOnly, PenTransparent, PreferredSizeOnly, Right, SendUpUIEvents, ShowSIP, ShrinkToNothing, SmallControl, TakeChildUIEvents, TakeControlEvents, TakesKeyFocus, Transparent, Up, WantDrag, WantHoldDown
KEEP_VISIBLE
Constructor and Description |
---|
ControlPopupForm() |
Modifier and Type | Method and Description |
---|---|
protected void |
addCloseControls() |
protected void |
addCloseControls(Panel dest) |
protected Control |
addMainControls(Control main) |
void |
attachTo(Control who)
Attach the popup form to the specified Control.
|
protected Rect |
checkSize(Rect intended,
boolean willFit)
This method is called if the putByClient method is true.
|
void |
close(int value)
This closes the form unconditionally and sets the exitValue to be exitCode.
|
void |
closePopup(int why,
int flags)
This closes the form by exiting with exit code IDCANCEL.
|
void |
detachFrom(Control who)
Detach the popup form from the specified Control.
|
protected void |
doClear()
By default this does nothing.
|
protected void |
doInit()
This is called after the call to popup().
|
protected void |
doReset()
This should reset the Form for input.
|
FormFrame |
makeFrame(int options)
This is used to actually create the frame for the form.
|
void |
onControlEvent(ControlEvent ev)
This listens for ControlEvent.PRESSED events from attached controls
and calls setFor(Control who) if it detects that event.
|
void |
onKeyEvent(KeyEvent ev)
If the Form gets an IKeys.ESCAPE key press it will close the popup with an exit code
of IDCANCEL.
|
protected void |
popup()
This does the work of positioning and displaying the Form.
|
protected void |
pressedOutside(Point whereOnScreen) |
void |
setFor(Control who)
Calling this will set the client for the Form and then causes the form to be
displayed via the popup() method.
|
protected void |
startingInput(Control who)
This is called by setFor(Control who) and gives you an opportunity to
modify the Form based on the client control.
|
protected void |
transferToClient(Control client)
This is called if the exit value of the Form is IDOK - it is used to indicate that data
should be transferred to the client control if necessary.
|
_getSetField, addButton, addFieldHandler, addFormMaker, addSIPAdjustment, addTabbedPanel, addToolbar, addTools, addToolsFor, addValidateBeforeExit, addValidateBeforeExit, buttonsToMenu, buttonsToSoftKeyBar, buttonsToSoftKeyBar, cancelWait, canExit, checkButtons, checkCanExit, closeAll, closeForTransfer, closeForTransfer, continueWait, createMenuItem, createMenuItem, createMenuItem, createSipFiller, createWindow, defaultTitleTo, dismantle, doButtons, doShowExec, enableScrolling, exec, exec, exec, exec, exec, execute, execute, execute, exit, filesDropped, fixWindowTitle, formClosing, formMain, fromFields, fromFields, fullScreenOnPDA, gatherButtons, getAncestorProperty, getButton, getFileSaver, getFormFrame, getFormWithProperty, getProperties, getProperty, getSoftKeyBarFor, getTopmostForm, handleAction, handleAction, hasExitButton, make, makeButtonForForm, makeButtonForForm, makeDefaultButton, makeDefaultButton, makeMenuItemForForm, makeMenuItemForForm, makeSmall, makeSmallOnBigScreen, makeSoftKeys, makeSoftKeys, makeSoftKeys, maximizeOnPDA, menuItemSelected, modifyForSmartPhone, onDataChangeEvent, onEvent, onSoftKey, onSoftKey, placeCancelOnLeft, removeSoftKeyBarFor, setAsMainAppletForm, setAsShown, setBelowButtonBar, setBelowButtonBars, setDefaultSize, setExitHandle, setFileSaver, setMainScrollBarPanel, setNoTitleBar, setSoftKeyBarFor, setSoftKeyBarForAll, setupFrame, show, show, showButtons, showExecCalled, shown, showWait, showWait, startRunning, stopFormHandle, takeButtons, takeButtons, takeButtons, toFields, toFields, toolsOnBottom, validateBeforeExit, waitUntilClosed, waitUntilClosed, waitUntilClosed, waitUntilShown, willBeMaximized
getCross, getParentObject, getParentObject, getSizedImage, getTick, getToolsIcon, setParentObject
calculateSizes, getFloatingControls, getSubControls, hasFloatingControls, makeLayoutGrid, relayoutMe, removeAll, reShow, resize, resizeTo
add, addChildListener, addDirectly, addLast, addLast, addLast, addNext, addNext, addNext, addNext, calculatedSizes, doBorder, endRow, getControlTag, getPreferredSize, insertRow, isEmpty, layout, remove, removeChildListener, sendToChildListeners, setAsBelowSip, setText
canGo, canScreenScroll, checkScrolls, doScroll, fixOrigin, getActual, getBuffer, getCurrent, getDisplayedSize, getMyHeight, getMySize, getMyWidth, getPercent, getScrollablePanel, getScrollClient, getVisible, getVisibleArea, needScrollBar, onScroll, onSetOrigin, reduceClip, scroll, scroll, scrollToVisible, setOrigin, updateScrollServer
add, completeAddPopupControl, containerHasFocus, dismantle, doHotKey, doPaint, findChild, findChild, focusFirst, focusFirst, focusOnContainer, focusOnData, getChildren, getFirstFocus, getNextKeyFocus, gotFocus, grayOut, hide, lostFocus, relayout, removePopupControl, repaintDataNow, setHidden, startAddPopupControl, takeFocus, takePromptControl, unhide
acceptsData, activate, addListener, amOnTopFrame, applyFontChange, baseOnPenEvent, bufferGraphics, bufferGraphics, bufferGraphics, bufferGraphics, bufferGraphics, cache, calculateTextSize, calculateTextSize, calculateTextSize, cancelHoldDown, cancelPenPress, canEdit, change, changeDimension, changeTag, checkClipboardOperations, checkExitKey, checkMenu, checkMenuKey, checkModifiers, checkParentInterceptsUIEvent, checkPenTransparent, childrenPainted, clearTag, clipboardToString, clipboardTransfer, closeMenu, contains, contains, createNewMenu, dataAccepted, dataBeingRemoved, dataDraggedOff, dataDraggedOver, dataDraggedOver, dataDroppedOn, dataTransferCancelled, deactivate, defaultTo, deferInWindowThread, doAction, doActionKey, doBackground, doMenu, dontAcceptDrop, doPaintChildren, doPaintData, doPaintData, doShowMenu, dragged, draw, draw, draw, exitEntry, fillBackground, fillBackgroundNotInFrame, findTagInParents, fontChanged, free, fromClipboard, fromField, fromField, getAllDescendants, getAllSubControls, getAncestor, getAncestor, getAncestorProperty, getBackground, getCached, getCachedChildren, getCachedDim, getCachedDim, getCachedRect, getCachedRect, getCachedSubControls, getChildAnchor, getChildren, getChildrenBackwards, getClipboardMenu, getClipObject, getContentsInsets, getContentsInsets, getContentsRect, getDataToCopy, getDataToDragAndDrop, getDim, getDisplayText, getDragAndDropContext, getFieldTransfer, getFont, getFontMetrics, getFontMetrics, getFontMetricsForSizeCalculations, getForeground, getFrame, getFrameOrContainer, getGraphics, getGraphics, getHeight, getHideParent, getImage, getLastSelected, getLocation, getLock, getMaximumSize, getMenu, getMinimumSize, getModifiedBorderFlags, getModifiers, getNext, getPaintParameters, getParent, getParent, getParent, getParentOrListener, getPasswordCharacter, getPosInFrame, getPosInFrame, getPosInParent, getPosInParent, getPreferredSize, getPreferredSizeByParent, getPreferredTextSize, getPrompt, getPromptText, getRect, getRect, getServer, getSize, getSizes, getSubControls, getTag, getText, getToolTip, getWidth, getWindow, getWindowGraphics, hasModifier, hasPopupFormAttached, hasTag, hide, inheritModifiers, insetToContents, interceptChildUIEvent, isChildOf, isDirectChildOfWindow, isHidden, isModal, isOnMe, isOnMe, isOnMe, isSomeonesHotKey, makeFrameTopMost, makeHot, makeHot, makeInvisible, makeVisible, markAsTemporaryError, menuIsActive, menuStateChanged, modify, modifyAll, modifyAll, modifyFlags, mouseHover, newEventThread, notifyAction, notifyDataChange, notifyDataChange, notifyMenuItemSelected, notifyStructureChanged, onLabelPenEvent, onPenEvent, paintBackground, paintWithControlPainter, pauseEventThread, penClicked, penDoubleClicked, penHeld, penPressed, penReleased, penRightReleased, popupBeep, popupMenuClosed, popupMenuEvent, popupMenuEvent, postEvent, postInWindowThread, postUIEvent, putInside, queueKeyEvent, queuePenEvent, readLock, recalculatePreferredSize, redisplay, refresh, releaseBufferedGraphics, removed, removeListener, repaint, repaint, repaintInWindowThread, repaintInWindowThread, repaintNow, repaintNow, repaintNow, repaintNow, requestPaint, requestResizeTo, resetAllCachedProperties, resetCachedProperties, resetRect, restore, restoreBorderModifiers, restoreFlags, resumeEventThread, scrollAndRepaint, sendToListeners, set, setAllFonts, setBackgroundImage, setBorder, setBorderModifiers, setCell, setChildAnchor, setClipObject, setControl, setCursor, setFieldTransfer, setFixedSize, setFont, setFontChange, setFreeDragging, setHidden, setHiddenParent, setHotKey, setHotKey, setLocation, setMaximumSize, setMenu, setMinimumSize, setPreferredSize, setPreferredTextSize, setPreferredTextSize, setPromptControl, setRect, setRect, setScaledBackgroundImage, setServer, setShadow, setSwiping, setTag, setTags, setTextSize, setTiledBackgroundImage, setToolTip, showHoldDownIndicator, simulateClickOn, simulateKeyPresses, simulateKeyType, standardOnKeyEvent, startDragAndDrop, startDragAndDrop, startDragging, stopDragging, takeData, takeFromClipboard, testInWindowThread, ticked, tipIsDisplayed, toClipboard, toField, toField, toIDString, toString, toTextData, transferPenPress, transferPenPress, tryDragAndDrop, tryGetGraphics, tryNext, tryStartMenu, unhide, unlock, updateData, updateDCDuringDD, updateFrom, updateTo, verifyWantDrag, verifyWantHoldDown, waitEventThread, willAcceptDrop, willShowFrame, windowHasFloatingControls, writeLock
doubleSizeIt, getGuiTextHeight, isDoubleSized, isDoubleSizedFont, loadImage, tryLoadImage
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getServer, setServer
public static Font popupFont
public boolean putByClient
public boolean closeIfPressClient
public Point putByPen
public Control client
protected WeakSet attachedTo
public int execFormOptions
public boolean relayoutOnDisplay
public void attachTo(Control who)
public void detachFrom(Control who)
protected void pressedOutside(Point whereOnScreen)
public void onControlEvent(ControlEvent ev)
onControlEvent
in class Form
protected void startingInput(Control who)
who
- The new client control.protected void doReset()
protected void doInit()
protected void doClear()
public void setFor(Control who)
public FormFrame makeFrame(int options)
Form
public void closePopup(int why, int flags)
closePopup
in interface PopupController
why
- the reason for closing. This is one of the CLOSE_FOR_xxx values.flags
- any of the FLAG_xxx values ORed together.protected void popup()
public void onKeyEvent(KeyEvent ev)
Note that to get a key press you will probably have to do: modifyAll(SendUpKeyEvents,true) on this Form so that child controls send up key events that they do not handle.
onKeyEvent
in class Control
protected Rect checkSize(Rect intended, boolean willFit)
Generally if willFit is true, you should simply return the intended Rect. By default if willFit is false, the Form is resized to fit into the window.
intended
- The Rect specifying the preferred location and size of the Form.willFit
- true if the intended Rect fits in the Window, false if it does not.protected void addCloseControls(Panel dest)
protected void addCloseControls()
public void close(int value)
Form
protected void transferToClient(Control client)
client
- the client control for the Popup form.