summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Schoenheit [fs] <frank.schoenheit@sun.com>2010-03-15 14:07:56 +0100
committerFrank Schoenheit [fs] <frank.schoenheit@sun.com>2010-03-15 14:07:56 +0100
commit6c07c7cad453e4ebb447577c7313323764d50ea9 (patch)
tree7410c4e721b8d15b4cdb48ad109c1a93caed0a86
parent839c7d708a3acbbf52b5ce03f91196884c0dc258 (diff)
dba33f: #i110036#: when creating new controls or grid columns, set MouseWheelBehavior to NEVER
-rw-r--r--extensions/source/dbpilots/gridwizard.cxx30
-rw-r--r--forms/source/component/Columns.cxx20
-rw-r--r--forms/source/inc/componenttools.hxx6
-rw-r--r--forms/source/misc/componenttools.cxx12
-rw-r--r--wizards/com/sun/star/wizards/document/Control.java12
-rw-r--r--wizards/com/sun/star/wizards/document/DatabaseControl.java6
-rw-r--r--wizards/com/sun/star/wizards/document/GridControl.java12
7 files changed, 69 insertions, 29 deletions
diff --git a/extensions/source/dbpilots/gridwizard.cxx b/extensions/source/dbpilots/gridwizard.cxx
index c3d50e6c112d..bee49039a99c 100644
--- a/extensions/source/dbpilots/gridwizard.cxx
+++ b/extensions/source/dbpilots/gridwizard.cxx
@@ -36,6 +36,7 @@
#include <comphelper/stl_types.hxx>
#include <tools/string.hxx>
#include <com/sun/star/form/XGridColumnFactory.hpp>
+#include <com/sun/star/awt/MouseWheelBehavior.hpp>
#include <com/sun/star/container/XNameContainer.hpp>
#include <tools/debug.hxx>
#include "dbptools.hxx"
@@ -55,6 +56,7 @@ namespace dbp
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::container;
using namespace ::com::sun::star::form;
+ using namespace ::com::sun::star::awt;
using namespace ::svt;
//=====================================================================
@@ -114,6 +116,7 @@ namespace dbp
static const ::rtl::OUString s_sDataFieldProperty = ::rtl::OUString::createFromAscii("DataField");
static const ::rtl::OUString s_sLabelProperty = ::rtl::OUString::createFromAscii("Label");
static const ::rtl::OUString s_sWidthProperty = ::rtl::OUString::createFromAscii("Width");
+ static const ::rtl::OUString s_sMouseWheelBehavior = ::rtl::OUString::createFromAscii("MouseWheelBehavior");
static const ::rtl::OUString s_sEmptyString;
// collect "descriptors" for the to-be-created (grid)columns
@@ -205,23 +208,24 @@ namespace dbp
// create a (grid)column for the (resultset)column
try
{
- Reference< XPropertySet > xColumn = xColumnFactory->createColumn(*pColumnServiceName);
+ Reference< XPropertySet > xColumn( xColumnFactory->createColumn(*pColumnServiceName), UNO_SET_THROW );
+ Reference< XPropertySetInfo > xColumnPSI( xColumn->getPropertySetInfo(), UNO_SET_THROW );
::rtl::OUString sColumnName(*pColumnServiceName);
disambiguateName(xExistenceChecker, sColumnName);
- if (xColumn.is())
- {
- // the data field the column should be bound to
- xColumn->setPropertyValue(s_sDataFieldProperty, makeAny(*pFormFieldName));
- // the label
- xColumn->setPropertyValue(s_sLabelProperty, makeAny(::rtl::OUString(*pFormFieldName) += *pColumnLabelPostfix));
- // the width (<void/> => column will be auto-sized)
- xColumn->setPropertyValue(s_sWidthProperty, Any());
-
- // insert the column
- xColumnContainer->insertByName(sColumnName, makeAny(xColumn));
- }
+ // the data field the column should be bound to
+ xColumn->setPropertyValue(s_sDataFieldProperty, makeAny(*pFormFieldName));
+ // the label
+ xColumn->setPropertyValue(s_sLabelProperty, makeAny(::rtl::OUString(*pFormFieldName) += *pColumnLabelPostfix));
+ // the width (<void/> => column will be auto-sized)
+ xColumn->setPropertyValue(s_sWidthProperty, Any());
+
+ if ( xColumnPSI->hasPropertyByName( s_sMouseWheelBehavior ) )
+ xColumn->setPropertyValue( s_sMouseWheelBehavior, makeAny( MouseWheelBehavior::SCROLL_DISABLED ) );
+
+ // insert the column
+ xColumnContainer->insertByName(sColumnName, makeAny(xColumn));
}
catch(Exception&)
{
diff --git a/forms/source/component/Columns.cxx b/forms/source/component/Columns.cxx
index 29d6f1130509..ae685ef768fb 100644
--- a/forms/source/component/Columns.cxx
+++ b/forms/source/component/Columns.cxx
@@ -35,6 +35,7 @@
#include "property.hrc"
#endif
#include "property.hxx"
+#include "componenttools.hxx"
#include "ids.hxx"
#include "findpos.hxx"
#include <com/sun/star/io/XPersistObject.hpp>
@@ -172,11 +173,20 @@ Sequence<sal_Int8> SAL_CALL OGridColumn::getImplementationId() throw(RuntimeExce
//------------------------------------------------------------------
Sequence<Type> SAL_CALL OGridColumn::getTypes() throw(RuntimeException)
{
- Reference<XTypeProvider> xProv;
-
- if (query_aggregation(m_xAggregate, xProv))
- return concatSequences(OGridColumn_BASE::getTypes(), xProv->getTypes());
- return OGridColumn_BASE::getTypes();
+ TypeBag aTypes( OGridColumn_BASE::getTypes() );
+ // erase the types which we do not support
+ aTypes.removeType( XFormComponent::static_type() );
+ aTypes.removeType( XServiceInfo::static_type() );
+ aTypes.removeType( XBindableValue::static_type() );
+ aTypes.removeType( XPropertyContainer::static_type() );
+ // but re-add their base class(es)
+ aTypes.addType( XChild::static_type() );
+
+ Reference< XTypeProvider > xProv;
+ if ( query_aggregation( m_xAggregate, xProv ))
+ aTypes.addTypes( xProv->getTypes() );
+
+ return aTypes.getTypes();
}
//------------------------------------------------------------------
diff --git a/forms/source/inc/componenttools.hxx b/forms/source/inc/componenttools.hxx
index f15a4fc528dc..b9806bc5dc85 100644
--- a/forms/source/inc/componenttools.hxx
+++ b/forms/source/inc/componenttools.hxx
@@ -51,7 +51,7 @@ namespace frm
typedef ::com::sun::star::uno::Type Type;
public:
- bool operator()( const Type& _rLHS, const Type& _rRHS )
+ bool operator()( const Type& _rLHS, const Type& _rRHS ) const
{
return _rLHS.getTypeName() < _rRHS.getTypeName();
}
@@ -88,7 +88,9 @@ namespace frm
const TypeSequence& _rTypes3
);
- void addTypes( const TypeSequence& _rTypes );
+ void addType( const Type& i_rType );
+ void addTypes( const TypeSequence& _rTypes );
+ void removeType( const Type& i_rType );
/** returns the types represented by this bag
*/
diff --git a/forms/source/misc/componenttools.cxx b/forms/source/misc/componenttools.cxx
index 21740749d4d4..c0d0f5548294 100644
--- a/forms/source/misc/componenttools.cxx
+++ b/forms/source/misc/componenttools.cxx
@@ -87,6 +87,18 @@ namespace frm
}
//--------------------------------------------------------------------
+ void TypeBag::addType( const Type& i_rType )
+ {
+ m_aTypes.insert( i_rType );
+ }
+
+ //--------------------------------------------------------------------
+ void TypeBag::removeType( const TypeBag::Type& i_rType )
+ {
+ m_aTypes.erase( i_rType );
+ }
+
+ //--------------------------------------------------------------------
TypeBag::TypeSequence TypeBag::getTypes() const
{
TypeSequence aTypes( m_aTypes.size() );
diff --git a/wizards/com/sun/star/wizards/document/Control.java b/wizards/com/sun/star/wizards/document/Control.java
index 602aab2fd423..b81cc792e412 100644
--- a/wizards/com/sun/star/wizards/document/Control.java
+++ b/wizards/com/sun/star/wizards/document/Control.java
@@ -36,6 +36,7 @@ import com.sun.star.awt.XControlModel;
import com.sun.star.awt.XLayoutConstrains;
import com.sun.star.awt.XWindowPeer;
import com.sun.star.beans.XPropertySet;
+import com.sun.star.beans.XPropertySetInfo;
import com.sun.star.container.XNameAccess;
import com.sun.star.container.XNameContainer;
import com.sun.star.container.XNamed;
@@ -100,8 +101,13 @@ public class Control extends Shape
icontroltype = _icontroltype;
sServiceName = oFormHandler.sModelServices[getControlType()];
Object oControlModel = oFormHandler.xMSFDoc.createInstance(sServiceName);
- xControlModel = (XControlModel) UnoRuntime.queryInterface(XControlModel.class, oControlModel);
- xPropertySet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, oControlModel);
+ xControlModel = UnoRuntime.queryInterface( XControlModel.class, oControlModel );
+ xPropertySet = UnoRuntime.queryInterface( XPropertySet.class, oControlModel );
+
+ XPropertySetInfo xPSI = xPropertySet.getPropertySetInfo();
+ if ( xPSI.hasPropertyByName( "MouseWheelBehavior" ) )
+ xPropertySet.setPropertyValue( "MouseWheelBehavior", new Short( com.sun.star.awt.MouseWheelBehavior.SCROLL_DISABLED ) );
+
insertControlInContainer(_FieldName);
xControlShape.setControl(xControlModel);
if (_xGroupShapes == null)
@@ -113,7 +119,7 @@ public class Control extends Shape
_xGroupShapes.add(xShape);
}
xControl = oFormHandler.xControlAccess.getControl(xControlModel);
- xControlPropertySet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xControl);
+ xControlPropertySet = UnoRuntime.queryInterface( XPropertySet.class, xControl );
xWindowPeer = xControl.getPeer();
}
catch (Exception e)
diff --git a/wizards/com/sun/star/wizards/document/DatabaseControl.java b/wizards/com/sun/star/wizards/document/DatabaseControl.java
index ed48ddbc04ea..9e2db8eca332 100644
--- a/wizards/com/sun/star/wizards/document/DatabaseControl.java
+++ b/wizards/com/sun/star/wizards/document/DatabaseControl.java
@@ -32,6 +32,7 @@ package com.sun.star.wizards.document;
import com.sun.star.awt.Point;
import com.sun.star.beans.XPropertySet;
+import com.sun.star.beans.XPropertySetInfo;
import com.sun.star.container.XNameContainer;
import com.sun.star.drawing.XShapes;
import com.sun.star.sdbc.DataType;
@@ -95,6 +96,11 @@ public class DatabaseControl extends Control
xPropColumn.setPropertyValue("DataField", sFieldName);
xPropColumn.setPropertyValue("Label", _columntitle);
xPropColumn.setPropertyValue("Width", new Integer(0)); // Width of column is adjusted to Columname
+
+ XPropertySetInfo xPSI = xPropColumn.getPropertySetInfo();
+ if ( xPSI.hasPropertyByName( "MouseWheelBehavior" ) )
+ xPropColumn.setPropertyValue( "MouseWheelBehavior", new Short( com.sun.star.awt.MouseWheelBehavior.SCROLL_DISABLED ) );
+
setNumericLimits();
_oGridControl.xNameContainer.insertByName(sFieldName, xPropColumn);
}
diff --git a/wizards/com/sun/star/wizards/document/GridControl.java b/wizards/com/sun/star/wizards/document/GridControl.java
index 426aa026213b..791e7fc85497 100644
--- a/wizards/com/sun/star/wizards/document/GridControl.java
+++ b/wizards/com/sun/star/wizards/document/GridControl.java
@@ -63,15 +63,15 @@ public class GridControl extends Shape
{
fieldcolumns = _fieldcolumns;
Object oGridModel = oFormHandler.xMSFDoc.createInstance(oFormHandler.sModelServices[FormHandler.SOGRIDCONTROL]);
- xNameContainer = (XNameContainer) UnoRuntime.queryInterface(XNameContainer.class, oGridModel);
- xNameAccess = (XNameAccess) UnoRuntime.queryInterface(XNameAccess.class, oGridModel);
+ xNameContainer = UnoRuntime.queryInterface( XNameContainer.class, oGridModel );
+ xNameAccess = UnoRuntime.queryInterface( XNameAccess.class, oGridModel );
_xFormName.insertByName(_sname, oGridModel);
- xControlModel = (XControlModel) UnoRuntime.queryInterface(XControlModel.class, oGridModel);
+ xControlModel = UnoRuntime.queryInterface( XControlModel.class, oGridModel );
xControlShape.setControl(xControlModel);
- xPropertySet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, oGridModel);
+ xPropertySet = UnoRuntime.queryInterface( XPropertySet.class, oGridModel );
oFormHandler.xDrawPage.add(xShape);
- xGridColumnFactory = (XGridColumnFactory) UnoRuntime.queryInterface(XGridColumnFactory.class, oGridModel);
- xComponent = (XComponent) UnoRuntime.queryInterface(XComponent.class, oGridModel);
+ xGridColumnFactory = UnoRuntime.queryInterface( XGridColumnFactory.class, oGridModel );
+ xComponent = UnoRuntime.queryInterface( XComponent.class, oGridModel );
// Helper.setUnoPropertyValue(oGridModel, "Name", _sname);
for (int i = 0; i < fieldcolumns.length; i++)