ui: statusbar

statusbar added, listen to status- , error-  and parsingfinishedmessages
This commit is contained in:
Andreas Stallinger
2014-11-24 16:35:46 +01:00
parent 048fcb28b4
commit af4e3f7676
30 changed files with 392 additions and 6 deletions
+9
View File
@@ -32,6 +32,8 @@ add_files(
component/controller/GraphLayouter.h
component/controller/SearchController.cpp
component/controller/SearchController.h
component/controller/StatusBarController.cpp
component/controller/StatusBarController.h
component/view/graphElements/GraphEdge.cpp
component/view/graphElements/GraphEdge.h
@@ -46,6 +48,8 @@ add_files(
component/view/MainView.h
component/view/SearchView.cpp
component/view/SearchView.h
component/view/StatusBarView.cpp
component/view/StatusBarView.h
component/view/View.cpp
component/view/View.h
component/view/ViewFactory.cpp
@@ -191,6 +195,8 @@ add_files(
utility/math/VectorBase.h
utility/messaging/type/MessageActivateToken.h
utility/messaging/type/MessageActivateTokens.h
utility/messaging/type/MessageError.h
utility/messaging/type/MessageFind.h
utility/messaging/type/MessageFinishedParsing.h
utility/messaging/type/MessageGraphNodeExpand.h
@@ -198,8 +204,11 @@ add_files(
utility/messaging/type/MessageLoadProject.h
utility/messaging/type/MessageLoadSource.h
utility/messaging/type/MessageRefresh.h
utility/messaging/type/MessageSaveProject.h
utility/messaging/type/MessageSearch.h
utility/messaging/type/MessageSearchAutocomplete.h
utility/messaging/type/MessageShowFile.h
utility/messaging/type/MessageStatus.h
utility/messaging/Message.h
utility/messaging/MessageBase.h
+14
View File
@@ -4,9 +4,11 @@
#include "component/controller/CodeController.h"
#include "component/controller/GraphController.h"
#include "component/controller/SearchController.h"
#include "component/controller/StatusBarController.h"
#include "component/view/CodeView.h"
#include "component/view/GraphView.h"
#include "component/view/SearchView.h"
#include "component/view/StatusBarView.h"
#include "component/view/ViewFactory.h"
#include "component/view/ViewLayout.h"
@@ -52,6 +54,18 @@ std::shared_ptr<Component> ComponentFactory::createSearchComponent()
return component;
}
std::shared_ptr<Component> ComponentFactory::createStatusBarComponent()
{
std::shared_ptr<StatusBarView> view = m_viewFactory->createStatusBarView(m_viewLayout);
std::shared_ptr<StatusBarController> controller = std::make_shared<StatusBarController>();
std::shared_ptr<Component> component = std::make_shared<Component>(view,controller);
return component;
}
ComponentFactory::ComponentFactory()
{
}
+1
View File
@@ -22,6 +22,7 @@ public:
std::shared_ptr<Component> createCodeComponent();
std::shared_ptr<Component> createGraphComponent();
std::shared_ptr<Component> createSearchComponent();
std::shared_ptr<Component> createStatusBarComponent();
private:
ComponentFactory();
+3
View File
@@ -26,6 +26,9 @@ void ComponentManager::setup()
std::shared_ptr<Component> searchComponent = m_componentFactory->createSearchComponent();
m_components.push_back(searchComponent);
std::shared_ptr<Component> statusBarComponent = m_componentFactory->createStatusBarComponent();
m_components.push_back(statusBarComponent);
}
ComponentManager::ComponentManager()
@@ -0,0 +1,39 @@
#include "component/controller/StatusBarController.h"
#include "component/view/StatusBarView.h"
StatusBarController::StatusBarController()
{
}
StatusBarController::~StatusBarController()
{
}
StatusBarView* StatusBarController::getView()
{
return Controller::getView<StatusBarView>();
}
void StatusBarController::handleMessage(MessageFinishedParsing* message)
{
setStatus("Parsing Finished");
}
void StatusBarController::handleMessage(MessageStatus* message)
{
setStatus(message->status);
}
void StatusBarController::handleMessage(MessageError* message)
{
setStatus(message->error, true);
}
void StatusBarController::setStatus(const std::string& status, bool isError)
{
if(!status.empty())
getView()->showMessage(status, isError);
}
@@ -0,0 +1,35 @@
#ifndef STATUS_BAR_CONTROLLER_H
#define STATUS_BAR_CONTROLLER_H
#include <string>
#include "component/controller/Controller.h"
#include "utility/messaging/MessageListener.h"
#include "utility/messaging/type/MessageError.h"
#include "utility/messaging/type/MessageFinishedParsing.h"
#include "utility/messaging/type/MessageStatus.h"
class StatusBarView;
class StatusBarController
: public Controller
, public MessageListener<MessageError>
, public MessageListener<MessageFinishedParsing>
, public MessageListener<MessageStatus>
{
public:
StatusBarController(void);
~StatusBarController(void);
StatusBarView* getView();
private:
void setStatus(const std::string& status, bool isError = false);
virtual void handleMessage(MessageError* message);
virtual void handleMessage(MessageFinishedParsing* message);
virtual void handleMessage(MessageStatus* message);
};
#endif // STATUS_BAR_CONTROLLER_H
+4
View File
@@ -15,6 +15,10 @@ CodeView::CodeSnippetParams::CodeSnippetParams()
bool CodeView::CodeSnippetParams::sort( CodeSnippetParams a, CodeSnippetParams b )
{
if(a.isActive && b.isActive)
{
return false;
}
// sort active snippet first
if(a.isActive)
{
+1
View File
@@ -8,6 +8,7 @@ class MainView: public ViewLayout
public:
MainView();
virtual ~MainView();
};
#endif // MAIN_VIEW_H
+24
View File
@@ -0,0 +1,24 @@
#include "component/view/StatusBarView.h"
#include "component/controller/StatusBarController.h"
StatusBarView::StatusBarView(ViewLayout* viewLayout)
: View(viewLayout, Vec2i(100,100))
{
}
StatusBarView::~StatusBarView()
{
}
std::string StatusBarView::getName() const
{
return "StatusBarView";
}
StatusBarController* StatusBarView::getController()
{
return View::getController<StatusBarController>();
}
+20
View File
@@ -0,0 +1,20 @@
#ifndef STATUS_BAR_VIEW_H
#define STATUS_BAR_VIEW_H
#include "component/view/View.h"
class StatusBarController;
class StatusBarView : public View
{
public:
StatusBarView(ViewLayout* viewLayout);
~StatusBarView(void);
virtual std::string getName() const;
virtual void showMessage(const std::string& message, bool isError) = 0;
protected:
StatusBarController* getController();
};
#endif //STATUS_BAR_VIEW_H
+16
View File
@@ -16,6 +16,9 @@ public:
template<typename T>
static std::shared_ptr<T> create(ViewLayout* viewLayout);
template<typename T>
static std::shared_ptr<T> createAndDontAddToLayout(ViewLayout* viewLayout);
View(ViewLayout* viewLayout, const Vec2i& minSize);
virtual ~View();
@@ -60,6 +63,19 @@ std::shared_ptr<T> View::create(ViewLayout* viewLayout)
return ptr;
}
template<typename T>
std::shared_ptr<T> View::createAndDontAddToLayout(ViewLayout* viewLayout)
{
std::shared_ptr<T> ptr = std::make_shared<T>(viewLayout);
ptr->createWidgetWrapper();
ptr->initView();
//viewLayout->addView(ptr.get());
return ptr;
}
template <typename ControllerType>
ControllerType* View::getController()
{
+2
View File
@@ -7,6 +7,7 @@ class CodeView;
class GraphView;
class MainView;
class SearchView;
class StatusBarView;
class ViewLayout;
class ViewFactory
@@ -19,6 +20,7 @@ public:
virtual std::shared_ptr<CodeView> createCodeView(ViewLayout* viewLayout) const = 0;
virtual std::shared_ptr<GraphView> createGraphView(ViewLayout* viewLayout) const = 0;
virtual std::shared_ptr<SearchView> createSearchView(ViewLayout* viewLayout) const = 0;
virtual std::shared_ptr<StatusBarView> createStatusBarView(ViewLayout* viewLayout) const = 0;
};
#endif // VIEW_FACTORY_H
+2
View File
@@ -1,5 +1,7 @@
#include "data/search/SearchNode.h"
#include <algorithm>
#include "utility/text/Dictionary.h"
#include "data/search/SearchIndex.h"
+1
View File
@@ -2,6 +2,7 @@
#define SEARCH_RESULT_H
#include <set>
#include <stddef.h>
class SearchNode;
@@ -0,0 +1,26 @@
#ifndef MESSAGE_ERROR_H
#define MESSAGE_ERROR_H
#include "utility/messaging/Message.h"
#include "utility/types.h"
class MessageError: public Message<MessageError>
{
public:
MessageError(
const std::string& error
)
: error(error)
{
}
static const std::string getStaticType()
{
return "MessageError";
}
const std::string error;
};
#endif // MESSAGE_ERROR_H
@@ -0,0 +1,26 @@
#ifndef MESSAGE_STATUS_H
#define MESSAGE_STATUS_H
#include "utility/messaging/Message.h"
#include "utility/types.h"
class MessageStatus: public Message<MessageStatus>
{
public:
MessageStatus(
const std::string& status
)
: status(status)
{
}
static const std::string getStaticType()
{
return "MessageStatus";
}
const std::string status;
};
#endif // MESSAGE_STATUS_H
+1
View File
@@ -1,5 +1,6 @@
#include "utility/utilityString.h"
#include <algorithm>
#include <cctype>
#include <string>