in main/reportdesign/source/ui/report/ReportController.cxx [997:1663]
void OReportController::Execute(sal_uInt16 _nId, const Sequence< PropertyValue >& aArgs)
{
::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
::osl::MutexGuard aGuard( getMutex() );
sal_Bool bForceBroadcast = sal_False;
switch(_nId)
{
case SID_RPT_TEXTDOCUMENT:
if ( m_xReportDefinition.is() )
m_xReportDefinition->setMimeType( MIMETYPE_OASIS_OPENDOCUMENT_TEXT );
break;
case SID_RPT_SPREADSHEET:
if (m_xReportDefinition.is() )
m_xReportDefinition->setMimeType( MIMETYPE_OASIS_OPENDOCUMENT_SPREADSHEET );
break;
case SID_REPORTHEADER_WITHOUT_UNDO:
case SID_REPORTFOOTER_WITHOUT_UNDO:
case SID_REPORTHEADERFOOTER:
switchReportSection(_nId);
break;
case SID_PAGEHEADER_WITHOUT_UNDO:
case SID_PAGEFOOTER_WITHOUT_UNDO:
case SID_PAGEHEADERFOOTER:
switchPageSection(_nId);
break;
case SID_GROUP_APPEND:
case SID_GROUP_REMOVE:
modifyGroup(_nId == SID_GROUP_APPEND,aArgs);
break;
case SID_GROUPHEADER_WITHOUT_UNDO:
case SID_GROUPHEADER:
createGroupSection(SID_GROUPHEADER == _nId,true,aArgs);
break;
case SID_GROUPFOOTER_WITHOUT_UNDO:
case SID_GROUPFOOTER:
createGroupSection(SID_GROUPFOOTER == _nId,false,aArgs);
break;
case SID_ADD_CONTROL_PAIR:
addPairControls(aArgs);
break;
case SID_REDO:
case SID_UNDO:
{
const OXUndoEnvironment::OUndoMode aLock( m_aReportModel->GetUndoEnv() );
sal_Bool ( SfxUndoManager::*doXDo )() =
( _nId == SID_UNDO ) ? &SfxUndoManager::Undo : &SfxUndoManager::Redo;
SfxUndoManager& rUndoManager( getUndoManager() );
(rUndoManager.*doXDo)();
InvalidateAll();
updateFloater();
}
break;
case SID_CUT:
executeMethodWithUndo(RID_STR_UNDO_REMOVE_SELECTION,::std::mem_fun(&ODesignView::Cut));
break;
case SID_COPY:
getDesignView()->Copy();
break;
case SID_PASTE:
executeMethodWithUndo(RID_STR_UNDO_PASTE,::std::mem_fun(&ODesignView::Paste));
break;
case SID_FRAME_TO_TOP:
case SID_FRAME_DOWN:
case SID_FRAME_UP:
case SID_FRAME_TO_BOTTOM:
case SID_OBJECT_HEAVEN:
case SID_OBJECT_HELL:
changeZOrder(_nId);
break;
case SID_DISTRIBUTION:
{
OSectionView* pSectionView = getCurrentSectionView();
if ( pSectionView )
pSectionView->DistributeMarkedObjects();
}
break;
case SID_OBJECT_SMALLESTWIDTH:
alignControlsWithUndo(RID_STR_UNDO_ALIGNMENT,ControlModification::WIDTH_SMALLEST);
break;
case SID_OBJECT_SMALLESTHEIGHT:
alignControlsWithUndo(RID_STR_UNDO_ALIGNMENT,ControlModification::HEIGHT_SMALLEST);
break;
case SID_OBJECT_GREATESTWIDTH:
alignControlsWithUndo(RID_STR_UNDO_ALIGNMENT,ControlModification::WIDTH_GREATEST);
break;
case SID_OBJECT_GREATESTHEIGHT:
alignControlsWithUndo(RID_STR_UNDO_ALIGNMENT,ControlModification::HEIGHT_GREATEST);
break;
case SID_SECTION_ALIGN_LEFT:
case SID_OBJECT_ALIGN_LEFT:
alignControlsWithUndo(RID_STR_UNDO_ALIGNMENT,ControlModification::LEFT,SID_SECTION_ALIGN_LEFT == _nId);
break;
case SID_SECTION_ALIGN_CENTER:
case SID_OBJECT_ALIGN_CENTER:
alignControlsWithUndo(RID_STR_UNDO_ALIGNMENT,ControlModification::CENTER_HORIZONTAL,SID_SECTION_ALIGN_CENTER == _nId);
break;
case SID_SECTION_ALIGN_RIGHT:
case SID_OBJECT_ALIGN_RIGHT:
alignControlsWithUndo(RID_STR_UNDO_ALIGNMENT,ControlModification::RIGHT,SID_SECTION_ALIGN_RIGHT == _nId);
break;
case SID_SECTION_ALIGN_UP:
case SID_OBJECT_ALIGN_UP:
alignControlsWithUndo(RID_STR_UNDO_ALIGNMENT,ControlModification::TOP,SID_SECTION_ALIGN_UP == _nId);
break;
case SID_SECTION_ALIGN_MIDDLE:
case SID_OBJECT_ALIGN_MIDDLE:
alignControlsWithUndo(RID_STR_UNDO_ALIGNMENT,ControlModification::CENTER_VERTICAL,SID_SECTION_ALIGN_MIDDLE == _nId);
break;
case SID_SECTION_ALIGN_DOWN:
case SID_OBJECT_ALIGN_DOWN:
alignControlsWithUndo(RID_STR_UNDO_ALIGNMENT,ControlModification::BOTTOM,SID_SECTION_ALIGN_DOWN == _nId);
break;
case SID_SECTION_SHRINK_BOTTOM:
case SID_SECTION_SHRINK_TOP:
case SID_SECTION_SHRINK:
{
uno::Reference<report::XSection> xSection = getDesignView()->getCurrentSection();
shrinkSection(RID_STR_UNDO_SHRINK, xSection, _nId);
}
break;
case SID_SELECTALL:
getDesignView()->SelectAll(OBJ_NONE);
break;
case SID_SELECTALL_IN_SECTION:
{
OSectionView* pSectionView = getCurrentSectionView();
if ( pSectionView )
pSectionView->MarkAll();
}
break;
case SID_ESCAPE:
getDesignView()->SetMode(RPTUI_SELECT);
InvalidateFeature( SID_OBJECT_SELECT );
break;
case SID_SELECT_ALL_EDITS:
getDesignView()->SelectAll(OBJ_DLG_FORMATTEDFIELD);
break;
case SID_SELECT_ALL_LABELS:
getDesignView()->SelectAll(OBJ_DLG_FIXEDTEXT);
break;
case SID_TERMINATE_INPLACEACTIVATION:
{
::boost::shared_ptr<OSectionWindow> pSection = getDesignView()->getMarkedSection();
if ( pSection )
pSection->getReportSection().deactivateOle();
}
break;
case SID_SELECT:
if ( aArgs.getLength() == 1 )
select(aArgs[0].Value);
break;
case SID_SELECT_REPORT:
select(uno::makeAny(m_xReportDefinition));
break;
case SID_EXECUTE_REPORT:
/*m_nExecuteReportEvent = */getView()->PostUserEvent(LINK(this, OReportController,OnExecuteReport));
break;
case SID_RPT_NEW_FUNCTION:
createNewFunction(aArgs[0].Value);
break;
case SID_COLLAPSE_SECTION:
collapseSection(true);
break;
case SID_EXPAND_SECTION:
collapseSection(false);
break;
case SID_NEXT_MARK:
markSection(true);
break;
case SID_PREV_MARK:
markSection(false);
break;
case SID_DELETE:
if ( aArgs.getLength() == 1 )
{
uno::Reference< report::XFunction> xFunction;
aArgs[0].Value >>= xFunction;
if ( xFunction.is() )
{
uno::Reference< report::XFunctions> xFunctions(xFunction->getParent(),uno::UNO_QUERY_THROW);
sal_Int32 nIndex = getPositionInIndexAccess(xFunctions.get(),xFunction);
const String sUndoAction = String((ModuleRes(RID_STR_UNDO_REMOVE_FUNCTION)));
UndoContext aUndoContext( getUndoManager(), sUndoAction );
xFunctions->removeByIndex(nIndex);
select(uno::makeAny(xFunctions->getParent()));
InvalidateFeature( SID_SAVEDOC );
InvalidateFeature( SID_UNDO );
}
}
else
executeMethodWithUndo(RID_STR_UNDO_REMOVE_SELECTION,::std::mem_fun(&ODesignView::Delete));
break;
case SID_GRID_USE:
getDesignView()->setGridSnap(m_bGridUse = !m_bGridUse);
break;
case SID_HELPLINES_MOVE:
getDesignView()->setDragStripes(m_bHelplinesMove = !m_bHelplinesMove);
break;
case SID_GRID_VISIBLE:
getDesignView()->toggleGrid(m_bGridVisible = !m_bGridVisible);
break;
case SID_RULER:
getDesignView()->showRuler(m_bShowRuler = !m_bShowRuler);
break;
case SID_OBJECT_SELECT:
getDesignView()->SetMode(RPTUI_SELECT);
InvalidateAll();
break;
case SID_INSERT_DIAGRAM:
getDesignView()->SetMode( RPTUI_INSERT );
getDesignView()->SetInsertObj( OBJ_OLE2);
createDefaultControl(aArgs);
InvalidateAll();
break;
case SID_FM_FIXEDTEXT:
getDesignView()->SetMode( RPTUI_INSERT );
getDesignView()->SetInsertObj( OBJ_DLG_FIXEDTEXT );
createDefaultControl(aArgs);
InvalidateAll();
break;
case SID_INSERT_HFIXEDLINE:
getDesignView()->SetMode( RPTUI_INSERT );
getDesignView()->SetInsertObj( OBJ_DLG_HFIXEDLINE );
createDefaultControl(aArgs);
InvalidateAll();
break;
case SID_INSERT_VFIXEDLINE:
getDesignView()->SetMode( RPTUI_INSERT );
getDesignView()->SetInsertObj( OBJ_DLG_VFIXEDLINE );
createDefaultControl(aArgs);
InvalidateAll();
break;
case SID_FM_EDIT:
getDesignView()->SetMode( RPTUI_INSERT );
getDesignView()->SetInsertObj( OBJ_DLG_FORMATTEDFIELD );
createDefaultControl(aArgs);
InvalidateAll();
break;
case SID_FM_IMAGECONTROL:
getDesignView()->SetMode( RPTUI_INSERT );
getDesignView()->SetInsertObj( OBJ_DLG_IMAGECONTROL );
createDefaultControl(aArgs);
InvalidateAll();
break;
case SID_DRAWTBX_CS_BASIC:
case SID_DRAWTBX_CS_BASIC1:
case SID_DRAWTBX_CS_BASIC2:
case SID_DRAWTBX_CS_BASIC3:
case SID_DRAWTBX_CS_BASIC4:
case SID_DRAWTBX_CS_BASIC5:
case SID_DRAWTBX_CS_BASIC6:
case SID_DRAWTBX_CS_BASIC7:
case SID_DRAWTBX_CS_BASIC8:
case SID_DRAWTBX_CS_BASIC9:
case SID_DRAWTBX_CS_BASIC10:
case SID_DRAWTBX_CS_BASIC11:
case SID_DRAWTBX_CS_BASIC12:
case SID_DRAWTBX_CS_BASIC13:
case SID_DRAWTBX_CS_BASIC14:
case SID_DRAWTBX_CS_BASIC15:
case SID_DRAWTBX_CS_BASIC16:
case SID_DRAWTBX_CS_BASIC17:
case SID_DRAWTBX_CS_BASIC18:
case SID_DRAWTBX_CS_BASIC19:
case SID_DRAWTBX_CS_BASIC20:
case SID_DRAWTBX_CS_BASIC21:
case SID_DRAWTBX_CS_BASIC22:
case SID_DRAWTBX_CS_SYMBOL1:
case SID_DRAWTBX_CS_SYMBOL2:
case SID_DRAWTBX_CS_SYMBOL3:
case SID_DRAWTBX_CS_SYMBOL4:
case SID_DRAWTBX_CS_SYMBOL5:
case SID_DRAWTBX_CS_SYMBOL6:
case SID_DRAWTBX_CS_SYMBOL7:
case SID_DRAWTBX_CS_SYMBOL8:
case SID_DRAWTBX_CS_SYMBOL9:
case SID_DRAWTBX_CS_SYMBOL10:
case SID_DRAWTBX_CS_SYMBOL11:
case SID_DRAWTBX_CS_SYMBOL12:
case SID_DRAWTBX_CS_SYMBOL13:
case SID_DRAWTBX_CS_SYMBOL14:
case SID_DRAWTBX_CS_SYMBOL15:
case SID_DRAWTBX_CS_SYMBOL16:
case SID_DRAWTBX_CS_SYMBOL17:
case SID_DRAWTBX_CS_SYMBOL18:
case SID_DRAWTBX_CS_ARROW1:
case SID_DRAWTBX_CS_ARROW2:
case SID_DRAWTBX_CS_ARROW3:
case SID_DRAWTBX_CS_ARROW4:
case SID_DRAWTBX_CS_ARROW5:
case SID_DRAWTBX_CS_ARROW6:
case SID_DRAWTBX_CS_ARROW7:
case SID_DRAWTBX_CS_ARROW8:
case SID_DRAWTBX_CS_ARROW9:
case SID_DRAWTBX_CS_ARROW10:
case SID_DRAWTBX_CS_ARROW11:
case SID_DRAWTBX_CS_ARROW12:
case SID_DRAWTBX_CS_ARROW13:
case SID_DRAWTBX_CS_ARROW14:
case SID_DRAWTBX_CS_ARROW15:
case SID_DRAWTBX_CS_ARROW16:
case SID_DRAWTBX_CS_ARROW17:
case SID_DRAWTBX_CS_ARROW18:
case SID_DRAWTBX_CS_ARROW19:
case SID_DRAWTBX_CS_ARROW20:
case SID_DRAWTBX_CS_ARROW21:
case SID_DRAWTBX_CS_ARROW22:
case SID_DRAWTBX_CS_ARROW23:
case SID_DRAWTBX_CS_ARROW24:
case SID_DRAWTBX_CS_ARROW25:
case SID_DRAWTBX_CS_ARROW26:
case SID_DRAWTBX_CS_STAR1:
case SID_DRAWTBX_CS_STAR2:
case SID_DRAWTBX_CS_STAR3:
case SID_DRAWTBX_CS_STAR4:
case SID_DRAWTBX_CS_STAR5:
case SID_DRAWTBX_CS_STAR6:
case SID_DRAWTBX_CS_STAR7:
case SID_DRAWTBX_CS_STAR8:
case SID_DRAWTBX_CS_STAR9:
case SID_DRAWTBX_CS_STAR10:
case SID_DRAWTBX_CS_STAR11:
case SID_DRAWTBX_CS_STAR12:
case SID_DRAWTBX_CS_FLOWCHART1:
case SID_DRAWTBX_CS_FLOWCHART2:
case SID_DRAWTBX_CS_FLOWCHART3:
case SID_DRAWTBX_CS_FLOWCHART4:
case SID_DRAWTBX_CS_FLOWCHART5:
case SID_DRAWTBX_CS_FLOWCHART6:
case SID_DRAWTBX_CS_FLOWCHART7:
case SID_DRAWTBX_CS_FLOWCHART8:
case SID_DRAWTBX_CS_FLOWCHART9:
case SID_DRAWTBX_CS_FLOWCHART10:
case SID_DRAWTBX_CS_FLOWCHART11:
case SID_DRAWTBX_CS_FLOWCHART12:
case SID_DRAWTBX_CS_FLOWCHART13:
case SID_DRAWTBX_CS_FLOWCHART14:
case SID_DRAWTBX_CS_FLOWCHART15:
case SID_DRAWTBX_CS_FLOWCHART16:
case SID_DRAWTBX_CS_FLOWCHART17:
case SID_DRAWTBX_CS_FLOWCHART18:
case SID_DRAWTBX_CS_FLOWCHART19:
case SID_DRAWTBX_CS_FLOWCHART20:
case SID_DRAWTBX_CS_FLOWCHART21:
case SID_DRAWTBX_CS_FLOWCHART22:
case SID_DRAWTBX_CS_FLOWCHART23:
case SID_DRAWTBX_CS_FLOWCHART24:
case SID_DRAWTBX_CS_FLOWCHART25:
case SID_DRAWTBX_CS_FLOWCHART26:
case SID_DRAWTBX_CS_FLOWCHART27:
case SID_DRAWTBX_CS_FLOWCHART28:
case SID_DRAWTBX_CS_CALLOUT1:
case SID_DRAWTBX_CS_CALLOUT2:
case SID_DRAWTBX_CS_CALLOUT3:
case SID_DRAWTBX_CS_CALLOUT4:
case SID_DRAWTBX_CS_CALLOUT5:
case SID_DRAWTBX_CS_CALLOUT6:
case SID_DRAWTBX_CS_CALLOUT7:
case SID_DRAWTBX_CS_SYMBOL:
case SID_DRAWTBX_CS_ARROW:
case SID_DRAWTBX_CS_FLOWCHART:
case SID_DRAWTBX_CS_CALLOUT:
case SID_DRAWTBX_CS_STAR:
getDesignView()->SetMode( RPTUI_INSERT );
{
URL aUrl = getURLForId(_nId);
sal_Int32 nIndex = 1;
::rtl::OUString sType = aUrl.Complete.getToken(0,'.',nIndex);
if ( nIndex == -1 || !sType.getLength() )
{
switch(_nId)
{
case SID_DRAWTBX_CS_SYMBOL:
sType = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("smiley"));
break;
case SID_DRAWTBX_CS_ARROW:
sType = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("left-right-arrow"));
break;
case SID_DRAWTBX_CS_FLOWCHART:
sType = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("flowchart-internal-storage"));
break;
case SID_DRAWTBX_CS_CALLOUT:
sType = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("round-rectangular-callout"));
break;
case SID_DRAWTBX_CS_STAR:
sType = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("star5"));
break;
case SID_DRAWTBX_CS_BASIC:
default:
sType = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("diamond"));
}
}
else
sType = aUrl.Complete.getToken(0,'.',nIndex);
getDesignView()->SetInsertObj( OBJ_CUSTOMSHAPE ,sType);
createDefaultControl(aArgs);
}
InvalidateAll();
break;
case SID_RPT_SHOWREPORTEXPLORER:
if ( isUiVisible() )
getDesignView()->toggleReportExplorer();
break;
case SID_FM_ADD_FIELD:
if ( isUiVisible() )
getDesignView()->toggleAddField();
break;
case SID_SHOW_PROPERTYBROWSER:
if ( m_bShowProperties )
m_sLastActivePage = getDesignView()->getCurrentPage();
else
getDesignView()->setCurrentPage(m_sLastActivePage);
if ( isUiVisible() )
{
m_bShowProperties = !m_bShowProperties;
if ( aArgs.getLength() == 1 )
aArgs[0].Value >>= m_bShowProperties;
getDesignView()->togglePropertyBrowser(m_bShowProperties);
}
break;
case SID_PROPERTYBROWSER_LAST_PAGE: // nothing to do
m_sLastActivePage = getDesignView()->getCurrentPage();
break;
case SID_SPLIT_POSITION:
getDesignView()->Resize();
break;
case SID_PAGEDIALOG:
case SID_ATTR_CHAR_COLOR_BACKGROUND:
{
uno::Reference<report::XSection> xSection;
if (aArgs.getLength() == 1 )
aArgs[0].Value >>= xSection;
openPageDialog(xSection);
bForceBroadcast = sal_True;
}
break;
case SID_SORTINGANDGROUPING:
openSortingAndGroupingDialog();
m_bGroupFloaterWasVisible = m_pGroupsFloater && m_pGroupsFloater->IsVisible();
break;
case SID_BACKGROUND_COLOR:
{
const util::Color aColor( lcl_extractBackgroundColor( aArgs ) );
if ( !impl_setPropertyAtControls_throw(RID_STR_UNDO_CHANGEFONT,PROPERTY_CONTROLBACKGROUND,uno::makeAny(aColor),aArgs) )
{
uno::Reference< report::XSection > xSection = getDesignView()->getCurrentSection();
if ( xSection.is() )
{
xSection->setBackColor( aColor );
}
}
bForceBroadcast = sal_True;
}
break;
case SID_ATTR_CHAR_WEIGHT:
case SID_ATTR_CHAR_POSTURE:
case SID_ATTR_CHAR_UNDERLINE:
{
uno::Reference< awt::XWindow> xWindow;
::std::vector< uno::Reference< uno::XInterface > > aControlsFormats;
lcl_getReportControlFormat( aArgs, getDesignView(), xWindow, aControlsFormats );
const String sUndoAction(ModuleRes(RID_STR_UNDO_CHANGEFONT));
UndoContext aUndoContext( getUndoManager(), sUndoAction );
::std::vector< uno::Reference< uno::XInterface > >::iterator aIter = aControlsFormats.begin();
for(; aIter != aControlsFormats.end();++aIter)
{
uno::Reference< report::XReportControlFormat> xReportControlFormat(*aIter,uno::UNO_QUERY);
lcl_setFontWPU_nothrow(xReportControlFormat,_nId);
}
}
break;
case SID_ATTR_CHAR_COLOR:
case SID_ATTR_CHAR_COLOR2:
{
const SequenceAsHashMap aMap(aArgs);
const util::Color aColor = aMap.getUnpackedValueOrDefault(PROPERTY_FONTCOLOR,util::Color());
impl_setPropertyAtControls_throw(RID_STR_UNDO_CHANGEFONT,PROPERTY_CHARCOLOR,uno::makeAny(aColor),aArgs);
bForceBroadcast = sal_True;
}
break;
case SID_ATTR_CHAR_FONT:
if ( aArgs.getLength() == 1 )
{
awt::FontDescriptor aFont;
if ( aArgs[0].Value >>= aFont )
{
impl_setPropertyAtControls_throw(RID_STR_UNDO_CHANGEFONT,PROPERTY_CHARFONTNAME,uno::makeAny(aFont.Name),aArgs);
} // if ( aArgs[0].Value >>= aFont )
}
break;
case SID_ATTR_CHAR_FONTHEIGHT:
if ( aArgs.getLength() == 1 )
{
float fSelVal = 0.0;
if ( aArgs[0].Value >>= fSelVal )
impl_setPropertyAtControls_throw(RID_STR_UNDO_CHANGEFONT,PROPERTY_CHARHEIGHT,aArgs[0].Value,aArgs);
}
break;
case SID_ATTR_PARA_ADJUST_LEFT:
case SID_ATTR_PARA_ADJUST_CENTER:
case SID_ATTR_PARA_ADJUST_RIGHT:
case SID_ATTR_PARA_ADJUST_BLOCK:
{
sal_Int16 eParagraphAdjust = style::ParagraphAdjust_LEFT;
switch(_nId)
{
case SID_ATTR_PARA_ADJUST_LEFT:
eParagraphAdjust = style::ParagraphAdjust_LEFT;
break;
case SID_ATTR_PARA_ADJUST_CENTER:
eParagraphAdjust = style::ParagraphAdjust_CENTER;
break;
case SID_ATTR_PARA_ADJUST_RIGHT:
eParagraphAdjust = style::ParagraphAdjust_RIGHT;
break;
case SID_ATTR_PARA_ADJUST_BLOCK:
eParagraphAdjust = style::ParagraphAdjust_BLOCK;
break;
} // switch(_nId)
impl_setPropertyAtControls_throw(RID_STR_UNDO_ALIGNMENT,PROPERTY_PARAADJUST,uno::makeAny(eParagraphAdjust),aArgs);
InvalidateFeature(SID_ATTR_PARA_ADJUST_LEFT);
InvalidateFeature(SID_ATTR_PARA_ADJUST_CENTER);
InvalidateFeature(SID_ATTR_PARA_ADJUST_RIGHT);
InvalidateFeature(SID_ATTR_PARA_ADJUST_BLOCK);
}
break;
case SID_CHAR_DLG:
{
uno::Sequence< beans::NamedValue > aSettings;
uno::Reference< awt::XWindow> xWindow;
::std::vector< uno::Reference< uno::XInterface > > aControlsFormats;
lcl_getReportControlFormat( aArgs, getDesignView(), xWindow, aControlsFormats );
if ( !aControlsFormats.empty() )
{
const String sUndoAction( ModuleRes( RID_STR_UNDO_CHANGEFONT ) );
UndoContext aUndoContext( getUndoManager(), sUndoAction );
::std::vector< uno::Reference< uno::XInterface > >::iterator aIter = aControlsFormats.begin();
for(; aIter != aControlsFormats.end();++aIter)
{
uno::Reference< report::XReportControlFormat > xFormat( *aIter, uno::UNO_QUERY );
if ( !xFormat.is() )
continue;
if ( aSettings.getLength() == 0 )
{
::rptui::openCharDialog( xFormat, xWindow, aSettings );
if ( aSettings.getLength() == 0 )
break;
}
applyCharacterSettings( xFormat, aSettings );
}
InvalidateAll();
}
}
break;
case SID_INSERT_GRAPHIC:
insertGraphic();
break;
case SID_SETCONTROLDEFAULTS:
break;
case SID_CONDITIONALFORMATTING:
{
uno::Reference< report::XFormattedField> xFormattedField(getDesignView()->getCurrentControlModel(),uno::UNO_QUERY);
if ( xFormattedField.is() )
{
ConditionalFormattingDialog aDlg( getView(), xFormattedField.get(), *this );
aDlg.Execute();
}
}
break;
case SID_DATETIME:
if ( m_xReportDefinition.is() )
{
if ( !aArgs.getLength() )
{
ODateTimeDialog aDlg(getView(),getDesignView()->getCurrentSection(),this);
aDlg.Execute();
}
else
createDateTime(aArgs);
} // if ( m_xReportDefinition.is() )
break;
case SID_INSERT_FLD_PGNUMBER:
if ( m_xReportDefinition.is() )
{
if ( !aArgs.getLength() )
{
OPageNumberDialog aDlg(getView(),m_xReportDefinition,this);
aDlg.Execute();
}
else
createPageNumber(aArgs);
} // if ( m_xReportDefinition.is() )
break;
case SID_EXPORTDOC:
case SID_EXPORTDOCASPDF:
break;
case SID_PRINTPREVIEW:
if ( m_xReportDefinition.is() )
{
}
break;
case SID_EDITDOC:
if(isEditable())
{ // the state should be changed to not editable
switch (saveModified())
{
case RET_CANCEL:
// don't change anything here so return
return;
case RET_NO:
setModified(sal_False); // and we are not modified yet
break;
default:
break;
}
}
setEditable(!isEditable());
//getJoinView()->setReadOnly(!isEditable());
InvalidateAll();
return;
case SID_GROUP:
break;
case SID_ATTR_ZOOM:
if ( aArgs.getLength() == 0 )
{
openZoomDialog();
}
else if ( aArgs.getLength() == 1 && aArgs[0].Name.equalsAscii("Zoom") )
{
SvxZoomItem aZoomItem;
aZoomItem.PutValue(aArgs[0].Value);
m_nZoomValue = aZoomItem.GetValue();
m_eZoomType = aZoomItem.GetType();
impl_zoom_nothrow();
} // if ( aArgs.getLength() == 1 && aArgs[0].Name.equalsAscii("Zoom") )
break;
case SID_ATTR_ZOOMSLIDER:
if ( aArgs.getLength() == 1 && aArgs[0].Name.equalsAscii("ZoomSlider") )
{
SvxZoomSliderItem aZoomSlider;
aZoomSlider.PutValue(aArgs[0].Value);
m_nZoomValue = aZoomSlider.GetValue();
m_eZoomType = SVX_ZOOM_PERCENT;
impl_zoom_nothrow();
}
break;
default:
OReportController_BASE::Execute(_nId,aArgs);
}
InvalidateFeature(_nId,Reference< XStatusListener >(),bForceBroadcast);
}