summaryrefslogtreecommitdiff
path: root/wizards/com/sun/star/wizards/document/FormHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'wizards/com/sun/star/wizards/document/FormHandler.java')
-rw-r--r--wizards/com/sun/star/wizards/document/FormHandler.java31
1 files changed, 25 insertions, 6 deletions
diff --git a/wizards/com/sun/star/wizards/document/FormHandler.java b/wizards/com/sun/star/wizards/document/FormHandler.java
index 6a35a1399d7e..20555455e2fe 100644
--- a/wizards/com/sun/star/wizards/document/FormHandler.java
+++ b/wizards/com/sun/star/wizards/document/FormHandler.java
@@ -35,9 +35,11 @@ import com.sun.star.awt.VclWindowPeerAttribute;
import com.sun.star.awt.XControlModel;
import com.sun.star.awt.XDevice;
import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.NoSuchElementException;
import com.sun.star.container.XChild;
import com.sun.star.container.XNameAccess;
import com.sun.star.container.XNameContainer;
+import com.sun.star.lang.WrappedTargetException;
import com.sun.star.view.XControlAccess;
import com.sun.star.wizards.common.*;
@@ -70,9 +72,7 @@ public class FormHandler
public XDrawPage xDrawPage;
private XDrawPageSupplier xDrawPageSupplier;
public String[] sModelServices = new String[8];
- public XNameContainer xNamedForm;
public static ControlData[] oControlData;
- // ControlData[] oImageControlData;
public final static int SOLABEL = 0;
public final static int SOTEXTBOX = 1;
@@ -126,7 +126,7 @@ public class FormHandler
sModelServices[SOGRIDCONTROL] = "com.sun.star.form.component.GridControl";
sModelServices[SOIMAGECONTROL] = "com.sun.star.form.component.DatabaseImageControl";
- oControlData = new ControlData[21];
+ oControlData = new ControlData[22];
oControlData[0] = createControlData(DataType.BIT, SOCHECKBOX, "CheckBox", "CheckBox", false);
oControlData[1] = createControlData(DataType.BOOLEAN, SOCHECKBOX, "CheckBox", "CheckBox", false);
oControlData[2] = createControlData(DataType.TINYINT, SONUMERICCONTROL, "FormattedField", "FormattedField", false);
@@ -149,6 +149,8 @@ public class FormHandler
oControlData[18] = createControlData(DataType.VARBINARY, SOIMAGECONTROL, "ImageControl", "TextField", false);
oControlData[19] = createControlData(DataType.LONGVARBINARY, SOIMAGECONTROL, "ImageControl", "TextField", false);
oControlData[20] = createControlData(DataType.BLOB, SOIMAGECONTROL, "ImageControl", "TextField", false);
+
+ oControlData[21] = createControlData(DataType.OTHER, SOIMAGECONTROL, "ImageControl", "TextField", false);
}
public int getControlType(int _fieldtype)
@@ -298,7 +300,7 @@ public class FormHandler
{
for (int i = xDrawPage.getCount() - 1; i >= 0; i--)
{
- if (hasControlByName(_FormName, xDrawPage.getByIndex(i)))
+ if (belongsToForm(xDrawPage.getByIndex(i), _FormName))
{
XShape xShape = (XShape) UnoRuntime.queryInterface(XShape.class, xDrawPage.getByIndex(i));
xDrawPage.remove(xShape);
@@ -311,7 +313,23 @@ public class FormHandler
}
}
- public boolean hasControlByName(String _FormName, Object _oDrawPageElement)
+ public void removeElement( XNameContainer _parentContainer, String _formName )
+ {
+ try
+ {
+ _parentContainer.removeByName( _formName );
+ }
+ catch ( WrappedTargetException e )
+ {
+ e.printStackTrace( System.err );
+ }
+ catch( final NoSuchElementException e )
+ {
+ e.printStackTrace( System.err );
+ }
+ }
+
+ public boolean belongsToForm(Object _oDrawPageElement, String _FormName)
{
XServiceInfo xServiceInfo = (XServiceInfo) UnoRuntime.queryInterface(XServiceInfo.class, _oDrawPageElement);
if (xServiceInfo.supportsService("com.sun.star.drawing.ControlShape"))
@@ -324,7 +342,7 @@ public class FormHandler
XChild xChild = (XChild) UnoRuntime.queryInterface(XChild.class, xControlModel);
XNamed xNamed = (XNamed) UnoRuntime.queryInterface(XNamed.class, xChild.getParent());
String sName = xNamed.getName();
- return _FormName.equals(xNamed.getName());
+ return _FormName.equals(sName);
}
}
return false;
@@ -339,6 +357,7 @@ public class FormHandler
{
oDBForm = xMSFDoc.createInstance("com.sun.star.form.component.Form");
_xNamedFormContainer.insertByName(_FormName, oDBForm);
+ XNameContainer xNamedForm;
xNamedForm = (XNameContainer) UnoRuntime.queryInterface(XNameContainer.class, oDBForm);
return xNamedForm;
}