File indexing completed on 2023-03-17 11:01:34
0001 #ifndef Fireworks_FWInterface_FWFFNavigator_h
0002 #define Fireworks_FWInterface_FWFFNavigator_h
0003
0004 #include "Fireworks/Core/interface/FWNavigatorBase.h"
0005 #include "FWCore/Framework/interface/Event.h"
0006
0007 namespace edm {
0008 class EventBase;
0009 }
0010
0011 class FWFFNavigator : public FWNavigatorBase {
0012 public:
0013 enum FWFFNavigatorState { kNoTransition, kNextEvent, kPreviousEvent, kFirstEvent, kLastEvent };
0014
0015 FWFFNavigator(CmsShowMainBase &main)
0016 : FWNavigatorBase(main), m_currentEvent(nullptr), m_currentTransition(kNoTransition) {}
0017
0018 void addTo(FWConfiguration &) const override {}
0019 void setFrom(const FWConfiguration &) override {}
0020
0021 void nextEvent() override;
0022 void previousEvent() override;
0023
0024
0025 bool nextSelectedEvent() override {
0026 nextEvent();
0027 return true;
0028 }
0029 bool previousSelectedEvent() override {
0030 previousEvent();
0031 return true;
0032 }
0033
0034
0035
0036 void firstEvent() override;
0037 void lastEvent() override;
0038
0039 void goToRunEvent(edm::RunNumber_t, edm::LuminosityBlockNumber_t, edm::EventNumber_t) override {}
0040
0041
0042 bool isLastEvent() override { return false; }
0043 bool isFirstEvent() override { return m_currentEvent->id() == m_firstEventID; }
0044
0045 const edm::EventBase *getCurrentEvent() const override { return m_currentEvent; }
0046
0047 int getNSelectedEvents() override { return getNTotalEvents(); }
0048
0049
0050 int getNTotalEvents() override { return 0; }
0051
0052
0053 void setCurrentEvent(const edm::Event *);
0054 const edm::EventID &getFirstEventID();
0055 enum FWFFNavigatorState currentTransition() { return m_currentTransition; }
0056 void resetTransition() { m_currentTransition = kNoTransition; }
0057
0058 private:
0059 const edm::Event *m_currentEvent;
0060 edm::EventID m_firstEventID;
0061 enum FWFFNavigatorState m_currentTransition;
0062 };
0063
0064 #endif