#ifndef CODE_CONTROLLER_H #define CODE_CONTROLLER_H #include #include #include "utility/messaging/MessageListener.h" #include "utility/messaging/type/MessageActivateTokens.h" #include "utility/messaging/type/MessageFinishedParsing.h" #include "utility/messaging/type/MessageFocusIn.h" #include "utility/messaging/type/MessageFocusOut.h" #include "utility/messaging/type/MessageShowFile.h" #include "utility/types.h" #include "component/controller/helper/SnippetMerger.h" #include "component/controller/Controller.h" #include "component/view/CodeView.h" class StorageAccess; class TokenLocationCollection; class TokenLocationFile; class CodeController : public Controller , public MessageListener , public MessageListener , public MessageListener , public MessageListener , public MessageListener { public: CodeController(StorageAccess* storageAccess); ~CodeController(); private: static const uint s_lineRadius; virtual void handleMessage(MessageActivateTokens* message); virtual void handleMessage(MessageFinishedParsing* message); virtual void handleMessage(MessageFocusIn* message); virtual void handleMessage(MessageFocusOut* message); virtual void handleMessage(MessageShowFile* message); CodeView* getView(); std::vector getSnippetsForActiveTokenLocations( const TokenLocationCollection& collection, Id declarationId) const; std::vector getSnippetsForFile(std::shared_ptr file) const; std::shared_ptr buildMergerHierarchy( TokenLocation* location, SnippetMerger& fileScopedMerger, std::map>& mergers) const; StorageAccess* m_storageAccess; }; #endif // CODE_CONTROLLER_H