blob: c8f0cd342d716d20d82b0af7e1acf8a4d621f81d [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.table;
import com.sun.star.awt.XListBox;
import com.sun.star.awt.XRadioButton;
import com.sun.star.awt.XTextComponent;
import com.sun.star.sdbc.SQLException;
import com.sun.star.wizards.common.Desktop;
import com.sun.star.wizards.common.JavaTools;
import com.sun.star.wizards.common.PropertyNames;
import com.sun.star.wizards.db.TableDescriptor;
import com.sun.star.wizards.ui.*;
public class Finalizer
{
TableWizard CurUnoDialog;
short curtabindex;
XRadioButton optModifyTable;
XRadioButton optWorkWithTable;
XRadioButton optStartFormWizard;
XTextComponent txtTableName;
XListBox xCatalogListBox;
XListBox xSchemaListBox;
TableDescriptor curtabledescriptor;
public String SETCOMPLETIONFLAG = "setCompletionFlag";
public static int WORKWITHTABLEMODE = 0;
public static int MODIFYTABLEMODE = 1;
public static int STARTFORMWIZARDMODE = 2;
public Finalizer(TableWizard _CurUnoDialog, TableDescriptor _curtabledescriptor)
{
try
{
this.CurUnoDialog = _CurUnoDialog;
this.curtabledescriptor = _curtabledescriptor;
curtabindex = (short) (TableWizard.SOFINALPAGE * 100);
Integer IFINALSTEP = new Integer(TableWizard.SOFINALPAGE);
String slblTableName = CurUnoDialog.m_oResource.getResText(UIConsts.RID_TABLE + 34);
String slblProceed = CurUnoDialog.m_oResource.getResText(UIConsts.RID_TABLE + 36);
String sWorkWithTable = CurUnoDialog.m_oResource.getResText(UIConsts.RID_TABLE + 38);
String sStartFormWizard = CurUnoDialog.m_oResource.getResText(UIConsts.RID_TABLE + 39);
String sModifyTable = CurUnoDialog.m_oResource.getResText(UIConsts.RID_TABLE + 37);
String sCongratulations = CurUnoDialog.m_oResource.getResText(UIConsts.RID_TABLE + 35);
String slblCatalog = CurUnoDialog.m_oResource.getResText(UIConsts.RID_TABLE + 49);
String slblSchema = CurUnoDialog.m_oResource.getResText(UIConsts.RID_TABLE + 50);
String[] sCatalogNames = curtabledescriptor.getCatalogNames();
String[] sSchemaNames = curtabledescriptor.getSchemaNames();
int nListBoxPosX = 97;
int ndiffPosY = 0;
boolean bsupportsSchemata = false;
boolean bsupportsCatalogs = false;
CurUnoDialog.insertLabel("lblTableName",
new String[]
{
PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_LABEL, PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_STEP, PropertyNames.PROPERTY_WIDTH
},
new Object[]
{
UIConsts.INTEGERS[8], slblTableName, 97, 25, IFINALSTEP, 220
});
txtTableName = CurUnoDialog.insertTextField("txtTableName", SETCOMPLETIONFLAG, this,
new String[]
{
PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_HELPURL, PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_STEP, PropertyNames.PROPERTY_TABINDEX, "Text", PropertyNames.PROPERTY_WIDTH
},
new Object[]
{
UIConsts.INTEGER_12, "HID:WIZARDS_HID_DLGTABLE_TXT_NAME", 97, 35, IFINALSTEP, new Short(curtabindex++), PropertyNames.EMPTY_STRING, 223
});
txtTableName.addTextListener(CurUnoDialog);
txtTableName.setMaxTextLen((short) this.curtabledescriptor.getMaxTableNameLength());
if (this.curtabledescriptor.xDBMetaData.supportsCatalogsInTableDefinitions())
{
if (sCatalogNames != null)
{
if (sCatalogNames.length > 0)
{
bsupportsCatalogs = true;
String sCatalog = PropertyNames.EMPTY_STRING;
try
{
sCatalog = curtabledescriptor.DBConnection.getCatalog();
}
catch (SQLException e1)
{
e1.printStackTrace(System.out);
}
CurUnoDialog.insertLabel("lblCatalog",
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, slblCatalog, new Integer(nListBoxPosX), 52, IFINALSTEP, new Short(curtabindex++), 120
});
try
{
xCatalogListBox = CurUnoDialog.insertListBox("lstCatalog", null, null,
new String[]
{
"Dropdown", PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_HELPURL, "LineCount", PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_STEP, PropertyNames.STRING_ITEM_LIST, PropertyNames.PROPERTY_TABINDEX, PropertyNames.PROPERTY_WIDTH
},
new Object[]
{
Boolean.TRUE, 12, "HID:WIZARDS_HID_DLGTABLE_LST_CATALOG", new Short(UnoDialog.getListBoxLineCount()), new Integer(nListBoxPosX), 62, IFINALSTEP, sCatalogNames, new Short(curtabindex++), 80
});
int isel = JavaTools.FieldInList(sCatalogNames, sCatalog);
if (isel < 0)
{
isel = 0;
}
CurUnoDialog.setControlProperty("lstCatalog", PropertyNames.SELECTED_ITEMS, new short[]
{
(short) isel
});
}
catch (Exception e)
{
e.printStackTrace(System.out);
}
nListBoxPosX = 200;
}
}
}
if (this.curtabledescriptor.xDBMetaData.supportsSchemasInTableDefinitions())
{
if (sSchemaNames != null)
{
if (sSchemaNames.length > 0)
{
bsupportsSchemata = true;
String sSchema = PropertyNames.EMPTY_STRING;
try
{
sSchema = (String) curtabledescriptor.getDataSourcePropertySet().getPropertyValue("User");
}
catch (Exception e1)
{
e1.printStackTrace(System.out);
}
CurUnoDialog.insertLabel("lblSchema",
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, slblSchema, new Integer(nListBoxPosX), 52, IFINALSTEP, new Short(curtabindex++), 80
});
try
{
xSchemaListBox = CurUnoDialog.insertListBox("lstSchema", null, null,
new String[]
{
"Dropdown", PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_HELPURL, "LineCount", PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_STEP, PropertyNames.STRING_ITEM_LIST, PropertyNames.PROPERTY_TABINDEX, PropertyNames.PROPERTY_WIDTH
},
new Object[]
{
Boolean.TRUE, 12, "HID:WIZARDS_HID_DLGTABLE_LST_SCHEMA", new Short(UnoDialog.getListBoxLineCount()), new Integer(nListBoxPosX), 62, IFINALSTEP, sSchemaNames, new Short(curtabindex++), 80
});
int isel = JavaTools.FieldInList(sSchemaNames, sSchema);
if (isel < 0)
{
isel = 0;
}
CurUnoDialog.setControlProperty("lstSchema", PropertyNames.SELECTED_ITEMS, new short[]
{
(short) isel
});
}
catch (Exception e)
{
e.printStackTrace(System.out);
}
}
}
}
if ((!bsupportsCatalogs) && (!bsupportsSchemata))
{
CurUnoDialog.insertLabel("lblcongratulations",
new String[]
{
PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_LABEL, PropertyNames.PROPERTY_MULTILINE, PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_STEP, PropertyNames.PROPERTY_TABINDEX, PropertyNames.PROPERTY_WIDTH
},
new Object[]
{
16, sCongratulations, Boolean.TRUE, 97, 62, IFINALSTEP, new Short(curtabindex++), 226
});
}
else
{
ndiffPosY = 10;
}
CurUnoDialog.insertLabel("lblProceed",
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[]
{
UIConsts.INTEGERS[8], slblProceed, 97, new Integer(82 + ndiffPosY), IFINALSTEP, new Short(curtabindex++), 227
});
optWorkWithTable = CurUnoDialog.insertRadioButton("optWorkWithTable", null,
new String[]
{
PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_HELPURL, PropertyNames.PROPERTY_LABEL, PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_STATE, PropertyNames.PROPERTY_STEP, PropertyNames.PROPERTY_TABINDEX, PropertyNames.PROPERTY_WIDTH
},
new Object[]
{
UIConsts.INTEGERS[8], "HID:WIZARDS_HID_DLGTABLE_OPT_WORKWITHTABLE", sWorkWithTable, 101, new Integer(97 + ndiffPosY), new Short((short) 1), IFINALSTEP, new Short(curtabindex++), 177
});
optModifyTable = CurUnoDialog.insertRadioButton("optModifyTable", null,
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[]
{
UIConsts.INTEGERS[8], "HID:WIZARDS_HID_DLGTABLE_OPT_MODIFYTABLE", sModifyTable, 101, new Integer(109 + ndiffPosY), IFINALSTEP, new Short(curtabindex++), 177
});
optStartFormWizard = CurUnoDialog.insertRadioButton("optStartFormWizard", null,
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[]
{
UIConsts.INTEGERS[8], "HID:WIZARDS_HID_DLGTABLE_OPT_STARTFORMWIZARD", sStartFormWizard, 101, new Integer(121 + ndiffPosY), IFINALSTEP, new Short(curtabindex++), 177
});
}
catch (SQLException e)
{
e.printStackTrace(System.out);
}
}
public void initialize(String _firsttablename)
{
setTableName(_firsttablename);
}
public int finish()
{
if (optWorkWithTable.getState())
{
return WORKWITHTABLEMODE;
}
else if (optModifyTable.getState())
{
return MODIFYTABLEMODE;
}
else
{
return STARTFORMWIZARDMODE;
}
}
public String getComposedTableName(String _stablename)
{
String scatalogname = null;
String sschemaname = null;
if (xCatalogListBox != null)
{
scatalogname = xCatalogListBox.getSelectedItem();
}
if (xSchemaListBox != null)
{
sschemaname = xSchemaListBox.getSelectedItem();
}
return curtabledescriptor.getComposedTableName(scatalogname, sschemaname, _stablename);
}
public void setTableName(String _tablename)
{
if (txtTableName.getText().equals(PropertyNames.EMPTY_STRING))
{
String ssuffix = Desktop.getIncrementSuffix(curtabledescriptor.getTableNamesAsNameAccess(), getComposedTableName(_tablename));
txtTableName.setText(_tablename + ssuffix);
setCompletionFlag();
}
}
public String getTableName()
{
return txtTableName.getText();
}
public String getTableName(String _firsttablename)
{
if (txtTableName.getText().equals(PropertyNames.EMPTY_STRING))
{
setTableName(_firsttablename);
}
return txtTableName.getText();
}
public String getSchemaName()
{
if (xSchemaListBox != null)
{
return this.xSchemaListBox.getSelectedItem();
}
else
{
return PropertyNames.EMPTY_STRING;
}
}
public String getCatalogName()
{
if (xCatalogListBox != null)
{
return this.xCatalogListBox.getSelectedItem();
}
else
{
return PropertyNames.EMPTY_STRING;
}
}
public boolean iscompleted()
{
return (txtTableName.getText().length() > 0);
}
public void setCompletionFlag()
{
CurUnoDialog.setcompleted(TableWizard.SOFINALPAGE, iscompleted());
}
public void setFocusToTableNameControl()
{
CurUnoDialog.setFocus("txtTableName");
}
}