diff options
Diffstat (limited to 'wizards/com/sun/star/wizards/ui/event/UnoDataAware.java')
-rw-r--r-- | wizards/com/sun/star/wizards/ui/event/UnoDataAware.java | 164 |
1 files changed, 107 insertions, 57 deletions
diff --git a/wizards/com/sun/star/wizards/ui/event/UnoDataAware.java b/wizards/com/sun/star/wizards/ui/event/UnoDataAware.java index ad6e019a8196..d489ac9d47f4 100644 --- a/wizards/com/sun/star/wizards/ui/event/UnoDataAware.java +++ b/wizards/com/sun/star/wizards/ui/event/UnoDataAware.java @@ -45,7 +45,8 @@ import com.sun.star.wizards.common.Helper; * SelectedItems[] property. * For those controls, static convenience methods are offered, to simplify use. */ -public class UnoDataAware extends DataAware { +public class UnoDataAware extends DataAware +{ protected Object unoControl; protected Object unoModel; @@ -53,42 +54,54 @@ public class UnoDataAware extends DataAware { protected Object[] disableObjects = new Object[0]; protected boolean inverse = false; - protected UnoDataAware(Object dataObject, Value value, Object unoObject_, String unoPropName_) { + protected UnoDataAware(Object dataObject, Value value, Object unoObject_, String unoPropName_) + { super(dataObject, value); unoControl = unoObject_; unoModel = getModel(unoControl); unoPropName = unoPropName_; } - public void setInverse(boolean i) { + public void setInverse(boolean i) + { inverse = i; } - protected void enableControls(Object value) { + protected void enableControls(Object value) + { Boolean b = getBoolean(value); if (inverse) + { b = b.booleanValue() ? Boolean.FALSE : Boolean.TRUE; + } for (int i = 0; i < disableObjects.length; i++) + { setEnabled(disableObjects[i], b); + } } - protected void setToUI(Object value) { + protected void setToUI(Object value) + { //System.out.println("Settings uno property : "+ Helper.getUnoPropertyValue(this.unoModel,"Name") + "<-" +stringof(value)); Helper.setUnoPropertyValue(unoModel, unoPropName, value); } - private String stringof(Object value) { - if (value.getClass().isArray()) { + private String stringof(Object value) + { + if (value.getClass().isArray()) + { StringBuffer sb = new StringBuffer("["); - for (int i = 0 ; i<((short[])value).length; i++) - sb.append( ((short[])value)[i] ) .append(" , "); + for (int i = 0; i < ((short[]) value).length; i++) + { + sb.append(((short[]) value)[i]).append(" , "); + } sb.append("]"); return sb.toString(); } - else return value.toString(); - - - + else + { + return value.toString(); + } } /** @@ -101,118 +114,155 @@ public class UnoDataAware extends DataAware { * @param value * @return */ - protected Boolean getBoolean(Object value) { + protected Boolean getBoolean(Object value) + { if (value == null) + { return Boolean.FALSE; + } if (value instanceof Boolean) + { return (Boolean) value; + } else if (value.getClass().isArray()) + { return ((short[]) value).length != 0 ? Boolean.TRUE : Boolean.FALSE; + } else if (value.equals("")) + { return Boolean.FALSE; + } else if (value instanceof Number) + { return ((Number) value).intValue() == 0 ? Boolean.TRUE : Boolean.FALSE; + } else + { return Boolean.TRUE; + } } - public void disableControls(Object[] controls) { + public void disableControls(Object[] controls) + { disableObjects = controls; } - protected Object getFromUI() { + protected Object getFromUI() + { return Helper.getUnoPropertyValue(unoModel, unoPropName); } - private static UnoDataAware attachTextControl(Object data, String prop, Object unoText, final Listener listener, String unoProperty, boolean field, Object value) { + private static UnoDataAware attachTextControl(Object data, String prop, Object unoText, final Listener listener, String unoProperty, boolean field, Object value) + { XTextComponent text = (XTextComponent) UnoRuntime.queryInterface(XTextComponent.class, unoText); final UnoDataAware uda = new UnoDataAware(data, - field - ? DataAwareFields.getFieldValueFor(data,prop,value) - : new DataAware.PropertyValue(prop,data), - text, unoProperty); - text.addTextListener(new XTextListener() { - public void textChanged(TextEvent te) { + field + ? DataAwareFields.getFieldValueFor(data, prop, value) + : new DataAware.PropertyValue(prop, data), + text, unoProperty); + text.addTextListener(new XTextListener() + { + + public void textChanged(TextEvent te) + { uda.updateData(); if (listener != null) + { listener.eventPerformed(te); + } } - public void disposing(EventObject eo) { + + public void disposing(EventObject eo) + { } }); return uda; } - - public static UnoDataAware attachEditControl(Object data, String prop, Object unoControl, Listener listener, boolean field) { - return attachTextControl(data, prop, unoControl, listener, "Text",field, ""); + public static UnoDataAware attachEditControl(Object data, String prop, Object unoControl, Listener listener, boolean field) + { + return attachTextControl(data, prop, unoControl, listener, "Text", field, ""); } - - public static UnoDataAware attachDateControl(Object data, String prop, Object unoControl, Listener listener, boolean field) { - return attachTextControl(data, prop, unoControl, listener, "Date",field, new Integer(0)); + public static UnoDataAware attachDateControl(Object data, String prop, Object unoControl, Listener listener, boolean field) + { + return attachTextControl(data, prop, unoControl, listener, "Date", field, new Integer(0)); } - - public static UnoDataAware attachTimeControl(Object data, String prop, Object unoControl, Listener listener, boolean field) { + public static UnoDataAware attachTimeControl(Object data, String prop, Object unoControl, Listener listener, boolean field) + { return attachTextControl(data, prop, unoControl, listener, "Time", field, new Integer(0)); } - public static UnoDataAware attachNumericControl(Object data, String prop, Object unoControl, Listener listener, boolean field) { - return attachTextControl(data, prop, unoControl, listener, "Value",field, new Double(0)); + public static UnoDataAware attachNumericControl(Object data, String prop, Object unoControl, Listener listener, boolean field) + { + return attachTextControl(data, prop, unoControl, listener, "Value", field, new Double(0)); } - public static UnoDataAware attachCheckBox(Object data, String prop, Object checkBox, final Listener listener, boolean field) { + public static UnoDataAware attachCheckBox(Object data, String prop, Object checkBox, final Listener listener, boolean field) + { XCheckBox xcheckBox = ((XCheckBox) UnoRuntime.queryInterface(XCheckBox.class, checkBox)); final UnoDataAware uda = new UnoDataAware(data, - field - ? DataAwareFields.getFieldValueFor(data,prop,new Short((short)0)) - : new DataAware.PropertyValue(prop,data), - checkBox, "State"); + field + ? DataAwareFields.getFieldValueFor(data, prop, new Short((short) 0)) + : new DataAware.PropertyValue(prop, data), + checkBox, "State"); xcheckBox.addItemListener(itemListener(uda, listener)); return uda; } - static XItemListener itemListener(final DataAware da, final Listener listener) { - return new XItemListener() { - public void itemStateChanged(ItemEvent ie) { + static XItemListener itemListener(final DataAware da, final Listener listener) + { + return new XItemListener() + { + + public void itemStateChanged(ItemEvent ie) + { da.updateData(); - if (listener != null ) + if (listener != null) + { listener.eventPerformed(ie); + } } - public void disposing(EventObject eo) { + + public void disposing(EventObject eo) + { } }; } - public static UnoDataAware attachLabel(Object data, String prop, Object label, final Listener listener, boolean field) { + public static UnoDataAware attachLabel(Object data, String prop, Object label, final Listener listener, boolean field) + { return new UnoDataAware(data, - field ? DataAwareFields.getFieldValueFor(data,prop,"") - : new DataAware.PropertyValue(prop,data), - label , "Label"); + field ? DataAwareFields.getFieldValueFor(data, prop, "") + : new DataAware.PropertyValue(prop, data), + label, "Label"); } - public static UnoDataAware attachListBox(Object data, String prop, Object listBox, final Listener listener, boolean field) { + public static UnoDataAware attachListBox(Object data, String prop, Object listBox, final Listener listener, boolean field) + { XListBox xListBox = (XListBox) UnoRuntime.queryInterface(XListBox.class, listBox); final UnoDataAware uda = new UnoDataAware(data, - field - ? DataAwareFields.getFieldValueFor(data,prop,new short[0]) - : new DataAware.PropertyValue(prop,data), - listBox, "SelectedItems"); + field + ? DataAwareFields.getFieldValueFor(data, prop, new short[0]) + : new DataAware.PropertyValue(prop, data), + listBox, "SelectedItems"); xListBox.addItemListener(itemListener(uda, listener)); return uda; } - public static Object getModel(Object control) { + public static Object getModel(Object control) + { return ((XControl) UnoRuntime.queryInterface(XControl.class, control)).getModel(); } - public static void setEnabled(Object control, boolean enabled) { + public static void setEnabled(Object control, boolean enabled) + { setEnabled(control, enabled ? Boolean.TRUE : Boolean.FALSE); } - public static void setEnabled(Object control, Boolean enabled) { + public static void setEnabled(Object control, Boolean enabled) + { Helper.setUnoPropertyValue(getModel(control), "Enabled", enabled); } - } |