Package org.jmol.modelkit
Class ModelKitPopup
- java.lang.Object
-
- org.jmol.popup.GenericPopup
-
- org.jmol.popup.JmolGenericPopup
-
- org.jmol.modelkit.ModelKitPopup
-
- All Implemented Interfaces:
GenericMenuInterface
- Direct Known Subclasses:
AwtModelKitPopup,JSModelKitPopup
public abstract class ModelKitPopup extends JmolGenericPopup
An abstract popup class that is instantiated for a given platform and context as one of:-- abstract ModelKitPopup -- AwtModelKitPopup -- JSModelKitPopup
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.StringactiveMenuprivate booleanaddXtalHydrogenswhen TRUE, add H atoms to C when added to the modelSet.private booleanalertedNoEditprivate java.lang.String[]allOperators(package private) static java.lang.StringATOM_MENUprivate java.lang.StringatomHoverLabelprivate intatomIndexSphere(package private) static java.lang.StringBOND_MENUprivate intbondAtomIndex1private intbondAtomIndex2private java.lang.StringbondHoverLabelprivate intbondIndexstatic java.lang.StringBOOLEAN_OPTIONSprivate intbranchAtomIndexprivate javajs.util.BSbsHighlightprivate javajs.util.BSbsRotateBranchprivate static PopupResourcebundleprivate intcenterAtomIndexprivate floatcenterDistanceprivate javajs.util.P3centerPointprivate booleanclickToSetElementExcept for H atoms, do not allow changes to elements just by clicking them.private intcurrentModelIndexprivate java.lang.StringdrawDataprivate java.lang.StringdrawScriptprivate booleanhasUnitCellprivate intiatom0private booleanisPickAtomAssignChargeprivate booleanisRotateBondprivate java.lang.StringlastCenterprivate java.lang.StringlastElementTypeprotected ModelSetlastModelSetprivate java.lang.StringlastOffsetprivate static intMAX_LABELprivate java.util.Map<java.lang.String,java.lang.Object>mkdatastatic java.lang.StringMODE_OPTIONSprivate java.lang.StringpickAtomAssignTypeprivate java.lang.StringpickBondAssignTypeprivate static javajs.util.P3Pt000private floatrotationDegprivate int[]screenXYprivate intsecondAtomIndexstatic java.lang.StringSET_OPTIONSprivate booleanshowSymopInfoprivate javajs.util.P3spherePointprivate intstatestatic intSTATE_BITS_SYM_EDITstatic intSTATE_BITS_SYM_VIEWstatic intSTATE_BITS_UNITCELLstatic intSTATE_BITS_XTALstatic intSTATE_MOLECULARstatic intSTATE_SYM_APPLYFULLstatic intSTATE_SYM_APPLYLOCALstatic intSTATE_SYM_NONEstatic intSTATE_SYM_RETAINLOCALstatic intSTATE_SYM_SHOWstatic intSTATE_UNITCELL_EXTENDstatic intSTATE_UNITCELL_PACKEDstatic intSTATE_XTALEDITstatic intSTATE_XTALVIEWstatic java.lang.StringSYMMETRY_OPTIONSprivate java.lang.Objectsymopstatic java.lang.StringUNITCELL_OPTIONSprivate javajs.util.P3viewOffset(package private) static java.lang.StringXTAL_MENUprivate java.lang.StringxtalHoverLabel-
Fields inherited from class org.jmol.popup.JmolGenericPopup
frankPopup, menuText, nFrankList, vwr
-
Fields inherited from class org.jmol.popup.GenericPopup
allowSignedFeatures, buttonGroup, currentMenuItemId, helper, htCheckbox, htMenus, isApplet, isJS, isSigned, isTainted, isWebGL, menuName, popupMenu, strMenuStructure, thisPopup, thisx, thisy, updatingForShow
-
-
Constructor Summary
Constructors Constructor Description ModelKitPopup()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidactionRotateBond(int deltaX, int deltaY, int x, int y, boolean forceFull)Actually rotate the bond.private voidaddAllCheckboxItems(SC menu, java.lang.String[] labels)private voidaddData(java.lang.String key, java.lang.Object value)protected booleanappGetBooleanProperty(java.lang.String name)protected booleanappRunSpecialCheckBox(SC item, java.lang.String basename, java.lang.String script, boolean TF)protected voidappUpdateForShow()protected voidappUpdateSpecialCheckBoxValue(SC source, java.lang.String actionCommand, boolean selected)Set the active menu based on updating a value -- usually by the user, but also during setup (ignored).private voidassignAtom(int atomIndex, java.lang.String type, boolean autoBond, boolean addHsAndBond, boolean isClick)Original ModelKitPopup functionality -- assign an atom.voidassignAtomClick(int atomIndex, java.lang.String element, javajs.util.P3 ptNew)private javajs.util.BSassignBond(int bondIndex, char type)Original ModelKit functionality -- assign a bond.voidcmdAssignAtom(int atomIndex, javajs.util.P3 pt, java.lang.String type, java.lang.String cmd, boolean isClick)voidcmdAssignBond(int bondIndex, char type, java.lang.String cmd)voidcmdAssignConnect(int index, int index2, java.lang.String cmd, boolean isClick)voiddoMenuClickCallbackMK(SC source, java.lang.String script)java.lang.StringgetActiveMenu()for FrankRender -- the thin box on the top leftprotected PopupResourcegetBundle(java.lang.String menu)private java.lang.ObjectgetData(java.lang.String key)private java.lang.StringgetHoverLabel(int atomIndex)Called by Viewer.hoverOn to set the special label if desired.private intgetMKState()java.lang.ObjectgetProperty(java.lang.Object data)Get a property of the modelkit.intgetRotateBondIndex()protected java.lang.StringgetScriptForCallback(SC source, java.lang.String id, java.lang.String script)Secondary processing of menu item clickprivate intgetSymEditState()private intgetSymViewState()private intgetUnitCellState()java.lang.StringgetUnknownCheckBoxScriptToRun(SC item, java.lang.String name, java.lang.String what, boolean TF)From JmolGenericPopup.appRunSpecialCheckBox when name starts with "mk" or has "??" in it.private intgetViewState()booleanhandleAssignNew(MouseState pressed, MouseState dragged, MeasurementPending mp, int dragAtomIndex)CbooleanhandleDragAtom(MouseState pressed, MouseState dragged, int[] countPlusIndices)Called from ActionManager for a drag-dropprotected voidinitialize(Viewer vwr, PopupResource bundle, java.lang.String title)voidinitializeForModel()booleanisPickAtomAssignCharge()private static booleanisTrue(java.lang.Object value)private booleanisVwrRotateBond()private booleanisXtalState()voidjpiUpdateComputedMenus()voidmenuClickCallback(SC source, java.lang.String script)voidmenuFocusCallback(java.lang.String name, java.lang.String actionCommand, boolean gained)private static voidnotImplemented(java.lang.String action)private static javajs.util.P3pointFromTriad(java.lang.String pos)private booleanprocessAtomClick(int atomIndex)An atom has been clicked -- handle it.private voidprocessMKPropertyItem(java.lang.String name, boolean TF)private voidprocessModeClick(java.lang.String action)private voidprocessSelClick(java.lang.String action)private voidprocessSelOpClick(java.lang.String action)private voidprocessSymClick(java.lang.String action)private booleanprocessSymop(java.lang.String id, boolean isFocus)private voidprocessUCClick(java.lang.String action)private voidprocessXtalClick(java.lang.String id, java.lang.String action)private java.lang.StringpromptUser(java.lang.String msg, java.lang.String def)private voidresetBondFields(java.lang.String where)private java.lang.StringrunScriptBuffered(java.lang.String script)java.lang.StringsetActiveMenu(java.lang.String name)Set the active menu and request a repaint.private voidsetBondIndex(int index, boolean isRotate)Set the bond for rotation -- called by Sticks.checkObjectHovered via Viewer.highlightBond.private voidsetDefaultState(int mode)private voidsetLabel(java.lang.String key, java.lang.String label)private voidsetMKState(int bits)java.lang.ObjectsetProperty(java.lang.String name, java.lang.Object value)Modify the state by setting a property -- primarily from CmdExt.modelkit.private voidsetSymEdit(int bits)private voidsetSymViewState(int bits)private voidsetUnitCell(int bits)private voidshowSymop(java.lang.Object symop)private voidshowXtalSymmetry()Draw the symmetry elementprotected voidupdateAllXtalMenuOptions()protected voidupdateOperatorMenu()-
Methods inherited from class org.jmol.popup.JmolGenericPopup
appFixLabel, appRestorePopupMenu, appRunScript, jpiDispose, jpiGetMenuAsObject, jpiInitialize, jpiShow, showFrankMenu
-
Methods inherited from class org.jmol.popup.GenericPopup
addMenu, addMenuItem, addMenuItems, appCheckItem, appCheckSpecialMenu, appGetMenuAsString, convertToMegabytes, doMenuCheckBoxCallback, doMenuClickCallback, getEntryIcon, getImageIcon, initSwing, jpiGetMenuAsString, menuAddSeparator, menuAddSubMenu, menuCheckBoxCallback, menuCreateCheckboxItem, menuCreateItem, menuEnable, menuGetId, menuGetListPosition, menuNewSubMenu, menuRemoveAll, menuSetAutoscrolls, menuSetLabel, menuShowPopup, setText, show, updateButton, updateSignedAppletItems
-
-
-
-
Field Detail
-
hasUnitCell
private boolean hasUnitCell
-
allOperators
private java.lang.String[] allOperators
-
currentModelIndex
private int currentModelIndex
-
alertedNoEdit
private boolean alertedNoEdit
-
atomHoverLabel
private java.lang.String atomHoverLabel
-
bondHoverLabel
private java.lang.String bondHoverLabel
-
xtalHoverLabel
private java.lang.String xtalHoverLabel
-
activeMenu
private java.lang.String activeMenu
-
lastModelSet
protected ModelSet lastModelSet
-
pickAtomAssignType
private java.lang.String pickAtomAssignType
-
lastElementType
private java.lang.String lastElementType
-
pickBondAssignType
private java.lang.String pickBondAssignType
-
isPickAtomAssignCharge
private boolean isPickAtomAssignCharge
-
bsHighlight
private javajs.util.BS bsHighlight
-
bondIndex
private int bondIndex
-
bondAtomIndex1
private int bondAtomIndex1
-
bondAtomIndex2
private int bondAtomIndex2
-
bsRotateBranch
private javajs.util.BS bsRotateBranch
-
branchAtomIndex
private int branchAtomIndex
-
isRotateBond
private boolean isRotateBond
-
screenXY
private int[] screenXY
-
mkdata
private java.util.Map<java.lang.String,java.lang.Object> mkdata
-
showSymopInfo
private boolean showSymopInfo
-
addXtalHydrogens
private boolean addXtalHydrogens
when TRUE, add H atoms to C when added to the modelSet.
-
clickToSetElement
private boolean clickToSetElement
Except for H atoms, do not allow changes to elements just by clicking them. This protects against doing that inadvertently when editing.
-
centerPoint
private javajs.util.P3 centerPoint
-
spherePoint
private javajs.util.P3 spherePoint
-
viewOffset
private javajs.util.P3 viewOffset
-
centerDistance
private float centerDistance
-
symop
private java.lang.Object symop
-
centerAtomIndex
private int centerAtomIndex
-
secondAtomIndex
private int secondAtomIndex
-
atomIndexSphere
private int atomIndexSphere
-
drawData
private java.lang.String drawData
-
drawScript
private java.lang.String drawScript
-
iatom0
private int iatom0
-
MAX_LABEL
private static final int MAX_LABEL
- See Also:
- Constant Field Values
-
ATOM_MENU
static final java.lang.String ATOM_MENU
- See Also:
- Constant Field Values
-
BOND_MENU
static final java.lang.String BOND_MENU
- See Also:
- Constant Field Values
-
XTAL_MENU
static final java.lang.String XTAL_MENU
- See Also:
- Constant Field Values
-
bundle
private static PopupResource bundle
-
STATE_BITS_XTAL
public static final int STATE_BITS_XTAL
- See Also:
- Constant Field Values
-
STATE_MOLECULAR
public static final int STATE_MOLECULAR
- See Also:
- Constant Field Values
-
STATE_XTALVIEW
public static final int STATE_XTALVIEW
- See Also:
- Constant Field Values
-
STATE_XTALEDIT
public static final int STATE_XTALEDIT
- See Also:
- Constant Field Values
-
STATE_BITS_SYM_VIEW
public static final int STATE_BITS_SYM_VIEW
- See Also:
- Constant Field Values
-
STATE_SYM_NONE
public static final int STATE_SYM_NONE
- See Also:
- Constant Field Values
-
STATE_SYM_SHOW
public static final int STATE_SYM_SHOW
- See Also:
- Constant Field Values
-
STATE_BITS_SYM_EDIT
public static final int STATE_BITS_SYM_EDIT
- See Also:
- Constant Field Values
-
STATE_SYM_APPLYLOCAL
public static final int STATE_SYM_APPLYLOCAL
- See Also:
- Constant Field Values
-
STATE_SYM_RETAINLOCAL
public static final int STATE_SYM_RETAINLOCAL
- See Also:
- Constant Field Values
-
STATE_SYM_APPLYFULL
public static final int STATE_SYM_APPLYFULL
- See Also:
- Constant Field Values
-
STATE_BITS_UNITCELL
public static final int STATE_BITS_UNITCELL
- See Also:
- Constant Field Values
-
STATE_UNITCELL_PACKED
public static final int STATE_UNITCELL_PACKED
- See Also:
- Constant Field Values
-
STATE_UNITCELL_EXTEND
public static final int STATE_UNITCELL_EXTEND
- See Also:
- Constant Field Values
-
MODE_OPTIONS
public static final java.lang.String MODE_OPTIONS
- See Also:
- Constant Field Values
-
SYMMETRY_OPTIONS
public static final java.lang.String SYMMETRY_OPTIONS
- See Also:
- Constant Field Values
-
UNITCELL_OPTIONS
public static final java.lang.String UNITCELL_OPTIONS
- See Also:
- Constant Field Values
-
BOOLEAN_OPTIONS
public static final java.lang.String BOOLEAN_OPTIONS
- See Also:
- Constant Field Values
-
SET_OPTIONS
public static final java.lang.String SET_OPTIONS
- See Also:
- Constant Field Values
-
Pt000
private static final javajs.util.P3 Pt000
-
state
private int state
-
rotationDeg
private float rotationDeg
-
lastCenter
private java.lang.String lastCenter
-
lastOffset
private java.lang.String lastOffset
-
-
Method Detail
-
initialize
protected void initialize(Viewer vwr, PopupResource bundle, java.lang.String title)
- Overrides:
initializein classJmolGenericPopup
-
getBundle
protected PopupResource getBundle(java.lang.String menu)
- Specified by:
getBundlein classJmolGenericPopup
-
initializeForModel
public void initializeForModel()
-
jpiUpdateComputedMenus
public void jpiUpdateComputedMenus()
-
appUpdateForShow
protected void appUpdateForShow()
- Specified by:
appUpdateForShowin classGenericPopup
-
updateOperatorMenu
protected void updateOperatorMenu()
-
addAllCheckboxItems
private void addAllCheckboxItems(SC menu, java.lang.String[] labels)
-
updateAllXtalMenuOptions
protected void updateAllXtalMenuOptions()
-
setLabel
private void setLabel(java.lang.String key, java.lang.String label)
-
getActiveMenu
public java.lang.String getActiveMenu()
for FrankRender -- the thin box on the top left- Returns:
- [ "atomMenu" | "bondMenu" | "xtalMenu" | null ]
-
setActiveMenu
public java.lang.String setActiveMenu(java.lang.String name)
Set the active menu and request a repaint.- Parameters:
name-- Returns:
- activeMenu or null
-
appUpdateSpecialCheckBoxValue
protected void appUpdateSpecialCheckBoxValue(SC source, java.lang.String actionCommand, boolean selected)
Set the active menu based on updating a value -- usually by the user, but also during setup (ignored).- Specified by:
appUpdateSpecialCheckBoxValuein classGenericPopup
-
isXtalState
private boolean isXtalState()
-
setMKState
private void setMKState(int bits)
-
getMKState
private int getMKState()
-
setSymEdit
private void setSymEdit(int bits)
-
getSymEditState
private int getSymEditState()
-
getViewState
private int getViewState()
-
setSymViewState
private void setSymViewState(int bits)
-
getSymViewState
private int getSymViewState()
-
setUnitCell
private void setUnitCell(int bits)
-
getUnitCellState
private int getUnitCellState()
-
isPickAtomAssignCharge
public boolean isPickAtomAssignCharge()
-
getProperty
public java.lang.Object getProperty(java.lang.Object data)
Get a property of the modelkit.- Parameters:
data- a name or an array with [name, value]- Returns:
- value
-
setProperty
public java.lang.Object setProperty(java.lang.String name, java.lang.Object value)Modify the state by setting a property -- primarily from CmdExt.modelkit. Also can be used for "get" purposes.- Parameters:
name-value-- Returns:
- null or "get" value
-
isTrue
private static boolean isTrue(java.lang.Object value)
-
getData
private java.lang.Object getData(java.lang.String key)
- Parameters:
key-- Returns:
-
addData
private void addData(java.lang.String key, java.lang.Object value)
-
processAtomClick
private boolean processAtomClick(int atomIndex)
An atom has been clicked -- handle it. Called from CmdExt.assignAtom from the script created in ActionManager.assignNew from Actionmanager.checkReleaseAction- Parameters:
atomIndex-- Returns:
- true if handled
-
getHoverLabel
private java.lang.String getHoverLabel(int atomIndex)
Called by Viewer.hoverOn to set the special label if desired.- Parameters:
atomIndex-- Returns:
- special label or null
-
setDefaultState
private void setDefaultState(int mode)
-
appGetBooleanProperty
protected boolean appGetBooleanProperty(java.lang.String name)
- Overrides:
appGetBooleanPropertyin classJmolGenericPopup
-
getUnknownCheckBoxScriptToRun
public java.lang.String getUnknownCheckBoxScriptToRun(SC item, java.lang.String name, java.lang.String what, boolean TF)
From JmolGenericPopup.appRunSpecialCheckBox when name starts with "mk" or has "??" in it.- Specified by:
getUnknownCheckBoxScriptToRunin classGenericPopup
-
processMKPropertyItem
private void processMKPropertyItem(java.lang.String name, boolean TF)
-
showXtalSymmetry
private void showXtalSymmetry()
Draw the symmetry element
-
assignAtom
private void assignAtom(int atomIndex, java.lang.String type, boolean autoBond, boolean addHsAndBond, boolean isClick)Original ModelKitPopup functionality -- assign an atom.- Parameters:
atomIndex-type-autoBond-addHsAndBond-isClick- whether this is a click or not
-
assignBond
private javajs.util.BS assignBond(int bondIndex, char type)Original ModelKit functionality -- assign a bond.- Parameters:
bondIndex-type-- Returns:
- bit set of atoms to modify
-
isVwrRotateBond
private boolean isVwrRotateBond()
-
getRotateBondIndex
public int getRotateBondIndex()
-
resetBondFields
private void resetBondFields(java.lang.String where)
- Parameters:
where-
-
setBondIndex
private void setBondIndex(int index, boolean isRotate)Set the bond for rotation -- called by Sticks.checkObjectHovered via Viewer.highlightBond.- Parameters:
index-isRotate-
-
actionRotateBond
public void actionRotateBond(int deltaX, int deltaY, int x, int y, boolean forceFull)Actually rotate the bond. Called by ActionManager.checkDragWheelAction.- Parameters:
deltaX-deltaY-x-y-forceFull-
-
menuFocusCallback
public void menuFocusCallback(java.lang.String name, java.lang.String actionCommand, boolean gained)- Specified by:
menuFocusCallbackin classGenericPopup
-
menuClickCallback
public void menuClickCallback(SC source, java.lang.String script)
- Overrides:
menuClickCallbackin classGenericPopup
-
doMenuClickCallbackMK
public void doMenuClickCallbackMK(SC source, java.lang.String script)
-
getScriptForCallback
protected java.lang.String getScriptForCallback(SC source, java.lang.String id, java.lang.String script)
Secondary processing of menu item click- Specified by:
getScriptForCallbackin classGenericPopup
-
processXtalClick
private void processXtalClick(java.lang.String id, java.lang.String action)
-
processSelOpClick
private void processSelOpClick(java.lang.String action)
-
processSymop
private boolean processSymop(java.lang.String id, boolean isFocus)
-
showSymop
private void showSymop(java.lang.Object symop)
-
processModeClick
private void processModeClick(java.lang.String action)
-
processSelClick
private void processSelClick(java.lang.String action)
-
processSymClick
private void processSymClick(java.lang.String action)
-
processUCClick
private void processUCClick(java.lang.String action)
-
handleDragAtom
public boolean handleDragAtom(MouseState pressed, MouseState dragged, int[] countPlusIndices)
Called from ActionManager for a drag-drop- Parameters:
pressed-dragged-countPlusIndices-- Returns:
- true if handled here
-
pointFromTriad
private static javajs.util.P3 pointFromTriad(java.lang.String pos)
-
notImplemented
private static void notImplemented(java.lang.String action)
-
promptUser
private java.lang.String promptUser(java.lang.String msg, java.lang.String def)
-
runScriptBuffered
private java.lang.String runScriptBuffered(java.lang.String script)
-
handleAssignNew
public boolean handleAssignNew(MouseState pressed, MouseState dragged, MeasurementPending mp, int dragAtomIndex)
C- Parameters:
pressed-dragged-mp-dragAtomIndex-- Returns:
- true if we should do a refresh now
-
cmdAssignAtom
public void cmdAssignAtom(int atomIndex, javajs.util.P3 pt, java.lang.String type, java.lang.String cmd, boolean isClick)
-
cmdAssignBond
public void cmdAssignBond(int bondIndex, char type, java.lang.String cmd)
-
cmdAssignConnect
public void cmdAssignConnect(int index, int index2, java.lang.String cmd, boolean isClick)
-
assignAtomClick
public void assignAtomClick(int atomIndex, java.lang.String element, javajs.util.P3 ptNew)
-
appRunSpecialCheckBox
protected boolean appRunSpecialCheckBox(SC item, java.lang.String basename, java.lang.String script, boolean TF)
- Overrides:
appRunSpecialCheckBoxin classJmolGenericPopup
-
-