TabSetReccurringAppointment

Add-in Express™ Support Service
That's what is more important than anything else

TabSetReccurringAppointment
 
Ronald Siekman


Guest


Hi,

I am using version 6.3.757 for VCL and Outlook 2010.
When I add a TadxRibbonTab and set the "Context" property to "Outlook.TabSetReccurringAppointment" none of the ribbons will show up.
When I use "Outlook.TabSetAppointment" everything works fine.
Please could you look at this ?

Greetings

Ronald Siekman


Other TadxRibbonTab properties (TabSetReccurringAppointment) set to:
Caption = Test
IdMso = TabAppointment
Ribbons = [msrOutlookAppointment, msrOutlookExplorer]
With or Without adding controls has the same result
Posted 03 Dec, 2010 03:53:22 Top
Andrei Smolin


Add-in Express team


Posts: 18825
Joined: 2006-05-11
Hi Ronald,

Note that the tabsets are available in the Explorer Ribbon only. Make sure that you enabled the "Show add-in user interface errors" in File | Options | Advanced.

The Ribbon tab below works fine for me:

  object adxRibbonTab1: TadxRibbonTab
    Caption = 'adxRibbonTab1'
    Context = 'Outlook.TabSetReccurringAppointment'
    Controls = <
      item
        Id = 'adxRibbonGroup0E779459FC8B437591EA5DA878383709'
        Caption = 'adxRibbonGroup1'
        Ribbons = [msrOutlookExplorer]
        Ribbons2010 = [msrOutlookExplorer2010]
        ControlTypes = ...
        Controls_ = <
          item
            Glyph.Data = ...
            Id = 'adxRibbonButton4424E79CA51540E1917FF9263FED3D0B'
            OnClick = adxRibbonTab1Controls0Controls0Click
            Caption = 'adxRibbonButton1'
            Ribbons = [msrOutlookExplorer]
            Ribbons2010 = [msrOutlookExplorer2010]
          end>
      end>
    Id = 'adxRibbonTab6A9572AF51364292A09A68D50F7E0910'
    Left = 128
    Top = 40
    Ribbons = [msrOutlookExplorer]
    Ribbons2010 = [msrOutlookExplorer2010]
  end



Andrei Smolin
Add-in Express Team Leader
Posted 03 Dec, 2010 08:00:09 Top
Ronald Siekman


Guest


Hi Andrei,

This is known to me.
I will send an example by e-mail which will explain maybe more.

Greetings

Ronald
Posted 03 Dec, 2010 09:49:29 Top
Andrei Smolin


Add-in Express team


Posts: 18825
Joined: 2006-05-11
Hi Ronald,

Thank you for sending me the project; such things really help.

By setting IdMso = 'TabAppointment', you refer to the Ribbon tab built into the Appointment Inspector. On the other hand, by specifying Context = 'Outlook.TabSetAppointment', you refer to an entity that is built into the Explorer. Those instructions contradict each other and that's why the Ribbon refuses to understand you.


Andrei Smolin
Add-in Express Team Leader
Posted 03 Dec, 2010 11:53:53 Top
Ronald Siekman


Guest


Hi Andrei,

Thanks for your explanation. This is clear now.
My next question will be: How can I add buttons on the "Appointment Tools" Tab?
(The (green) one I see when I click on an appointment) for normal appointments and recurring as well.

Using "Outlook.TabSetAppointment" and "Outlook.TabSetReccurringAppointment" in 2 different TadxRibbonTab controls breaks the ribbon flow.

Greetings

Ronald
Posted 06 Dec, 2010 03:06:51 Top
Dmitry Kostochko


Add-in Express team


Posts: 2875
Joined: 2004-04-05
Hi Ronald,

My next question will be: How can I add buttons on the "Appointment Tools" Tab?


Please try to do the following:
1. Add a new TadxRibbonTab component to your add-in module;
2. Set the Ribbons property to [msrOutlookExplorer];
3. Set the Context property to Outlook.TabSetAppointment;
4. Set the IdMso to TabAppointment;
5. Populate the Controls property with your controls

