Numeric Field
From Apache OpenOffice Wiki
< Documentation | DevGuide
- Common Properties
- Font-specific Properties
- Other Common Properties
- Property Propagation Between Model and Control
- Common Workflow to add Controls
- The Example Listings
- Label Field
- Command Button
- Image Control
- Check Box
- Radio Button
- Scroll Bar
- List Box
- Combo Box
- Progress Bar
- Horizontal/Vertical Line Control
- Group Box
- Text Field
- Text Field Extensions
- Formatted Field
- Numeric Field
- Currency Field
- Date Field
- Time Field
- Pattern Field
- Roadmap Control
- File Control
- File Picker
- Message Box
For developers who want to use a simple numeric field control and find the number formatter too difficult to handle, they can use the numeric field control com.sun.star.awt.UnoControlNumericField. The control model, specified in com.sun.star.awt.UnoControlNumericFieldModel is simple to set up as the following table illustrates:
Properties of com.sun.star.awt.UnoControlNumericFieldModel | |
---|---|
DecimalAccuracy | short . The DecimalAccuracy property specifies the number of digits displayed to the right of the decimal point.
|
ShowThousandsSeparator | boolean . Determines whether thousands separators are used.
|
Value | double . Specifies the current value of the control.
|
ValueMax | double . Specifies the maximum value that the user can enter.
|
ValueMin | double . Specifies the minimum value that the user can enter.
|
ValueStep | double . Specifies the interval steps when using the spin button.
|
The code example sets up a numeric field with a defined number format and defines the numerical range within which the Value may be modified.
public XPropertySet insertNumericField( int _nPosX, int _nPosY, int _nWidth, double _fValueMin, double _fValueMax, double _fValue, double _fValueStep, short _nDecimalAccuracy){ XPropertySet xNFModelPSet = null; try{ // create a unique name by means of an own implementation... String sName = createUniqueName(m_xDlgModelNameContainer, "NumericField"); // create a controlmodel at the multiservicefactory of the dialog model... Object oNFModel = m_xMSFDialogModel.createInstance("com.sun.star.awt.UnoControlNumericFieldModel"); XMultiPropertySet xNFModelMPSet = (XMultiPropertySet) UnoRuntime.queryInterface(XMultiPropertySet.class, oNFModel); // Set the properties at the model - keep in mind to pass the property names in alphabetical order! xNFModelMPSet.setPropertyValues( new String[] {"Height", "Name", "PositionX", "PositionY", "Spin", "StrictFormat", "Width"}, new Object[] { new Integer(12), sName, new Integer(_nPosX), new Integer(_nPosY), Boolean.TRUE, Boolean.TRUE, new Integer(_nWidth)}); // The controlmodel is not really available until inserted to the Dialog container m_xDlgModelNameContainer.insertByName(sName, oNFModel); xNFModelPSet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, oNFModel); // The following properties may also be set with XMultiPropertySet but we // use the XPropertySet interface merely for reasons of demonstration xNFModelPSet.setPropertyValue("ValueMin", new Double(_fValueMin)); xNFModelPSet.setPropertyValue("ValueMax", new Double(_fValueMax)); xNFModelPSet.setPropertyValue("Value", new Double(_fValue)); xNFModelPSet.setPropertyValue("ValueStep", new Double(_fValueStep)); xNFModelPSet.setPropertyValue("ShowThousandsSeparator", Boolean.TRUE); xNFModelPSet.setPropertyValue("DecimalAccuracy", new Short(_nDecimalAccuracy)); }catch (com.sun.star.uno.Exception ex){ /* perform individual exception handling here. * Possible exception types are: * com.sun.star.lang.IllegalArgumentException, * com.sun.star.lang.WrappedTargetException, * com.sun.star.container.ElementExistException, * com.sun.star.beans.PropertyVetoException, * com.sun.star.beans.UnknownPropertyException, * com.sun.star.uno.Exception */ ex.printStackTrace(System.out); } return xNFModelPSet; }
Content on this page is licensed under the Public Documentation License (PDL). |