diff options
Diffstat (limited to 'wizards/com/sun/star/wizards/ui/ControlScroller.java')
-rw-r--r-- | wizards/com/sun/star/wizards/ui/ControlScroller.java | 282 |
1 files changed, 208 insertions, 74 deletions
diff --git a/wizards/com/sun/star/wizards/ui/ControlScroller.java b/wizards/com/sun/star/wizards/ui/ControlScroller.java index 30074157ec62..38fdca98edd7 100644 --- a/wizards/com/sun/star/wizards/ui/ControlScroller.java +++ b/wizards/com/sun/star/wizards/ui/ControlScroller.java @@ -26,7 +26,9 @@ * <http://www.openoffice.org/license.html> * for a copy of the LGPLv3 License. * - ************************************************************************/package com.sun.star.wizards.ui; + ************************************************************************/ +package com.sun.star.wizards.ui; + import com.sun.star.awt.FocusEvent; import com.sun.star.awt.XFocusListener; import com.sun.star.awt.XScrollBar; @@ -40,7 +42,9 @@ import com.sun.star.wizards.common.*; import java.util.*; -public abstract class ControlScroller { +public abstract class ControlScroller +{ + protected WizardDialog CurUnoDialog; protected XMultiServiceFactory xMSF; private Object oImgControl; @@ -71,12 +75,15 @@ public abstract class ControlScroller { protected Vector ControlGroupVector = new Vector(); protected PeerConfig oTitlePeerConfig; - class AdjustmentListenerImpl implements com.sun.star.awt.XAdjustmentListener { + class AdjustmentListenerImpl implements com.sun.star.awt.XAdjustmentListener + { - public void disposing(com.sun.star.lang.EventObject eventObject) { + public void disposing(com.sun.star.lang.EventObject eventObject) + { } - public void adjustmentValueChanged(AdjustmentEvent AdjustEvent) { + public void adjustmentValueChanged(AdjustmentEvent AdjustEvent) + { scrollControls(); } } @@ -93,7 +100,8 @@ public abstract class ControlScroller { * @author bc93774 */ // TODO add parameters for tabindices and helpindex - protected ControlScroller(WizardDialog _CurUnoDialog, XMultiServiceFactory _xMSF, int _iStep, int _iCompPosX, int _iCompPosY, int _iCompWidth, int _nblockincrement, int _nlinedistance, int _firsthelpindex) { + protected ControlScroller(WizardDialog _CurUnoDialog, XMultiServiceFactory _xMSF, int _iStep, int _iCompPosX, int _iCompPosY, int _iCompWidth, int _nblockincrement, int _nlinedistance, int _firsthelpindex) + { this.xMSF = _xMSF; this.nblockincrement = _nblockincrement; this.CurUnoDialog = _CurUnoDialog; @@ -114,27 +122,48 @@ public abstract class ControlScroller { nlineincrement = 1; sIncSuffix = com.sun.star.wizards.common.Desktop.getIncrementSuffix(CurUnoDialog.xDlgNameAccess, "imgBackground"); oImgControl = CurUnoDialog.insertControlModel("com.sun.star.awt.UnoControlImageControlModel", "imgBackground" + sIncSuffix, - new String[] { "Border", "Height", "PositionX", "PositionY", "Step", "Width" }, - new Object[] { new Short("1"), new Integer(iCompHeight), ICompPosX, new Integer(iCompPosY), IStep, ICompWidth }); + new String[] + { + "Border", "Height", "PositionX", "PositionY", "Step", "Width" + }, + new Object[] + { + new Short("1"), new Integer(iCompHeight), ICompPosX, new Integer(iCompPosY), IStep, ICompWidth + }); oImgControl = CurUnoDialog.xDlgContainer.getControl("imgBackground" + sIncSuffix); setComponentMouseTransparent(); xScrollBar = CurUnoDialog.insertScrollBar("TitleScrollBar" + sIncSuffix, 0, new AdjustmentListenerImpl(), - new String[] { "Border", "Enabled", "Height", "HelpURL", "Orientation", "PositionX", "PositionY", "Step", "Width" }, - new Object[] { new Short((short)0), new Boolean(true), new Integer(ScrollHeight), "HID:" + curHelpIndex, new Integer(ScrollBarOrientation.VERTICAL), new Integer(iCompPosX + iCompWidth - iScrollBarWidth - 1), new Integer(iCompPosY + 1), IStep, new Integer(iScrollBarWidth)}); + new String[] + { + "Border", "Enabled", "Height", "HelpURL", "Orientation", "PositionX", "PositionY", "Step", "Width" + }, + new Object[] + { + new Short((short) 0), new Boolean(true), new Integer(ScrollHeight), "HID:" + curHelpIndex, new Integer(ScrollBarOrientation.VERTICAL), new Integer(iCompPosX + iCompWidth - iScrollBarWidth - 1), new Integer(iCompPosY + 1), IStep, new Integer(iScrollBarWidth) + }); scrollfields = new Vector(); int ypos = iStartPosY + SORELFIRSTPOSY; - for (int i = 0; i < nblockincrement; i++) { + for (int i = 0; i < nblockincrement; i++) + { insertControlGroup(i, ypos); ypos += linedistance; } } - public void setComponentMouseTransparent(){ - CurUnoDialog.getPeerConfiguration().setPeerProperties(oImgControl, new String[] { "MouseTransparent" }, new Boolean[] { Boolean.TRUE }); + public void setComponentMouseTransparent() + { + CurUnoDialog.getPeerConfiguration().setPeerProperties(oImgControl, new String[] + { + "MouseTransparent" + }, new Boolean[] + { + Boolean.TRUE + }); } - protected void setScrollBarOrientationHorizontal() { + protected void setScrollBarOrientationHorizontal() + { Helper.setUnoPropertyValue(xScrollBar, "Orientation", new Integer(ScrollBarOrientation.HORIZONTAL)); } @@ -142,95 +171,152 @@ public abstract class ControlScroller { * @author bc93774 * @param _ntotfieldcount: The number of fields that are to be administered by the ControlScroller */ - protected void initialize(int _ntotfieldcount) { - try { + protected void initialize(int _ntotfieldcount) + { + try + { boolean bisVisible; ntotfieldcount = _ntotfieldcount; setCurFieldCount(); nscrollvalue = 0; Helper.setUnoPropertyValue(UnoDialog.getModel(xScrollBar), new String("ScrollValue"), new Integer(nscrollvalue)); if (ntotfieldcount > nblockincrement) - Helper.setUnoPropertyValues(UnoDialog.getModel(xScrollBar), new String[] { "Enabled", "BlockIncrement", "LineIncrement", "ScrollValue", "ScrollValueMax" }, new Object[] { Boolean.TRUE, new Integer(nblockincrement), new Integer(nlineincrement), new Integer(nscrollvalue), new Integer(ntotfieldcount - nblockincrement)}); + { + Helper.setUnoPropertyValues(UnoDialog.getModel(xScrollBar), new String[] + { + "Enabled", "BlockIncrement", "LineIncrement", "ScrollValue", "ScrollValueMax" + }, new Object[] + { + Boolean.TRUE, new Integer(nblockincrement), new Integer(nlineincrement), new Integer(nscrollvalue), new Integer(ntotfieldcount - nblockincrement) + }); + } else - Helper.setUnoPropertyValues(UnoDialog.getModel(xScrollBar), new String[] { "Enabled", "ScrollValue" }, new Object[] { Boolean.FALSE, new Integer(nscrollvalue)}); + { + Helper.setUnoPropertyValues(UnoDialog.getModel(xScrollBar), new String[] + { + "Enabled", "ScrollValue" + }, new Object[] + { + Boolean.FALSE, new Integer(nscrollvalue) + }); + } fillupControls(true); - } catch (java.lang.Exception ex) { + } + catch (java.lang.Exception ex) + { ex.printStackTrace(); } } - protected void fillupControls(boolean binitialize) { + protected void fillupControls(boolean binitialize) + { int newindex; PropertyValue[] oldproperties; PropertyValue[] newproperties; - for (int a = 0; a < this.nblockincrement; a++) { + for (int a = 0; a < this.nblockincrement; a++) + { if (a < ncurfieldcount) + { fillupControls(a); + } if (binitialize) + { setControlGroupVisible(a, (a < this.ncurfieldcount)); + } } if (binitialize) + { CurUnoDialog.repaintDialogStep(); - + } } - protected void fillupControls(int guiRow) { + protected void fillupControls(int guiRow) + { PropertyValue[] nameProps = (PropertyValue[]) scrollfields.get(guiRow); PropertyValue[] valueProps = (PropertyValue[]) scrollfields.get(guiRow + nscrollvalue); - for (int n = 0; n < nameProps.length; n++) { + for (int n = 0; n < nameProps.length; n++) + { if (CurUnoDialog.xDlgNameAccess.hasByName(nameProps[n].Name)) + { setControlData(nameProps[n].Name, valueProps[n].Value); + } else + { throw new IllegalArgumentException("No such control !"); + } } } - - protected void setScrollValue(int _nscrollvalue) { - if (_nscrollvalue >= 0) { + protected void setScrollValue(int _nscrollvalue) + { + if (_nscrollvalue >= 0) + { Helper.setUnoPropertyValue(UnoDialog.getModel(xScrollBar), new String("ScrollValue"), new Integer(_nscrollvalue)); scrollControls(); } } - protected void setScrollValue(int _nscrollvalue, int _ntotfieldcount) { + protected void setScrollValue(int _nscrollvalue, int _ntotfieldcount) + { setTotalFieldCount(_ntotfieldcount); setScrollValue(_nscrollvalue); } - protected int getTotalFieldCount() { + protected int getTotalFieldCount() + { return ntotfieldcount; } - protected int getCurFieldCount() { + protected int getCurFieldCount() + { return ncurfieldcount; } - private void setCurFieldCount() { + private void setCurFieldCount() + { if (ntotfieldcount > nblockincrement) + { ncurfieldcount = nblockincrement; + } else + { ncurfieldcount = ntotfieldcount; + } } - protected void setTotalFieldCount(int _ntotfieldcount) { + protected void setTotalFieldCount(int _ntotfieldcount) + { this.ntotfieldcount = _ntotfieldcount; setCurFieldCount(); if (ntotfieldcount > nblockincrement) - Helper.setUnoPropertyValues(UnoDialog.getModel(xScrollBar), new String[] { "Enabled", "ScrollValueMax" }, new Object[] { Boolean.TRUE, new Integer(ntotfieldcount - nblockincrement)}); + { + Helper.setUnoPropertyValues(UnoDialog.getModel(xScrollBar), new String[] + { + "Enabled", "ScrollValueMax" + }, new Object[] + { + Boolean.TRUE, new Integer(ntotfieldcount - nblockincrement) + }); + } else + { Helper.setUnoPropertyValue(UnoDialog.getModel(xScrollBar), "Enabled", Boolean.FALSE); + } } - protected void toggleComponent(boolean _bdoenable) { + protected void toggleComponent(boolean _bdoenable) + { boolean bdoenable = _bdoenable && (ntotfieldcount > nblockincrement); CurUnoDialog.setControlProperty("TitleScrollBar" + sIncSuffix, "Enabled", new Boolean(bdoenable)); } - protected void toggleControls(boolean _bdoenable) { - for (int n = 0; n < scrollfields.size(); n++) { + protected void toggleControls(boolean _bdoenable) + { + for (int n = 0; n < scrollfields.size(); n++) + { PropertyValue[] curproperties = (PropertyValue[]) scrollfields.elementAt(n); - for (int m = 0; m < curproperties.length; m++) { + for (int m = 0; m < curproperties.length; m++) + { PropertyValue curproperty = curproperties[m]; CurUnoDialog.setControlProperty(curproperty.Name, "Enabled", new Boolean(_bdoenable)); } @@ -238,50 +324,71 @@ public abstract class ControlScroller { } - protected int getScrollValue() { + protected int getScrollValue() + { return nscrollvalue; } - protected void setLineIncrementation(int _nlineincrement) { + protected void setLineIncrementation(int _nlineincrement) + { this.nlineincrement = _nlineincrement; Helper.setUnoPropertyValue(UnoDialog.getModel(xScrollBar), new String("LineIncrement"), new Integer(nlineincrement)); } - protected int getLineIncrementation() { + protected int getLineIncrementation() + { return nlineincrement; } - protected void setBlockIncrementation(int _nblockincrement) { + protected void setBlockIncrementation(int _nblockincrement) + { this.nblockincrement = _nblockincrement; - Helper.setUnoPropertyValues(UnoDialog.getModel(xScrollBar), new String[] { "Enabled", "BlockIncrement", "ScrollValueMax" }, new Object[] { new Boolean(ntotfieldcount > nblockincrement), new Integer(nblockincrement), new Integer(ntotfieldcount - nblockincrement)}); + Helper.setUnoPropertyValues(UnoDialog.getModel(xScrollBar), new String[] + { + "Enabled", "BlockIncrement", "ScrollValueMax" + }, new Object[] + { + new Boolean(ntotfieldcount > nblockincrement), new Integer(nblockincrement), new Integer(ntotfieldcount - nblockincrement) + }); } - protected int getBlockIncrementation() { + protected int getBlockIncrementation() + { return nblockincrement; } - private void scrollControls() { - try { + private void scrollControls() + { + try + { scrollRowsInfo(); nscrollvalue = ((Integer) Helper.getUnoPropertyValue(UnoDialog.getModel(xScrollBar), "ScrollValue")).intValue(); if (nscrollvalue + nblockincrement >= ntotfieldcount) + { nscrollvalue = (ntotfieldcount) - nblockincrement; + } fillupControls(false); - } catch (java.lang.Exception ex) { + } + catch (java.lang.Exception ex) + { ex.printStackTrace(); } } - protected void scrollRowsInfo() { + protected void scrollRowsInfo() + { int cols = - scrollfields.size() > 0 - ? ((PropertyValue[])scrollfields.get(0)).length - : 0; + scrollfields.size() > 0 + ? ((PropertyValue[]) scrollfields.get(0)).length + : 0; for (int a = 0; a < ncurfieldcount; a++) + { for (int n = 0; n < cols; n++) - fieldInfo(a,n); - + { + fieldInfo(a, n); + } + } } /** @@ -292,74 +399,103 @@ public abstract class ControlScroller { * @return the propertyValue object corresponding to * this control. */ - protected PropertyValue fieldInfo(int guiRow, int column) { - if (guiRow + nscrollvalue < scrollfields.size()) { - PropertyValue pv = fieldInfo ( - ((PropertyValue[]) scrollfields.elementAt(guiRow + nscrollvalue )) [column], - ((PropertyValue[]) scrollfields.elementAt(guiRow)) [column] - - ); - //System.out.println("getting field info for : " + guiRow + "/" + column + ":" + pv.Value + "(" + pv.Name + ")" ); + protected PropertyValue fieldInfo(int guiRow, int column) + { + if (guiRow + nscrollvalue < scrollfields.size()) + { + PropertyValue pv = fieldInfo( + ((PropertyValue[]) scrollfields.elementAt(guiRow + nscrollvalue))[column], + ((PropertyValue[]) scrollfields.elementAt(guiRow))[column]); + //System.out.println("getting field info for : " + guiRow + "/" + column + ":" + pv.Value + "(" + pv.Name + ")" ); return pv; } - else return null; + else + { + return null; + } } - protected PropertyValue fieldInfo(PropertyValue valueProp, PropertyValue nameProp) { + protected PropertyValue fieldInfo(PropertyValue valueProp, PropertyValue nameProp) + { if (CurUnoDialog.xDlgNameAccess.hasByName(nameProp.Name)) + { valueProp.Value = getControlData(nameProp.Name); + } else + { valueProp.Value = nameProp.Value; + } return valueProp; } - protected void unregisterControlGroup(int _index) { + protected void unregisterControlGroup(int _index) + { scrollfields.remove(_index); } - protected void registerControlGroup(PropertyValue[] _currowproperties, int _i) { + protected void registerControlGroup(PropertyValue[] _currowproperties, int _i) + { if (_i == 0) + { scrollfields.removeAllElements(); + } if (_i >= scrollfields.size()) + { scrollfields.addElement(_currowproperties); + } else + { scrollfields.setElementAt(_currowproperties, _i); + } } - protected PropertyValue[] getControlGroupInfo(int _i) { + protected PropertyValue[] getControlGroupInfo(int _i) + { return (PropertyValue[]) scrollfields.elementAt(_i); } - protected void setControlData(String controlname, Object newvalue) { + protected void setControlData(String controlname, Object newvalue) + { Object oControlModel = UnoDialog.getModel(CurUnoDialog.xDlgContainer.getControl(controlname)); String propertyname = UnoDialog.getDisplayProperty(oControlModel); - if (propertyname != "") { + if (propertyname != "") + { CurUnoDialog.setControlProperty(controlname, propertyname, newvalue); } } - protected Object getControlData(String controlname) { + protected Object getControlData(String controlname) + { Object oControlModel = UnoDialog.getModel(CurUnoDialog.xDlgContainer.getControl(controlname)); String propertyname = UnoDialog.getDisplayProperty(oControlModel); if (propertyname != "") + { return CurUnoDialog.getControlProperty(controlname, propertyname); + } else + { return null; + } } - protected PropertyValue[][] getScrollFieldValues() { + protected PropertyValue[][] getScrollFieldValues() + { scrollRowsInfo(); PropertyValue[] curproperties; PropertyValue[][] retproperties; retproperties = new PropertyValue[scrollfields.size()][]; - try { - for (int i = 0; i < scrollfields.size(); i++) { + try + { + for (int i = 0; i < scrollfields.size(); i++) + { curproperties = (PropertyValue[]) scrollfields.elementAt(i); retproperties[i] = curproperties; } return retproperties; - } catch (java.lang.Exception ex) { + } + catch (java.lang.Exception ex) + { ex.printStackTrace(System.out); return null; } @@ -377,6 +513,4 @@ public abstract class ControlScroller { protected abstract void insertControlGroup(int _index, int npos); protected abstract void setControlGroupVisible(int _index, boolean _bIsVisible); - - } |