00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #pragma once
00021
00022 #include "SavableHeaders.h"
00023
00024 #include "Global.h"
00025 #include "Editor.h"
00026 #include "CommandObject.h"
00027 #include "CommandTable.h"
00028
00029 class OLCEditor : public Editor
00030 {
00031 public:
00032 typedef CommandObject<OLCEditor> SavableCommand;
00034 OLCEditor(UBSocket* sock);
00035 virtual ~OLCEditor(void);
00036
00037 virtual std::string lookup(const std::string& action);
00038 virtual void dispatch(const std::string& action, const std::string& argument);
00039
00040 virtual SavablePtr getEditing() = 0;
00041 virtual TableImplPtr getTable() = 0;
00042 virtual KeysPtr addNew() = 0;
00043
00044 virtual std::vector<std::string> getList() = 0;
00045 virtual std::vector<std::string> getCommands() = 0;
00046
00047 virtual void setEditing(KeysPtr keys) = 0;
00048
00049 void listCommands(const std::string& argument);
00050 void newSavable(const std::string& argument);
00051 void deleteSavable(const std::string& argument);
00052 void editSavable(const std::string& argument);
00053 void quitEditor(const std::string& argument);
00054 void doneEditing(const std::string& argument);
00055 void discardChanges(const std::string& argument);
00056 void listSavable(const std::string& argument);
00057
00058 private:
00059 CommandTable<OLCEditor> m_olccommands;
00060
00061 OLCEditor(const OLCEditor& rhs);
00062 };