| /************************************************************** |
| * |
| * 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.form; |
| |
| import com.sun.star.awt.XCheckBox; |
| import com.sun.star.awt.XFixedText; |
| import com.sun.star.awt.XListBox; |
| import com.sun.star.awt.XRadioButton; |
| import com.sun.star.wizards.common.Helper; |
| import com.sun.star.wizards.common.PropertyNames; |
| import com.sun.star.wizards.ui.CommandFieldSelection; |
| import com.sun.star.wizards.ui.UIConsts; |
| import com.sun.star.wizards.ui.UnoDialog; |
| import com.sun.star.wizards.ui.WizardDialog; |
| import com.sun.star.wizards.db.RelationController; |
| |
| /** |
| * @author Administrator |
| * |
| * To change the template for this generated type comment go to |
| * Window>Preferences>Java>Code Generation>Code and Comments |
| */ |
| public class FormConfiguration |
| { |
| |
| WizardDialog CurUnoDialog; |
| short curtabindex; |
| XRadioButton optOnExistingRelation; |
| XCheckBox chkcreateSubForm; |
| XRadioButton optSelectManually; |
| XFixedText lblSubFormDescription; |
| XFixedText lblRelations; |
| XListBox lstRelations; |
| String[] sreferencedTables; |
| // Integer ISubFormStep; |
| CommandFieldSelection CurSubFormFieldSelection; |
| String SSUBFORMMODE = "toggleSubFormMode"; |
| String STOGGLESTEPS = "toggleSteps"; |
| String SONEXISTINGRELATIONSELECTION = "onexistingRelationSelection"; |
| boolean bsupportsRelations; |
| RelationController oRelationController = null; |
| |
| public FormConfiguration(WizardDialog _CurUnoDialog) |
| { |
| this.CurUnoDialog = _CurUnoDialog; |
| curtabindex = (short) (FormWizard.SOSUBFORM_PAGE * 100); |
| Integer ISubFormStep = new Integer(FormWizard.SOSUBFORM_PAGE); |
| String sOnExistingRelation = CurUnoDialog.m_oResource.getResText(UIConsts.RID_FORM + 5); |
| String sOnManualRelation = CurUnoDialog.m_oResource.getResText(UIConsts.RID_FORM + 7); |
| String sSelectManually = CurUnoDialog.m_oResource.getResText(UIConsts.RID_FORM + 4); |
| String sSelectRelation = CurUnoDialog.m_oResource.getResText(UIConsts.RID_FORM + 8); |
| String sSubFormDescription = CurUnoDialog.m_oResource.getResText(UIConsts.RID_FORM + 3); |
| |
| // CheckBox 'Add sub form' |
| chkcreateSubForm = CurUnoDialog.insertCheckBox("chkcreateSubForm", SSUBFORMMODE, this, |
| 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_DLGFORM_CHKCREATESUBFORM", sSelectManually, 97, 26, ISubFormStep, new Short(curtabindex++), 160 |
| }); |
| optOnExistingRelation = CurUnoDialog.insertRadioButton("optOnExistingRelation", STOGGLESTEPS, this, |
| 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, UIConsts.INTEGERS[8], "HID:WIZARDS_HID_DLGFORM_OPTONEXISTINGRELATION", sOnExistingRelation, 107, 43, ISubFormStep, new Short(curtabindex++), 160 |
| }); |
| optSelectManually = CurUnoDialog.insertRadioButton("optSelectManually", STOGGLESTEPS, this, |
| new String[] |
| { |
| PropertyNames.PROPERTY_ENABLED, 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[] |
| { |
| Boolean.FALSE, UIConsts.INTEGERS[8], "HID:WIZARDS_HID_DLGFORM_OPTSELECTMANUALLY", sOnManualRelation, 107, 99, new Short((short) 1), ISubFormStep, new Short(curtabindex++), 160 |
| }); |
| lblRelations = CurUnoDialog.insertLabel("lblSelectRelation", |
| new String[] |
| { |
| PropertyNames.PROPERTY_ENABLED, 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[] |
| { |
| Boolean.FALSE, 19, sSelectRelation, Boolean.TRUE, 119, 56, ISubFormStep, new Short(curtabindex++), 80 |
| }); |
| lstRelations = CurUnoDialog.insertListBox("lstrelations", SONEXISTINGRELATIONSELECTION, SONEXISTINGRELATIONSELECTION, this, |
| new String[] |
| { |
| PropertyNames.PROPERTY_ENABLED, PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_HELPURL, PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_STEP, PropertyNames.PROPERTY_TABINDEX, PropertyNames.PROPERTY_WIDTH |
| }, |
| new Object[] |
| { |
| Boolean.FALSE, 37, "HID:WIZARDS_HID_DLGFORM_lstRELATIONS", 201, 55, ISubFormStep, new Short(curtabindex++), 103 |
| }); |
| lblSubFormDescription = CurUnoDialog.insertLabel("lblSubFormDescription", |
| 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[] |
| { |
| 59, sSubFormDescription, Boolean.TRUE, 110, 120, ISubFormStep, new Short(curtabindex++), 190 |
| }); |
| CurUnoDialog.insertInfoImage(97, 120, ISubFormStep.intValue()); |
| } |
| |
| // public void disableSubFormCheckBox() |
| // { |
| // Helper.setUnoPropertyValue(UnoDialog.getModel(chkcreateSubForm), PropertyNames.PROPERTY_ENABLED, Boolean.FALSE); |
| // } |
| |
| public RelationController getRelationController() |
| { |
| return oRelationController; |
| } |
| |
| public boolean areexistingRelationsdefined() |
| { |
| return ((chkcreateSubForm.getState() == 1) && (optOnExistingRelation.getState())); |
| } |
| |
| public void toggleSubFormMode() |
| { |
| boolean bdoEnable = (this.chkcreateSubForm.getState() == 1); |
| Helper.setUnoPropertyValue(UnoDialog.getModel(optOnExistingRelation), PropertyNames.PROPERTY_ENABLED, Boolean.valueOf(bdoEnable && bsupportsRelations)); |
| Helper.setUnoPropertyValue(UnoDialog.getModel(optSelectManually), PropertyNames.PROPERTY_ENABLED, Boolean.valueOf(bdoEnable)); |
| toggleSteps(); |
| } |
| |
| public void initialize(CommandFieldSelection _CurSubFormFieldSelection, RelationController _oRelationController) |
| { |
| oRelationController = _oRelationController; |
| sreferencedTables = oRelationController.getExportedKeys(); |
| bsupportsRelations = (sreferencedTables.length > 0); |
| Helper.setUnoPropertyValue(UnoDialog.getModel(lstRelations), PropertyNames.STRING_ITEM_LIST, sreferencedTables); |
| this.CurSubFormFieldSelection = _CurSubFormFieldSelection; |
| toggleRelationsListbox(); |
| Helper.setUnoPropertyValue(UnoDialog.getModel(optOnExistingRelation), PropertyNames.PROPERTY_ENABLED, Boolean.valueOf(bsupportsRelations && (chkcreateSubForm.getState() == 1))); |
| } |
| |
| public void toggleSteps() |
| { |
| boolean bDoEnableFollowingSteps; |
| if (chkcreateSubForm.getState() == 1) |
| { |
| if (optOnExistingRelation.getState()) |
| { |
| onexistingRelationSelection(); |
| } |
| else if (optSelectManually.getState()) |
| { |
| CurUnoDialog.enablefromStep(FormWizard.SOFIELDLINKER_PAGE, (CurSubFormFieldSelection.getSelectedFieldNames().length > 0)); |
| CurUnoDialog.setStepEnabled(FormWizard.SOSUBFORMFIELDS_PAGE, true); |
| } |
| } |
| else |
| { |
| CurUnoDialog.setStepEnabled(FormWizard.SOSUBFORMFIELDS_PAGE, false); |
| CurUnoDialog.setStepEnabled(FormWizard.SOFIELDLINKER_PAGE, false); |
| CurUnoDialog.enablefromStep(FormWizard.SOCONTROL_PAGE, true); |
| } |
| toggleRelationsListbox(); |
| } |
| |
| public String getreferencedTableName() |
| { |
| if (areexistingRelationsdefined()) |
| { |
| short[] iselected = (short[]) Helper.getUnoArrayPropertyValue(UnoDialog.getModel(lstRelations), PropertyNames.SELECTED_ITEMS); |
| if (iselected != null) |
| { |
| if (iselected.length > 0) |
| { |
| return sreferencedTables[iselected[0]]; |
| } |
| } |
| } |
| return PropertyNames.EMPTY_STRING; |
| } |
| |
| public void onexistingRelationSelection() |
| { |
| String scurreferencedTableName = getreferencedTableName(); |
| if (scurreferencedTableName.length() > 0) |
| { |
| if (CurSubFormFieldSelection.getSelectedCommandName().equals(scurreferencedTableName)) |
| { |
| CurUnoDialog.enablefromStep(FormWizard.SOSUBFORMFIELDS_PAGE, true); |
| CurUnoDialog.setStepEnabled(FormWizard.SOFIELDLINKER_PAGE, false); |
| return; |
| } |
| else |
| { |
| CurUnoDialog.setStepEnabled(FormWizard.SOSUBFORMFIELDS_PAGE, true); |
| CurUnoDialog.enablefromStep(FormWizard.SOFIELDLINKER_PAGE, false); |
| return; |
| } |
| } |
| CurUnoDialog.enablefromStep(FormWizard.SOSUBFORMFIELDS_PAGE, false); |
| } |
| |
| private void toggleRelationsListbox() |
| { |
| boolean bdoenable = bsupportsRelations && this.optOnExistingRelation.getState() && (chkcreateSubForm.getState() == 1); |
| Helper.setUnoPropertyValue(UnoDialog.getModel(lblRelations), PropertyNames.PROPERTY_ENABLED, Boolean.valueOf(bdoenable)); |
| Helper.setUnoPropertyValue(UnoDialog.getModel(lstRelations), PropertyNames.PROPERTY_ENABLED, Boolean.valueOf(bdoenable)); |
| } |
| |
| public boolean hasSubForm() |
| { |
| return (this.chkcreateSubForm.getState() == 1); |
| } |
| } |