summaryrefslogtreecommitdiff
path: root/extensions/source/dbpilots/groupboxwiz.cxx
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2012-01-28 20:52:45 +0100
committerMichael Stahl <mstahl@redhat.com>2012-01-28 20:52:45 +0100
commit2e626373db2412ac22e8c5c27a60d11cd29e875b (patch)
tree9e9f67205cd5b72f1031721273e1534a3a1e5b0f /extensions/source/dbpilots/groupboxwiz.cxx
parentf7ee7bbd5174b084f018c2ec94d8c70c98ee04da (diff)
replace obsolete "master" branch with README that points at new repoHEADmaster-deletedmaster
Diffstat (limited to 'extensions/source/dbpilots/groupboxwiz.cxx')
-rw-r--r--extensions/source/dbpilots/groupboxwiz.cxx565
1 files changed, 0 insertions, 565 deletions
diff --git a/extensions/source/dbpilots/groupboxwiz.cxx b/extensions/source/dbpilots/groupboxwiz.cxx
deleted file mode 100644
index b3bb8852c..000000000
--- a/extensions/source/dbpilots/groupboxwiz.cxx
+++ /dev/null
@@ -1,565 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_extensions.hxx"
-#include "groupboxwiz.hxx"
-#include "commonpagesdbp.hxx"
-#include <tools/debug.hxx>
-#include <vcl/svapp.hxx>
-#include <vcl/msgbox.hxx>
-#include "optiongrouplayouter.hxx"
-#include "dbpilots.hrc"
-
-
-//#define GBW_STATE_DATASELECTION 0
-#define GBW_STATE_OPTIONLIST 0
-#define GBW_STATE_DEFAULTOPTION 1
-#define GBW_STATE_OPTIONVALUES 2
-#define GBW_STATE_DBFIELD 3
-#define GBW_STATE_FINALIZE 4
-
-//.........................................................................
-namespace dbp
-{
-//.........................................................................
-
- using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::lang;
- using namespace ::com::sun::star::beans;
- using namespace ::com::sun::star::form;
- using namespace ::svt;
-
- //=====================================================================
- //= OGroupBoxWizard
- //=====================================================================
- //---------------------------------------------------------------------
- OGroupBoxWizard::OGroupBoxWizard( Window* _pParent,
- const Reference< XPropertySet >& _rxObjectModel, const Reference< XMultiServiceFactory >& _rxORB )
- :OControlWizard(_pParent, ModuleRes(RID_DLG_GROUPBOXWIZARD), _rxObjectModel, _rxORB)
- ,m_bVisitedDefault(sal_False)
- ,m_bVisitedDB(sal_False)
- {
- initControlSettings(&m_aSettings);
-
- m_pPrevPage->SetHelpId(HID_GROUPWIZARD_PREVIOUS);
- m_pNextPage->SetHelpId(HID_GROUPWIZARD_NEXT);
- m_pCancel->SetHelpId(HID_GROUPWIZARD_CANCEL);
- m_pFinish->SetHelpId(HID_GROUPWIZARD_FINISH);
- }
-
- //---------------------------------------------------------------------
- sal_Bool OGroupBoxWizard::approveControl(sal_Int16 _nClassId)
- {
- return FormComponentType::GROUPBOX == _nClassId;
- }
-
- //---------------------------------------------------------------------
- OWizardPage* OGroupBoxWizard::createPage(::svt::WizardTypes::WizardState _nState)
- {
- switch (_nState)
- {
- case GBW_STATE_OPTIONLIST:
- return new ORadioSelectionPage(this);
-
- case GBW_STATE_DEFAULTOPTION:
- return new ODefaultFieldSelectionPage(this);
-
- case GBW_STATE_OPTIONVALUES:
- return new OOptionValuesPage(this);
-
- case GBW_STATE_DBFIELD:
- return new OOptionDBFieldPage(this);
-
- case GBW_STATE_FINALIZE:
- return new OFinalizeGBWPage(this);
- }
-
- return NULL;
- }
-
- //---------------------------------------------------------------------
- WizardTypes::WizardState OGroupBoxWizard::determineNextState( ::svt::WizardTypes::WizardState _nCurrentState ) const
- {
- switch (_nCurrentState)
- {
- case GBW_STATE_OPTIONLIST:
- return GBW_STATE_DEFAULTOPTION;
-
- case GBW_STATE_DEFAULTOPTION:
- return GBW_STATE_OPTIONVALUES;
-
- case GBW_STATE_OPTIONVALUES:
- if (getContext().aFieldNames.getLength())
- return GBW_STATE_DBFIELD;
- else
- return GBW_STATE_FINALIZE;
-
- case GBW_STATE_DBFIELD:
- return GBW_STATE_FINALIZE;
- }
-
- return WZS_INVALID_STATE;
- }
-
- //---------------------------------------------------------------------
- void OGroupBoxWizard::enterState(::svt::WizardTypes::WizardState _nState)
- {
- // some stuff to do before calling the base class (modifying our settings)
- switch (_nState)
- {
- case GBW_STATE_DEFAULTOPTION:
- if (!m_bVisitedDefault)
- { // assume that the first of the radio buttons should be selected
- DBG_ASSERT(m_aSettings.aLabels.size(), "OGroupBoxWizard::enterState: should never have reached this state!");
- m_aSettings.sDefaultField = m_aSettings.aLabels[0];
- }
- m_bVisitedDefault = sal_True;
- break;
-
- case GBW_STATE_DBFIELD:
- if (!m_bVisitedDB)
- { // try to generate a default for the DB field
- // (simply use the first field in the DB names collection)
- if (getContext().aFieldNames.getLength())
- m_aSettings.sDBField = getContext().aFieldNames[0];
- }
- m_bVisitedDB = sal_True;
- break;
- }
-
- // setting the def button .... to be done before the base class is called, too, 'cause the base class
- // calls the pages, which are allowed to override our def button behaviour
- defaultButton(GBW_STATE_FINALIZE == _nState ? WZB_FINISH : WZB_NEXT);
-
- // allow "finish" on the last page only
- enableButtons(WZB_FINISH, GBW_STATE_FINALIZE == _nState);
- // allow previous on all pages but the first one
- enableButtons(WZB_PREVIOUS, GBW_STATE_OPTIONLIST != _nState);
- // allow next on all pages but the last one
- enableButtons(WZB_NEXT, GBW_STATE_FINALIZE != _nState);
-
- OControlWizard::enterState(_nState);
- }
-
- //---------------------------------------------------------------------
- void OGroupBoxWizard::createRadios()
- {
- try
- {
- OOptionGroupLayouter aLayouter(getServiceFactory());
- aLayouter.doLayout(getContext(), getSettings());
- }
- catch(Exception&)
- {
- OSL_FAIL("OGroupBoxWizard::createRadios: caught an exception while creating the radio shapes!");
- }
- }
-
- //---------------------------------------------------------------------
- sal_Bool OGroupBoxWizard::onFinish()
- {
- // commit the basic control setttings
- commitControlSettings(&m_aSettings);
-
- // create the radio buttons
- createRadios();
-
- return OControlWizard::onFinish();
- }
-
- //=====================================================================
- //= ORadioSelectionPage
- //=====================================================================
- //---------------------------------------------------------------------
- ORadioSelectionPage::ORadioSelectionPage( OControlWizard* _pParent )
- :OGBWPage(_pParent, ModuleRes(RID_PAGE_GROUPRADIOSELECTION))
- ,m_aFrame (this, ModuleRes(FL_DATA))
- ,m_aRadioNameLabel (this, ModuleRes(FT_RADIOLABELS))
- ,m_aRadioName (this, ModuleRes(ET_RADIOLABELS))
- ,m_aMoveRight (this, ModuleRes(PB_MOVETORIGHT))
- ,m_aMoveLeft (this, ModuleRes(PB_MOVETOLEFT))
- ,m_aExistingRadiosLabel (this, ModuleRes(FT_RADIOBUTTONS))
- ,m_aExistingRadios (this, ModuleRes(LB_RADIOBUTTONS))
- {
- FreeResource();
-
- if (getContext().aFieldNames.getLength())
- {
- enableFormDatasourceDisplay();
- }
- else
- {
- adjustControlForNoDSDisplay(&m_aFrame);
- adjustControlForNoDSDisplay(&m_aRadioNameLabel);
- adjustControlForNoDSDisplay(&m_aRadioName);
- adjustControlForNoDSDisplay(&m_aMoveRight);
- adjustControlForNoDSDisplay(&m_aMoveLeft);
- adjustControlForNoDSDisplay(&m_aExistingRadiosLabel);
- adjustControlForNoDSDisplay(&m_aExistingRadios, sal_True);
- }
-
- m_aMoveLeft.SetClickHdl(LINK(this, ORadioSelectionPage, OnMoveEntry));
- m_aMoveRight.SetClickHdl(LINK(this, ORadioSelectionPage, OnMoveEntry));
- m_aRadioName.SetModifyHdl(LINK(this, ORadioSelectionPage, OnNameModified));
- m_aExistingRadios.SetSelectHdl(LINK(this, ORadioSelectionPage, OnEntrySelected));
-
- implCheckMoveButtons();
- m_aExistingRadios.EnableMultiSelection(sal_True);
-
- getDialog()->defaultButton(&m_aMoveRight);
-
- m_aExistingRadios.SetAccessibleRelationMemberOf(&m_aExistingRadios);
- m_aExistingRadios.SetAccessibleRelationLabeledBy(&m_aExistingRadiosLabel);
- }
-
- //---------------------------------------------------------------------
- void ORadioSelectionPage::ActivatePage()
- {
- OGBWPage::ActivatePage();
- m_aRadioName.GrabFocus();
- }
-
- //---------------------------------------------------------------------
- void ORadioSelectionPage::initializePage()
- {
- OGBWPage::initializePage();
-
- m_aRadioName.SetText(String());
-
- // no need to initialize the list of radios here
- // (we're the only one affecting this special setting, so it will be in the same state as last time this
- // page was commited)
-
- implCheckMoveButtons();
- }
-
- //---------------------------------------------------------------------
- sal_Bool ORadioSelectionPage::commitPage( ::svt::WizardTypes::CommitPageReason _eReason )
- {
- if (!OGBWPage::commitPage(_eReason))
- return sal_False;
-
- // copy the names of the radio buttons to be inserted
- // and initialize the values
- OOptionGroupSettings& rSettings = getSettings();
- rSettings.aLabels.clear();
- rSettings.aValues.clear();
- rSettings.aLabels.reserve(m_aExistingRadios.GetEntryCount());
- rSettings.aValues.reserve(m_aExistingRadios.GetEntryCount());
- for (::svt::WizardTypes::WizardState i=0; i<m_aExistingRadios.GetEntryCount(); ++i)
- {
- rSettings.aLabels.push_back(m_aExistingRadios.GetEntry(i));
- rSettings.aValues.push_back(String::CreateFromInt32((sal_Int32)(i + 1)));
- }
-
- return sal_True;
- }
-
- //---------------------------------------------------------------------
- IMPL_LINK( ORadioSelectionPage, OnMoveEntry, PushButton*, _pButton )
- {
- sal_Bool bMoveLeft = (&m_aMoveLeft == _pButton);
- if (bMoveLeft)
- {
- while (m_aExistingRadios.GetSelectEntryCount())
- m_aExistingRadios.RemoveEntry(m_aExistingRadios.GetSelectEntryPos(0));
- }
- else
- {
- m_aExistingRadios.InsertEntry(m_aRadioName.GetText());
- m_aRadioName.SetText(String());
- }
-
- implCheckMoveButtons();
-
- //adjust the focus
- if (bMoveLeft)
- m_aExistingRadios.GrabFocus();
- else
- m_aRadioName.GrabFocus();
- return 0L;
- }
-
- //---------------------------------------------------------------------
- IMPL_LINK( ORadioSelectionPage, OnEntrySelected, ListBox*, /*_pList*/ )
- {
- implCheckMoveButtons();
- return 0L;
- }
-
- //---------------------------------------------------------------------
- IMPL_LINK( ORadioSelectionPage, OnNameModified, Edit*, /*_pList*/ )
- {
- implCheckMoveButtons();
- return 0L;
- }
-
- //---------------------------------------------------------------------
- bool ORadioSelectionPage::canAdvance() const
- {
- return 0 != m_aExistingRadios.GetEntryCount();
- }
-
- //---------------------------------------------------------------------
- void ORadioSelectionPage::implCheckMoveButtons()
- {
- sal_Bool bHaveSome = (0 != m_aExistingRadios.GetEntryCount());
- sal_Bool bSelectedSome = (0 != m_aExistingRadios.GetSelectEntryCount());
- sal_Bool bUnfinishedInput = (0 != m_aRadioName.GetText().Len());
-
- m_aMoveLeft.Enable(bSelectedSome);
- m_aMoveRight.Enable(bUnfinishedInput);
-
- getDialog()->enableButtons(WZB_NEXT, bHaveSome);
-
- if (bUnfinishedInput)
- {
- if (0 == (m_aMoveRight.GetStyle() & WB_DEFBUTTON))
- getDialog()->defaultButton(&m_aMoveRight);
- }
- else
- {
- if (WB_DEFBUTTON == (m_aMoveRight.GetStyle() & WB_DEFBUTTON))
- getDialog()->defaultButton(WZB_NEXT);
- }
- }
-
- //=====================================================================
- //= ODefaultFieldSelectionPage
- //=====================================================================
- //---------------------------------------------------------------------
- ODefaultFieldSelectionPage::ODefaultFieldSelectionPage( OControlWizard* _pParent )
- :OMaybeListSelectionPage(_pParent, ModuleRes(RID_PAGE_DEFAULTFIELDSELECTION))
- ,m_aFrame (this, ModuleRes(FL_DEFAULTSELECTION))
- ,m_aDefaultSelectionLabel (this, ModuleRes(FT_DEFAULTSELECTION))
- ,m_aDefSelYes (this, ModuleRes(RB_DEFSELECTION_YES))
- ,m_aDefSelNo (this, ModuleRes(RB_DEFSELECTION_NO))
- ,m_aDefSelection (this, ModuleRes(LB_DEFSELECTIONFIELD))
- {
- FreeResource();
-
- announceControls(m_aDefSelYes, m_aDefSelNo, m_aDefSelection);
- m_aDefSelection.SetDropDownLineCount(10);
- m_aDefSelection.SetAccessibleRelationLabeledBy( &m_aDefSelYes );
- m_aDefSelection.SetAccessibleRelationMemberOf(&m_aDefaultSelectionLabel);
- }
-
- //---------------------------------------------------------------------
- void ODefaultFieldSelectionPage::initializePage()
- {
- OMaybeListSelectionPage::initializePage();
-
- const OOptionGroupSettings& rSettings = getSettings();
-
- // fill the listbox
- m_aDefSelection.Clear();
- for ( ConstStringArrayIterator aLoop = rSettings.aLabels.begin();
- aLoop != rSettings.aLabels.end();
- ++aLoop
- )
- m_aDefSelection.InsertEntry(*aLoop);
-
-
- implInitialize(rSettings.sDefaultField);
- }
-
- //---------------------------------------------------------------------
- sal_Bool ODefaultFieldSelectionPage::commitPage( ::svt::WizardTypes::CommitPageReason _eReason )
- {
- if (!OMaybeListSelectionPage::commitPage(_eReason))
- return sal_False;
-
- OOptionGroupSettings& rSettings = getSettings();
- implCommit(rSettings.sDefaultField);
-
- return sal_True;
- }
-
- //=====================================================================
- //= OOptionValuesPage
- //=====================================================================
- //---------------------------------------------------------------------
- OOptionValuesPage::OOptionValuesPage( OControlWizard* _pParent )
- :OGBWPage(_pParent, ModuleRes(RID_PAGE_OPTIONVALUES))
- ,m_aFrame (this, ModuleRes(FL_OPTIONVALUES))
- ,m_aDescription (this, ModuleRes(FT_OPTIONVALUES_EXPL))
- ,m_aValueLabel (this, ModuleRes(FT_OPTIONVALUES))
- ,m_aValue (this, ModuleRes(ET_OPTIONVALUE))
- ,m_aOptionsLabel (this, ModuleRes(FT_RADIOBUTTONS))
- ,m_aOptions (this, ModuleRes(LB_RADIOBUTTONS))
- ,m_nLastSelection((::svt::WizardTypes::WizardState)-1)
- {
- FreeResource();
-
- m_aOptions.SetSelectHdl(LINK(this, OOptionValuesPage, OnOptionSelected));
-
- m_aOptions.SetAccessibleRelationMemberOf(&m_aOptions);
- m_aOptions.SetAccessibleRelationLabeledBy(&m_aOptionsLabel);
- }
-
- //---------------------------------------------------------------------
- IMPL_LINK( OOptionValuesPage, OnOptionSelected, ListBox*, /*NOTINTERESTEDIN*/ )
- {
- implTraveledOptions();
- return 0L;
- }
-
- //---------------------------------------------------------------------
- void OOptionValuesPage::ActivatePage()
- {
- OGBWPage::ActivatePage();
- m_aValue.GrabFocus();
- }
-
- //---------------------------------------------------------------------
- void OOptionValuesPage::implTraveledOptions()
- {
- if ((::svt::WizardTypes::WizardState)-1 != m_nLastSelection)
- {
- // save the value for the last option
- DBG_ASSERT((size_t)m_nLastSelection < m_aUncommittedValues.size(), "OOptionValuesPage::implTraveledOptions: invalid previous selection index!");
- m_aUncommittedValues[m_nLastSelection] = m_aValue.GetText();
- }
-
- m_nLastSelection = m_aOptions.GetSelectEntryPos();
- DBG_ASSERT((size_t)m_nLastSelection < m_aUncommittedValues.size(), "OOptionValuesPage::implTraveledOptions: invalid new selection index!");
- m_aValue.SetText(m_aUncommittedValues[m_nLastSelection]);
- }
-
- //---------------------------------------------------------------------
- void OOptionValuesPage::initializePage()
- {
- OGBWPage::initializePage();
-
- const OOptionGroupSettings& rSettings = getSettings();
- DBG_ASSERT(rSettings.aLabels.size(), "OOptionValuesPage::initializePage: no options!!");
- DBG_ASSERT(rSettings.aLabels.size() == rSettings.aValues.size(), "OOptionValuesPage::initializePage: inconsistent data!");
-
- // fill the list with all available options
- m_aOptions.Clear();
- m_nLastSelection = -1;
- for ( ConstStringArrayIterator aLoop = rSettings.aLabels.begin();
- aLoop != rSettings.aLabels.end();
- ++aLoop
- )
- m_aOptions.InsertEntry(*aLoop);
-
- // remember the values ... can't set them directly in the settings without the explicit commit call
- // so we need have a copy of the values
- m_aUncommittedValues = rSettings.aValues;
-
- // select the first entry
- m_aOptions.SelectEntryPos(0);
- implTraveledOptions();
- }
-
- //---------------------------------------------------------------------
- sal_Bool OOptionValuesPage::commitPage( ::svt::WizardTypes::CommitPageReason _eReason )
- {
- if (!OGBWPage::commitPage(_eReason))
- return sal_False;
-
- OOptionGroupSettings& rSettings = getSettings();
-
- // commit the current value
- implTraveledOptions();
- // copy the uncommitted values
- rSettings.aValues = m_aUncommittedValues;
-
- return sal_True;
- }
-
- //=====================================================================
- //= OOptionDBFieldPage
- //=====================================================================
- //---------------------------------------------------------------------
- OOptionDBFieldPage::OOptionDBFieldPage( OControlWizard* _pParent )
- :ODBFieldPage(_pParent)
- {
- setDescriptionText(String(ModuleRes(RID_STR_GROUPWIZ_DBFIELD)));
- }
-
- //---------------------------------------------------------------------
- String& OOptionDBFieldPage::getDBFieldSetting()
- {
- return getSettings().sDBField;
- }
-
- //=====================================================================
- //= OFinalizeGBWPage
- //=====================================================================
- //---------------------------------------------------------------------
- OFinalizeGBWPage::OFinalizeGBWPage( OControlWizard* _pParent )
- :OGBWPage(_pParent, ModuleRes(RID_PAGE_OPTIONS_FINAL))
- ,m_aFrame (this, ModuleRes(FL_NAMEIT))
- ,m_aNameLabel (this, ModuleRes(FT_NAMEIT))
- ,m_aName (this, ModuleRes(ET_NAMEIT))
- ,m_aThatsAll (this, ModuleRes(FT_THATSALL))
- {
- FreeResource();
- }
-
- //---------------------------------------------------------------------
- void OFinalizeGBWPage::ActivatePage()
- {
- OGBWPage::ActivatePage();
- m_aName.GrabFocus();
- }
-
- //---------------------------------------------------------------------
- bool OFinalizeGBWPage::canAdvance() const
- {
- return false;
- }
-
- //---------------------------------------------------------------------
- void OFinalizeGBWPage::initializePage()
- {
- OGBWPage::initializePage();
-
- const OOptionGroupSettings& rSettings = getSettings();
- m_aName.SetText(rSettings.sControlLabel);
- }
-
- //---------------------------------------------------------------------
- sal_Bool OFinalizeGBWPage::commitPage( ::svt::WizardTypes::CommitPageReason _eReason )
- {
- if (!OGBWPage::commitPage(_eReason))
- return sal_False;
-
- getSettings().sControlLabel = m_aName.GetText();
-
- return sal_True;
- }
-
-//.........................................................................
-} // namespace dbp
-//.........................................................................
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */