/** provides global helpers
*/ publicclass FLTools
{
/* ------------------------------------------------------------------ */ /** returns the name of the given form component
*/ privatestatic String getName( Object aFormComponent )
{
XNamed xNamed = UnoRuntime.queryInterface( XNamed.class,
aFormComponent );
String sName = ""; if ( null != xNamed )
sName = xNamed.getName(); return sName;
}
/* ------------------------------------------------------------------ */ /** returns the label of the given form component
*/ publicstatic String getLabel( Object aFormComponent ) throws com.sun.star.uno.Exception
{
String sLabel = "";
XPropertySet xProps = UNO.queryPropertySet( aFormComponent );
XPropertySetInfo xPSI = ( null != xProps ) ? xProps.getPropertySetInfo() : null; if ( null == xPSI )
{ // no property set or no property set info // can't do anything except falling back to the name return getName( aFormComponent );
}
// first check if the component has a LabelControl if ( xPSI.hasPropertyByName( "LabelControl" ) )
sLabel = getLabel( xProps.getPropertyValue( "LabelControl" ) );
// no LabelControl or no label at the LabelControl if ( 0 == sLabel.length() )
{ // a "Label" property? if ( xPSI.hasPropertyByName( "Label" ) )
sLabel = (String)xProps.getPropertyValue( "Label" );
if ( 0 == sLabel.length() )
{ // no Label property or no label set // -> fallback to the component name
sLabel = getName( aFormComponent );
}
}
return sLabel;
}
/* ------------------------------------------------------------------ */ /** retrieves the parent of the given object
*/ privatestatic <T> T getParent( Object aComponent, Class<T> aInterfaceClass )
{
XChild xAsChild = UnoRuntime.queryInterface( XChild.class, aComponent );
if ( ( null != xPSI ) && xPSI.hasPropertyByName( "ClassId" ) )
{ // get the ClassId property
XPropertySet xCompProps = UNO.queryPropertySet( xComponent );
Short nClassId = (Short)xCompProps.getPropertyValue( "ClassId" ); switch ( nClassId.intValue() )
{ case FormComponentType.COMMANDBUTTON: sType = "Command button"; break; case FormComponentType.RADIOBUTTON : sType = "Radio button"; break; case FormComponentType.IMAGEBUTTON : sType = "Image button"; break; case FormComponentType.CHECKBOX : sType = "Check Box"; break; case FormComponentType.LISTBOX : sType = "List Box"; break; case FormComponentType.COMBOBOX : sType = "Combo Box"; break; case FormComponentType.GROUPBOX : sType = "Group Box"; break; case FormComponentType.FIXEDTEXT : sType = "Fixed Text"; break; case FormComponentType.GRIDCONTROL : sType = "Grid Control"; break; case FormComponentType.FILECONTROL : sType = "File Control"; break; case FormComponentType.HIDDENCONTROL: sType = "Hidden Control"; break; case FormComponentType.IMAGECONTROL : sType = "Image Control"; break; case FormComponentType.DATEFIELD : sType = "Date Field"; break; case FormComponentType.TIMEFIELD : sType = "Time Field"; break; case FormComponentType.NUMERICFIELD : sType = "Numeric Field"; break; case FormComponentType.CURRENCYFIELD: sType = "Currency Field"; break; case FormComponentType.PATTERNFIELD : sType = "Pattern Field"; break;
case FormComponentType.TEXTFIELD : // there are two known services with this class id: the usual text field, // and the formatted field
sType = "Text Field"; if ( ( null != xSI ) && xSI.supportsService( "com.sun.star.form.component.FormattedField" ) )
{
sType = "Formatted Field";
} break;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.