AliDebug(1,Form("Creating dimension buttons for dataSource %s",dataSourceName));
- AliMUONVTrackerData* data = AliMUONPainterRegistry::Instance()->FindDataSource(dataSourceName);
+ AliMUONVTrackerData* data = AliMUONPainterRegistry::Instance()->DataSource(dataSourceName);
TGButtonGroup* bg = new TGButtonGroup(this,0,3,5,0,dataSourceName);
( ( data && dataIndex >= 0 ) ? data->DimensionName(dataIndex).Data() :
"")));
+ UpdateTypeButton();
+
Long_t param[] = { (Long_t)type, (Long_t)data,
(Long_t)dataIndex };
// find first the sender of the signal
- AliMUONVTrackerData* data = reinterpret_cast<AliMUONVTrackerData*>(gTQSender);
-
- TGButton* button = AliMUONPainterInterfaceHelper::FindButtonByUserData(*fDataSourceNames,data);
-
- if (button)
- {
- button->SetToolTipText(Form("%d events",data->NumberOfEvents()),250);
- }
+// AliMUONVTrackerData* data = reinterpret_cast<AliMUONVTrackerData*>(gTQSender);
+//
+// TGButton* button = AliMUONPainterInterfaceHelper::FindButtonByUserData(*fDataSourceNames,data);
+//
+// if (button)
+// {
+// button->SetToolTipText(Form("%d events",data->NumberOfEvents()),250);
+// }
}
//_____________________________________________________________________________
{
/// A data source has been unregistered : remove it from the interface
- AliDebug(1,Form("Unregistering %s",data->GetName()));
+ TGButton* button = AliMUONPainterInterfaceHelper::FindButtonByUserData(*fDataSourceNames,data);
+
+ TGButton* bd = AliMUONPainterInterfaceHelper::FindDownButton(*fDataSourceNames);
- TGButton* button = AliMUONPainterInterfaceHelper::FindButtonByName(*fDataSourceNames,
- data->GetName());
- AliMUONVTrackerData* check = reinterpret_cast<AliMUONVTrackerData*>(button->GetUserData());
- if ( !button || check != data )
+ if ( bd == button )
{
- AliError("Something is seriously wrong. Please check");
- return;
+ // selected data source is the one we are removing...
+ // revert to "none" before actually removing it.
+ SourceButtonWasClicked(1);
}
- fDataSourceNames->Remove(button);
- delete button;
- button->DestroyWindow();
-
- fDataSourceNames->Show();
+ AliMUONPainterInterfaceHelper::RemoveButton(*fDataSourceNames,button);
+
+ // do not forget to re-connect things
+ fDataSourceNames->Connect("Clicked(Int_t)","AliMUONPainterPlotSelector",
+ this,
+ "SourceButtonWasClicked(Int_t)");
+
TObject* o = fDimensionButtonMap->Remove(new TObjString(data->GetName()));
if (!o)
{
AliError("Remove failed. Please check");
}
+
+ fDataSourceNames->Show();
Layout();
}
(AliMUONPainterInterfaceHelper::FindButtonByUserData(*fDataSourceNames,
fCurrentData));
- AliMUONPainterInterfaceHelper::Select(*fDataSourceNames,button->GetTitle());
+ if ( button )
+ {
+ AliMUONPainterInterfaceHelper::Select(*fDataSourceNames,button->GetTitle());
- RestoreDimensionButtons(button->GetTitle(),kFALSE);
+ RestoreDimensionButtons(button->GetTitle(),kFALSE);
+ }
fDataSourceNames->Show();
}
AliMUONPainterPlotSelector::UpdateTypeButton()
{
/// Update the type buttons
-
+
AliDebug(1,Form("fCurrentType=%s",fCurrentType.Data()));
+ if (!fCurrentData)
+ {
+ AliMUONPainterInterfaceHelper::SetState(*fTypes,kFALSE);
+ }
+ else
+ {
+ // disable levels that cannot be handled by this data
+ TGTextButton* padButton = static_cast<TGTextButton*>
+ (AliMUONPainterInterfaceHelper::FindButtonByName(*fTypes,"PAD"));
+ if (padButton)
+ {
+ padButton->SetEnabled(fCurrentData->IsChannelLevelEnabled());
+ }
+ TGTextButton* manuButton = static_cast<TGTextButton*>
+ (AliMUONPainterInterfaceHelper::FindButtonByName(*fTypes,"MANU"));
+ if (manuButton)
+ {
+ manuButton->SetEnabled(fCurrentData->IsManuLevelEnabled());
+ }
+
+ }
+
TGTextButton* button = static_cast<TGTextButton*>
(AliMUONPainterInterfaceHelper::FindButtonByName(*fTypes,fCurrentType));
AliMUONPainterInterfaceHelper::Unselect(*fTypes,"*");
}
- if (!fCurrentData)
- {
- AliMUONPainterInterfaceHelper::SetState(*fTypes,kFALSE);
- }
-
+
fTypes->Show();
}