blob: acbfe87fc659c3b70df038f63844ba063f90c8f6 [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
package com.sun.star.wizards.ui;
import com.sun.star.awt.FontDescriptor;
import com.sun.star.awt.XListBox;
import com.sun.star.wizards.common.*;
import com.sun.star.wizards.common.JavaTools;
import java.util.*;
/**
*
* @author bc93774
*/
public class FieldSelection
{
public XListBox xFieldsListBox; // Left ListBox
public XListBox xSelectedFieldsListBox; // right (selected) ListBox
protected UnoDialog CurUnoDialog;
protected String sIncSuffix;
protected int FirstHelpIndex;
protected boolean AppendMode = false;
protected Integer IStep;
protected int CompPosX;
protected int CompPosY;
protected int CompHeight;
protected int CompWidth;
private XFieldSelectionListener xFieldSelection;
private int maxfieldcount = 10000000;
private String[] AllFieldNames;
private Integer ListBoxWidth;
private Integer SelListBoxPosX;
private boolean bisModified = false;
private final static int SOCMDMOVESEL = 1;
private final static int SOCMDMOVEALL = 2;
private final static int SOCMDREMOVESEL = 3;
private final static int SOCMDREMOVEALL = 4;
private final static int SOCMDMOVEUP = 5;
private final static int SOCMDMOVEDOWN = 6;
private final static int SOFLDSLST = 7;
private final static int SOSELFLDSLST = 8;
class ItemListenerImpl implements com.sun.star.awt.XItemListener
{
public void itemStateChanged(com.sun.star.awt.ItemEvent EventObject)
{
// int iPos;
com.sun.star.wizards.common.Helper.setUnoPropertyValue(CurUnoDialog.xDialogModel, PropertyNames.PROPERTY_ENABLED, Boolean.FALSE);
int iKey = CurUnoDialog.getControlKey(EventObject.Source, CurUnoDialog.ControlList);
switch (iKey)
{
case SOFLDSLST:
toggleListboxButtons((short) - 1, (short) - 1);
break;
case SOSELFLDSLST:
toggleListboxButtons((short) - 1, (short) - 1);
break;
default:
break;
}
com.sun.star.wizards.common.Helper.setUnoPropertyValue(CurUnoDialog.xDialogModel, PropertyNames.PROPERTY_ENABLED, Boolean.TRUE);
}
public void disposing(com.sun.star.lang.EventObject eventObject)
{
}
}
class ActionListenerImpl implements com.sun.star.awt.XActionListener
{
public void disposing(com.sun.star.lang.EventObject eventObject)
{
}
public void actionPerformed(com.sun.star.awt.ActionEvent actionEvent)
{
try
{
int iKey = CurUnoDialog.getControlKey(actionEvent.Source, CurUnoDialog.ControlList);
switch (iKey)
{
case SOFLDSLST:
selectFields(false);
break;
case SOSELFLDSLST:
deselectFields(false);
break;
case SOCMDMOVESEL:
selectFields(false);
break;
case SOCMDMOVEALL:
selectFields(true);
break;
case SOCMDREMOVESEL:
deselectFields(false);
break;
case SOCMDREMOVEALL:
deselectFields(true);
break;
case SOCMDMOVEUP:
changeSelectionOrder(-1);
break;
case SOCMDMOVEDOWN:
changeSelectionOrder(1);
break;
default:
// System.err.println( exception);
break;
}
}
catch (Exception exception)
{
exception.printStackTrace(System.out);
}
}
}
public void addFieldSelectionListener(XFieldSelectionListener xFieldSelection)
{
this.xFieldSelection = xFieldSelection;
this.xFieldSelection.setID(sIncSuffix);
}
public void setAppendMode(boolean _AppendMode)
{
AppendMode = _AppendMode;
}
public boolean getAppendMode()
{
return AppendMode;
}
public FieldSelection(UnoDialog CurUnoDialog, int _iStep, int CompPosX, int CompPosY, int CompWidth, int CompHeight, String slblFields, String slblSelFields, int _FirstHelpIndex, boolean bshowFourButtons)
{
try
{
final String AccessTextMoveSelected = CurUnoDialog.m_oResource.getResText(UIConsts.RID_DB_COMMON + 39);
final String AccessTextRemoveSelected = CurUnoDialog.m_oResource.getResText(UIConsts.RID_DB_COMMON + 40);
final String AccessTextMoveAll = CurUnoDialog.m_oResource.getResText(UIConsts.RID_DB_COMMON + 41);
final String AccessTextRemoveAll = CurUnoDialog.m_oResource.getResText(UIConsts.RID_DB_COMMON + 42);
final String AccessMoveFieldUp = CurUnoDialog.m_oResource.getResText(UIConsts.RID_DB_COMMON + 43);
final String AccessMoveFieldDown = CurUnoDialog.m_oResource.getResText(UIConsts.RID_DB_COMMON + 44);
FirstHelpIndex = _FirstHelpIndex;
short curtabindex = UnoDialog.setInitialTabindex(_iStep);
int ShiftButtonCount = 2;
int a = 0;
this.CurUnoDialog = CurUnoDialog;
this.CompPosX = CompPosX;
this.CompPosY = CompPosY;
this.CompHeight = CompHeight;
this.CompWidth = CompWidth;
Object btnmoveall = null;
Object btnremoveall = null;
final int cmdButtonWidth = 16;
final int cmdButtonHoriDist = 4;
final int lblHeight = 8;
final int lblVertiDist = 2;
ListBoxWidth = new Integer(((CompWidth - 3 * cmdButtonHoriDist - 2 * cmdButtonWidth) / 2));
Integer cmdShiftButtonPosX = new Integer((CompPosX + ListBoxWidth.intValue() + cmdButtonHoriDist));
Integer ListBoxPosY = new Integer(CompPosY + lblVertiDist + lblHeight);
Integer ListBoxHeight = new Integer(CompHeight - 8 - 2);
SelListBoxPosX = new Integer(cmdShiftButtonPosX.intValue() + cmdButtonWidth + cmdButtonHoriDist);
IStep = new Integer(_iStep);
if (bshowFourButtons)
{
ShiftButtonCount = 4;
}
Integer[] ShiftButtonPosY = getYButtonPositions(ShiftButtonCount);
Integer[] MoveButtonPosY = getYButtonPositions(2);
Integer cmdMoveButtonPosX = new Integer(SelListBoxPosX.intValue() + ListBoxWidth.intValue() + cmdButtonHoriDist);
Integer CmdButtonWidth = new Integer(cmdButtonWidth);
sIncSuffix = "_" + com.sun.star.wizards.common.Desktop.getIncrementSuffix(CurUnoDialog.getDlgNameAccess(), "lblFields_");
// Label
CurUnoDialog.insertControlModel("com.sun.star.awt.UnoControlFixedTextModel", "lblFields" + sIncSuffix,
new String[]
{
PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_LABEL, PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_STEP, PropertyNames.PROPERTY_TABINDEX, PropertyNames.PROPERTY_WIDTH
},
new Object[]
{
8, slblFields, new Integer(CompPosX), new Integer(CompPosY), IStep, new Short(curtabindex), 109
});
// Listbox 'Available fields'
xFieldsListBox = CurUnoDialog.insertListBox("lstFields" + sIncSuffix, SOFLDSLST, new ActionListenerImpl(), new ItemListenerImpl(),
new String[]
{
PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_HELPURL, "MultiSelection", PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_STEP, PropertyNames.PROPERTY_TABINDEX, PropertyNames.PROPERTY_WIDTH
},
new Object[]
{
ListBoxHeight, HelpIds.getHelpIdString(_FirstHelpIndex), Boolean.TRUE, new Integer(CompPosX), ListBoxPosY, IStep, new Short((curtabindex++)), ListBoxWidth
});
Object btnmoveselected = CurUnoDialog.insertButton("cmdMoveSelected" + sIncSuffix, SOCMDMOVESEL, new ActionListenerImpl(),
new String[]
{
PropertyNames.PROPERTY_ENABLED, PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_HELPURL, PropertyNames.PROPERTY_LABEL, PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_STEP, PropertyNames.PROPERTY_TABINDEX, PropertyNames.PROPERTY_WIDTH
},
new Object[]
{
Boolean.FALSE, 14, HelpIds.getHelpIdString(_FirstHelpIndex + 1), ">", cmdShiftButtonPosX, ShiftButtonPosY[a++], IStep, new Short(curtabindex++), CmdButtonWidth
});
if (bshowFourButtons)
{
btnmoveall = CurUnoDialog.insertButton("cmdMoveAll" + sIncSuffix, SOCMDMOVEALL, new ActionListenerImpl(),
new String[]
{
PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_HELPURL, PropertyNames.PROPERTY_LABEL, PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_STEP, PropertyNames.PROPERTY_TABINDEX, PropertyNames.PROPERTY_WIDTH
},
new Object[]
{
14, HelpIds.getHelpIdString(_FirstHelpIndex + 2), ">>", cmdShiftButtonPosX, ShiftButtonPosY[a++], IStep, new Short(curtabindex++), CmdButtonWidth
});
}
Object btnremoveselected = CurUnoDialog.insertButton("cmdRemoveSelected" + sIncSuffix, SOCMDREMOVESEL, new ActionListenerImpl(),
new String[]
{
PropertyNames.PROPERTY_ENABLED, PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_HELPURL, PropertyNames.PROPERTY_LABEL, PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_STEP, PropertyNames.PROPERTY_TABINDEX, PropertyNames.PROPERTY_WIDTH
},
new Object[]
{
Boolean.FALSE, 14, HelpIds.getHelpIdString(_FirstHelpIndex + 3), "<", cmdShiftButtonPosX, ShiftButtonPosY[a++], IStep, new Short(curtabindex++), CmdButtonWidth
});
if (bshowFourButtons)
{
btnremoveall = CurUnoDialog.insertButton("cmdRemoveAll" + sIncSuffix, SOCMDREMOVEALL, new ActionListenerImpl(),
new String[]
{
PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_HELPURL, PropertyNames.PROPERTY_LABEL, PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_STEP, PropertyNames.PROPERTY_TABINDEX, PropertyNames.PROPERTY_WIDTH
},
new Object[]
{
14, HelpIds.getHelpIdString(_FirstHelpIndex + 4), "<<", cmdShiftButtonPosX, ShiftButtonPosY[a++], IStep, new Short(curtabindex++), CmdButtonWidth
});
}
FontDescriptor oFontDesc = new FontDescriptor();
oFontDesc.Name = "StarSymbol";
// Label 'Fields in the form'
CurUnoDialog.insertControlModel("com.sun.star.awt.UnoControlFixedTextModel", "lblSelFields" + sIncSuffix,
new String[]
{
PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_LABEL, PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_STEP, PropertyNames.PROPERTY_TABINDEX, PropertyNames.PROPERTY_WIDTH
},
new Object[]
{
8, slblSelFields, SelListBoxPosX, new Integer(CompPosY), IStep, new Short(curtabindex++), ListBoxWidth
});
// ListBox 'Fields in the form'
xSelectedFieldsListBox = CurUnoDialog.insertListBox("lstSelFields" + sIncSuffix, SOSELFLDSLST, new ActionListenerImpl(), new ItemListenerImpl(),
new String[]
{
PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_HELPURL, "MultiSelection", PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_STEP, PropertyNames.PROPERTY_TABINDEX, PropertyNames.PROPERTY_WIDTH
},
new Object[]
{
ListBoxHeight, HelpIds.getHelpIdString(_FirstHelpIndex + 5), Boolean.TRUE, SelListBoxPosX, ListBoxPosY, IStep, new Short(curtabindex++), ListBoxWidth
});
Object btnmoveup = CurUnoDialog.insertButton("cmdMoveUp" + sIncSuffix, SOCMDMOVEUP, new ActionListenerImpl(),
new String[]
{
PropertyNames.PROPERTY_ENABLED, PropertyNames.FONT_DESCRIPTOR, PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_HELPURL, PropertyNames.PROPERTY_LABEL, PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_STEP, PropertyNames.PROPERTY_TABINDEX, PropertyNames.PROPERTY_WIDTH
},
new Object[]
{
Boolean.FALSE, oFontDesc, 14, HelpIds.getHelpIdString(_FirstHelpIndex + 6), String.valueOf((char) 8743), cmdMoveButtonPosX, MoveButtonPosY[0], IStep, new Short(curtabindex++), CmdButtonWidth
});
Object btnmovedown = CurUnoDialog.insertButton("cmdMoveDown" + sIncSuffix, SOCMDMOVEDOWN, new ActionListenerImpl(),
new String[]
{
PropertyNames.PROPERTY_ENABLED, PropertyNames.FONT_DESCRIPTOR, PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_HELPURL, PropertyNames.PROPERTY_LABEL, PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_STEP, PropertyNames.PROPERTY_TABINDEX, PropertyNames.PROPERTY_WIDTH
},
new Object[]
{
Boolean.FALSE, oFontDesc, 14, HelpIds.getHelpIdString(_FirstHelpIndex + 7), String.valueOf((char) 8744), cmdMoveButtonPosX, MoveButtonPosY[1], IStep, new Short(curtabindex++), CmdButtonWidth
});
CurUnoDialog.getPeerConfiguration().setAccessibleName(btnmoveselected, AccessTextMoveSelected);
CurUnoDialog.getPeerConfiguration().setAccessibleName(btnremoveselected, AccessTextRemoveSelected);
CurUnoDialog.getPeerConfiguration().setAccessibleName(xFieldsListBox, JavaTools.replaceSubString(slblFields, PropertyNames.EMPTY_STRING, "~"));
CurUnoDialog.getPeerConfiguration().setAccessibleName(xSelectedFieldsListBox, JavaTools.replaceSubString(slblSelFields, PropertyNames.EMPTY_STRING, "~"));
if (btnmoveall != null)
{
CurUnoDialog.getPeerConfiguration().setAccessibleName(btnmoveall, AccessTextMoveAll);
}
if (btnremoveall != null)
{
CurUnoDialog.getPeerConfiguration().setAccessibleName(btnremoveall, AccessTextRemoveAll);
}
if (btnmoveup != null)
{
CurUnoDialog.getPeerConfiguration().setAccessibleName(btnmoveup, AccessMoveFieldUp);
}
if (btnmovedown != null)
{
CurUnoDialog.getPeerConfiguration().setAccessibleName(btnmovedown, AccessMoveFieldDown);
}
}
catch (Exception exception)
{
exception.printStackTrace(System.out);
}
}
// Todo: If Value is getting smaller than zero -> throw exception
private Integer[] getYButtonPositions(int ButtonCount)
{
Integer[] YPosArray;
if (ButtonCount > 0)
{
YPosArray = new Integer[ButtonCount];
final int cmdButtonHeight = 14;
final int cmdButtonVertiDist = 2;
YPosArray[0] = new Integer( (CompPosY + 10 + (((CompHeight - 10) - (ButtonCount * cmdButtonHeight) - ((ButtonCount - 1) * cmdButtonVertiDist)) / 2)));
if (ButtonCount > 1)
{
for (int i = 1; i < ButtonCount; i++)
{
YPosArray[i] = new Integer(YPosArray[i - 1].intValue() + cmdButtonHeight + cmdButtonVertiDist);
}
}
return YPosArray;
}
return null;
}
public Integer getListboxWidth()
{
return this.ListBoxWidth;
}
private void changeSelectionOrder(int iNeighbor)
{
short[] iSelIndices = xSelectedFieldsListBox.getSelectedItemsPos();
// Todo: we are assuming that the array starts with the lowest index. Verfy this assumption!!!!!
if (iSelIndices.length == 1)
{
short iSelIndex = iSelIndices[0];
String[] NewItemList = xSelectedFieldsListBox.getItems();
String CurItem = NewItemList[iSelIndex];
String NeighborItem = NewItemList[iSelIndex + iNeighbor];
NewItemList[iSelIndex + iNeighbor] = CurItem;
NewItemList[iSelIndex] = NeighborItem;
CurUnoDialog.setControlProperty("lstSelFields" + sIncSuffix, PropertyNames.STRING_ITEM_LIST, NewItemList);
xSelectedFieldsListBox.selectItem(CurItem, true);
if (xFieldSelection != null)
{
if (iNeighbor < 0)
{
xFieldSelection.moveItemUp(CurItem);
}
else
{
xFieldSelection.moveItemDown(CurItem);
}
}
}
}
public void toggleListboxControls(Boolean BDoEnable)
{
try
{
CurUnoDialog.setControlProperty("lblFields" + sIncSuffix, PropertyNames.PROPERTY_ENABLED, BDoEnable);
CurUnoDialog.setControlProperty("lblSelFields" + sIncSuffix, PropertyNames.PROPERTY_ENABLED, BDoEnable);
CurUnoDialog.setControlProperty("lstFields" + sIncSuffix, PropertyNames.PROPERTY_ENABLED, BDoEnable);
CurUnoDialog.setControlProperty("lstSelFields" + sIncSuffix, PropertyNames.PROPERTY_ENABLED, BDoEnable);
if (BDoEnable.booleanValue())
{
toggleListboxButtons((short) - 1, (short) - 1);
}
else
{
CurUnoDialog.setControlProperty("cmdRemoveAll" + sIncSuffix, PropertyNames.PROPERTY_ENABLED, BDoEnable);
CurUnoDialog.setControlProperty("cmdRemoveSelected" + sIncSuffix, PropertyNames.PROPERTY_ENABLED, BDoEnable);
toggleMoveButtons(BDoEnable.booleanValue(), BDoEnable.booleanValue());
}
}
catch (Exception exception)
{
exception.printStackTrace(System.out);
}
}
// Enable or disable the buttons used for moving the available
// fields between the two list boxes.
protected void toggleListboxButtons(short iFieldsSelIndex, short iSelFieldsSelIndex)
{
try
{
boolean bmoveUpenabled = false;
boolean bmoveDownenabled = false;
CurUnoDialog.selectListBoxItem(xFieldsListBox, iFieldsSelIndex);
CurUnoDialog.selectListBoxItem(xSelectedFieldsListBox, iSelFieldsSelIndex);
int SelListBoxSelLength = xSelectedFieldsListBox.getSelectedItems().length;
int ListBoxSelLength = xFieldsListBox.getSelectedItems().length;
boolean bIsFieldSelected = (ListBoxSelLength > 0);
int FieldCount = xFieldsListBox.getItemCount();
boolean bSelectSelected = (SelListBoxSelLength > 0);
int SelectCount = xSelectedFieldsListBox.getItemCount();
if (bSelectSelected)
{
short[] iSelIndices = xSelectedFieldsListBox.getSelectedItemsPos();
bmoveUpenabled = ((iSelIndices[0] > 0) && (iSelIndices.length == 1));
bmoveDownenabled = (((iSelIndices[SelListBoxSelLength - 1]) < (short) (SelectCount - 1)) && (iSelIndices.length == 1));
}
CurUnoDialog.setControlProperty("cmdRemoveAll" + sIncSuffix, PropertyNames.PROPERTY_ENABLED, Boolean.valueOf(SelectCount >= 1));
CurUnoDialog.setControlProperty("cmdRemoveSelected" + sIncSuffix, PropertyNames.PROPERTY_ENABLED, Boolean.valueOf(bSelectSelected));
toggleMoveButtons((FieldCount >= 1), bIsFieldSelected);
CurUnoDialog.setControlProperty("cmdMoveUp" + sIncSuffix, PropertyNames.PROPERTY_ENABLED, Boolean.valueOf(bmoveUpenabled));
CurUnoDialog.setControlProperty("cmdMoveDown" + sIncSuffix, PropertyNames.PROPERTY_ENABLED, Boolean.valueOf(bmoveDownenabled));
}
catch (Exception exception)
{
exception.printStackTrace(System.out);
}
}
protected void toggleMoveButtons(boolean _btoggleMoveAll, boolean _btoggleMoveSelected)
{
boolean btoggleMoveAll = (((xFieldsListBox.getItemCount() + xSelectedFieldsListBox.getItemCount()) < maxfieldcount) && (_btoggleMoveAll));
boolean btoggleMoveSelected = (((xFieldsListBox.getSelectedItems().length + xSelectedFieldsListBox.getItemCount()) < maxfieldcount) && (_btoggleMoveSelected));
CurUnoDialog.setControlProperty("cmdMoveAll" + sIncSuffix, PropertyNames.PROPERTY_ENABLED, Boolean.valueOf(btoggleMoveAll));
CurUnoDialog.setControlProperty("cmdMoveSelected" + sIncSuffix, PropertyNames.PROPERTY_ENABLED, Boolean.valueOf(btoggleMoveSelected));
}
public void setMultipleMode(boolean _bisMultiple)
{
xFieldsListBox.setMultipleMode(_bisMultiple);
xSelectedFieldsListBox.setMultipleMode(_bisMultiple);
}
public void emptyFieldsListBoxes()
{
try
{
toggleListboxControls(Boolean.FALSE);
CurUnoDialog.setControlProperty("lstSelFields" + sIncSuffix, PropertyNames.STRING_ITEM_LIST, new String[]
{
});
CurUnoDialog.setControlProperty("lstFields" + sIncSuffix, PropertyNames.STRING_ITEM_LIST, new String[]
{
});
}
catch (Exception exception)
{
exception.printStackTrace(System.out);
}
}
public void mergeList(String[] AllFieldNames, String[] SecondList)
{
// int MaxIndex = SecondList.length;
xFieldsListBox.addItems(AllFieldNames, (short) 0);
toggleListboxButtons((short) - 1, (short) - 1);
}
public void intializeSelectedFields(String[] _SelectedFieldNames)
{
xSelectedFieldsListBox.addItems(_SelectedFieldNames, xSelectedFieldsListBox.getItemCount());
}
private void removeAllItems(XListBox _xListBox)
{
_xListBox.removeItems((short) 0, _xListBox.getItemCount());
}
// Note Boolean Parameter
public void initialize(String[] _AllFieldNames, boolean _AppendMode)
{
AppendMode = _AppendMode;
removeAllItems(xFieldsListBox);
xFieldsListBox.addItems(_AllFieldNames, (short) 0);
AllFieldNames = xFieldsListBox.getItems();
if ((xSelectedFieldsListBox.getItemCount() > 0) && (!AppendMode))
{
removeAllItems(xSelectedFieldsListBox);
}
toggleListboxControls(Boolean.TRUE);
}
public void initialize(String[][] _AllFieldNamesTable, boolean _AppendMode, int _maxfieldcount)
{
String[] AllFieldNames_ = new String[_AllFieldNamesTable.length];
for (int i = 0; i < _AllFieldNamesTable.length; i++)
{
AllFieldNames_[i] = _AllFieldNamesTable[i][0];
}
initialize(AllFieldNames_, _AppendMode, _maxfieldcount);
}
public void initialize(String[] _AllFieldNames, boolean _AppendMode, int _maxfieldcount)
{
maxfieldcount = _maxfieldcount;
initialize(_AllFieldNames, _AppendMode);
}
public void initialize(String[] _AllFieldNames, String[] _SelFieldNames, boolean _AppendMode)
{
removeAllItems(xSelectedFieldsListBox);
xSelectedFieldsListBox.addItems(_SelFieldNames, (short) 0);
initialize(_AllFieldNames, _AppendMode);
}
public void selectFields(boolean bMoveAll)
{
// int CurIndex;
short iFieldSelected = (short) - 1;
short iSelFieldSelected = (short) - 1;
// int MaxCurTarget = xSelectedFieldsListBox.getItemCount();
String[] SelFieldItems;
if (bMoveAll)
{
SelFieldItems = xFieldsListBox.getItems();
removeAllItems(xFieldsListBox);
if (!AppendMode)
{
removeAllItems(xSelectedFieldsListBox);
xSelectedFieldsListBox.addItems(AllFieldNames, (short) 0);
}
else
{
xSelectedFieldsListBox.addItems(SelFieldItems, xSelectedFieldsListBox.getItemCount());
}
}
else
{
SelFieldItems = xFieldsListBox.getSelectedItems();
int MaxSourceSelected = SelFieldItems.length;
if (MaxSourceSelected > 0)
{
iFieldSelected = xFieldsListBox.getSelectedItemPos();
iSelFieldSelected = xSelectedFieldsListBox.getSelectedItemPos();
short[] SourceSelList = new short[xFieldsListBox.getSelectedItemsPos().length];
SourceSelList = xFieldsListBox.getSelectedItemsPos();
xSelectedFieldsListBox.addItems(SelFieldItems, xSelectedFieldsListBox.getItemCount());
CurUnoDialog.removeSelectedItems(xFieldsListBox);
xSelectedFieldsListBox.selectItemPos((short) 0, xSelectedFieldsListBox.getSelectedItems().length > 0);
}
}
toggleListboxButtons(iFieldSelected, iSelFieldSelected);
if (xFieldSelection != null)
{
xFieldSelection.shiftFromLeftToRight(SelFieldItems, xSelectedFieldsListBox.getItems());
}
}
public void deselectFields(boolean bMoveAll)
{
// int m = 0;
String SearchString;
short iOldFieldSelected = xFieldsListBox.getSelectedItemPos();
short iOldSelFieldSelected = xSelectedFieldsListBox.getSelectedItemPos();
String[] OldSelFieldItems = xSelectedFieldsListBox.getSelectedItems();
if (bMoveAll)
{
OldSelFieldItems = xSelectedFieldsListBox.getItems();
removeAllItems(xFieldsListBox);
xFieldsListBox.addItems(AllFieldNames, (short) 0);
removeAllItems(xSelectedFieldsListBox);
}
else
{
int MaxOriginalCount = AllFieldNames.length;
// int MaxSelected = OldSelFieldItems.length;
String[] SelList = xFieldsListBox.getItems();
Vector<String> NewSourceVector = new Vector<String>();
for (int i = 0; i < MaxOriginalCount; i++)
{
SearchString = AllFieldNames[i];
if (JavaTools.FieldInList(SelList, SearchString) != -1)
{
NewSourceVector.addElement(SearchString);
}
else if (JavaTools.FieldInList(OldSelFieldItems, SearchString) != -1)
{
NewSourceVector.addElement(SearchString);
}
}
xFieldsListBox.removeItems((short) 0, xFieldsListBox.getItemCount());
if (NewSourceVector.size() > 0)
{
String[] NewSourceList = new String[NewSourceVector.size()];
NewSourceVector.toArray(NewSourceList);
xFieldsListBox.addItems(NewSourceList, (short) 0);
}
CurUnoDialog.removeSelectedItems(xSelectedFieldsListBox);
}
toggleListboxButtons(iOldFieldSelected, iOldSelFieldSelected);
String[] NewSelFieldItems = xSelectedFieldsListBox.getItems();
if (xFieldSelection != null)
{
xFieldSelection.shiftFromRightToLeft(OldSelFieldItems, NewSelFieldItems);
}
}
public void addItemsToFieldsListbox(String[] _sItems)
{
String[] sOldList = xFieldsListBox.getItems();
for (int i = 0; i < _sItems.length; i++)
{
if (JavaTools.FieldInList(sOldList, _sItems[i]) < 0)
{
xFieldsListBox.addItem(_sItems[i], xFieldsListBox.getItemCount());
}
}
}
public String[] getSelectedFieldNames()
{
return (String[]) CurUnoDialog.getControlProperty("lstSelFields" + sIncSuffix, PropertyNames.STRING_ITEM_LIST);
}
public void setSelectedFieldNames(String[] _sfieldnames)
{
CurUnoDialog.setControlProperty("lstSelFields" + sIncSuffix, PropertyNames.STRING_ITEM_LIST, _sfieldnames);
String[] sleftboxfieldnames = JavaTools.removefromList(xFieldsListBox.getItems(), _sfieldnames);
CurUnoDialog.setControlProperty("lstFields" + sIncSuffix, PropertyNames.STRING_ITEM_LIST, sleftboxfieldnames);
}
public void setModified(boolean _bModified)
{
bisModified = _bModified;
}
public boolean isModified()
{
return bisModified;
}
public void changeSelectedFieldNames(String[] _sfieldnames)
{
CurUnoDialog.setControlProperty("lstSelFields" + sIncSuffix, PropertyNames.STRING_ITEM_LIST, _sfieldnames);
}
}