I tested the solution in my Outlook 2010 and see that the controls (Group and Button in my case) were added onto the Appointment contextual tab.

Using "Outlook.TabSetAppointment" and "Outlook.TabSetReccurringAppointment" in 2 different TadxRibbonTab controls breaks the ribbon flow.


Yes, you are right, this is a bug in our code. I have just reproduced the issue with 2 contextual ribbon tabs and filed it under #2165 in our bug tracking system.
Posted 06 Dec, 2010 08:56:26 Top
Ronald Siekman


Guest


Hi Andrei,

I found the problem.

1. Create a new Add-in
2. Add 1 TadxRibbonTab (add a button here)
3. Set Context=Outlook.TabSetAppointment
4. Set IdMso=TabAppointment
5. Run Outlook, click on a NON recurring appointment. You will see your button.

( This was suggested in topic:
???Add ribbon group to "Home" tab in the explorer window (Outlook 2010)?? )

Next...

1. Same Add-in
2. Add a second TadxRibbonTab (add a button here)
3. Set Context=Outlook.TabSetReccurringAppointment
4. Set IdMso=TabRecurringAppointment
5. Run Outlook, click on a non- or a recurring appointment. You will see nothing !

Why...

function GetCustomUI in TadxAddin creates the XML file for "tabSet" wrong


-------- start source change (start at line 14999) -----------

FlagTabs := False;
for i := 0 to COMAddInModule.FContextTabs.Count - 1 do begin
if not FlagTabs and IsItemTypeSupported(RibbonID, TadxRibbonTab(COMAddInModule.FContextTabs[i]).FRibbons, TadxRibbonTab(COMAddInModule.FContextTabs[i]).GetRibbons2010) then begin
FlagTabs := True;
xmlData.WriteStartElement('contextualTabs');
//// xmlData.WriteStartElement('tabSet'); !!!!! Move this line down
end;
if not FlagTabs then Continue;

!!!!! Always create the 'tabset'

xmlData.WriteStartElement('tabSet');

if ContextList.IndexOf(COMAddInModule.FContextTabs[i]) = -1 then begin
ContextMSO := TadxRibbonTab(COMAddInModule.FContextTabs[i]).Context;
if Pos('.', ContextMSO) > 0 then Delete(ContextMSO, 1, Pos('.', ContextMSO));
xmlData.WriteAttributeString('idMso', ContextMSO);
ProcessChildren(COMAddInModule, xmlData,
IadxRibbonComponent(TadxRibbonTab(COMAddInModule.FContextTabs[i])), RibbonID);
for j := i + 1 to COMAddInModule.FContextTabs.Count - 1 do begin
if TadxRibbonTab(COMAddInModule.FContextTabs[i]).Context =
TadxRibbonTab(COMAddInModule.FContextTabs[j]).Context then
begin
if ContextList.IndexOf(COMAddInModule.FContextTabs[j]) = -1 then begin
ProcessChildren(COMAddInModule, xmlData,
IadxRibbonComponent(TadxRibbonTab(COMAddInModule.FContextTabs[j])), RibbonID);
ContextList.Add(COMAddInModule.FContextTabs[j]);
end;
end;
end;
ContextList.Add(COMAddInModule.FContextTabs[i]);
end;

!!!!! Always ends the 'tabset'

xmlData.WriteEndElement('tabSet');

end;

-------- end source -------


I don't know if this is the right way, but now it works great !!!!
Hope this helps.


Greetings

Ronald
Posted 06 Dec, 2010 09:04:42 Top
Ronald Siekman


Guest


Hi Andrei,

We almost found the problem at the same time.
Thanks for your response and support.
When will an update be available ?

Greetings

Ronald.
Posted 06 Dec, 2010 09:09:33 Top
Dmitry Kostochko


Add-in Express team


Posts: 2875
Joined: 2004-04-05
Hi Ronald,

The next Add-in Express build is scheduled for January 2011. I think you can use the sources modified by you without any problems until we publish the update.
Posted 06 Dec, 2010 10:13:10 Top