00001
00002
00003
00004
00005
00006
00007 #include "CmdAbstract.h"
00008 #include "CmdAddPointAxis.h"
00009 #include "CmdAddPointGraph.h"
00010 #include "CmdAddPointsGraph.h"
00011 #include "CmdCopy.h"
00012 #include "CmdCut.h"
00013 #include "CmdDelete.h"
00014 #include "CmdEditPointAxis.h"
00015 #include "CmdEditPointGraph.h"
00016 #include "CmdFactory.h"
00017 #include "CmdMoveBy.h"
00018 #include "CmdRedoForTest.h"
00019 #include "CmdSelectCoordSystem.h"
00020 #include "CmdSettingsAxesChecker.h"
00021 #include "CmdSettingsColorFilter.h"
00022 #include "CmdSettingsCoords.h"
00023 #include "CmdSettingsCurveAddRemove.h"
00024 #include "CmdSettingsCurveProperties.h"
00025 #include "CmdSettingsDigitizeCurve.h"
00026 #include "CmdSettingsExportFormat.h"
00027 #include "CmdSettingsGeneral.h"
00028 #include "CmdSettingsGridRemoval.h"
00029 #include "CmdSettingsPointMatch.h"
00030 #include "CmdSettingsSegments.h"
00031 #include "CmdUndoForTest.h"
00032 #include "Document.h"
00033 #include "DocumentSerialize.h"
00034 #include "EngaugeAssert.h"
00035 #include "MainWindow.h"
00036 #include <QXmlStreamReader>
00037
00038 CmdFactory::CmdFactory ()
00039 {
00040 }
00041
00042 CmdAbstract *CmdFactory::createCmd (MainWindow &mainWindow,
00043 Document &document,
00044 QXmlStreamReader &reader)
00045 {
00046 CmdAbstract *cmd = 0;
00047
00048 QXmlStreamAttributes attributes = reader.attributes();
00049 if (!attributes.hasAttribute(DOCUMENT_SERIALIZE_CMD_TYPE) ||
00050 !attributes.hasAttribute(DOCUMENT_SERIALIZE_CMD_DESCRIPTION)) {
00051
00052
00053 ENGAUGE_ASSERT(false);
00054
00055 }
00056
00057
00058 QString cmdType = attributes.value(DOCUMENT_SERIALIZE_CMD_TYPE).toString();
00059 QString cmdDescription = attributes.value(DOCUMENT_SERIALIZE_CMD_DESCRIPTION).toString();
00060
00061 if (cmdType == DOCUMENT_SERIALIZE_CMD_ADD_POINT_AXIS) {
00062 cmd = new CmdAddPointAxis (mainWindow,
00063 document,
00064 cmdDescription,
00065 reader);
00066 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_ADD_POINT_GRAPH) {
00067 cmd = new CmdAddPointGraph (mainWindow,
00068 document,
00069 cmdDescription,
00070 reader);
00071 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_ADD_POINTS_GRAPH) {
00072 cmd = new CmdAddPointsGraph (mainWindow,
00073 document,
00074 cmdDescription,
00075 reader);
00076 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_COPY) {
00077 cmd = new CmdCopy (mainWindow,
00078 document,
00079 cmdDescription,
00080 reader);
00081 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_CUT) {
00082 cmd = new CmdCut (mainWindow,
00083 document,
00084 cmdDescription,
00085 reader);
00086 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_DELETE) {
00087 cmd = new CmdDelete (mainWindow,
00088 document,
00089 cmdDescription,
00090 reader);
00091 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_EDIT_POINT_AXIS) {
00092 cmd = new CmdEditPointAxis (mainWindow,
00093 document,
00094 cmdDescription,
00095 reader);
00096 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_EDIT_POINT_GRAPH) {
00097 cmd = new CmdEditPointGraph (mainWindow,
00098 document,
00099 cmdDescription,
00100 reader);
00101 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_MOVE_BY) {
00102 cmd = new CmdMoveBy (mainWindow,
00103 document,
00104 cmdDescription,
00105 reader);
00106 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_REDO_FOR_TEST) {
00107 cmd = new CmdRedoForTest (mainWindow,
00108 document,
00109 cmdDescription,
00110 reader);
00111 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_SELECT_COORD_SYSTEM) {
00112 cmd = new CmdSelectCoordSystem (mainWindow,
00113 document,
00114 cmdDescription,
00115 reader);
00116 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_SETTINGS_AXES_CHECKER) {
00117 cmd = new CmdSettingsAxesChecker (mainWindow,
00118 document,
00119 cmdDescription,
00120 reader);
00121 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_SETTINGS_COLOR_FILTER) {
00122 cmd = new CmdSettingsColorFilter (mainWindow,
00123 document,
00124 cmdDescription,
00125 reader);
00126 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_SETTINGS_COORDS) {
00127 cmd = new CmdSettingsCoords (mainWindow,
00128 document,
00129 cmdDescription,
00130 reader);
00131 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_SETTINGS_CURVE_ADD_REMOVE) {
00132 cmd = new CmdSettingsCurveAddRemove (mainWindow,
00133 document,
00134 cmdDescription,
00135 reader);
00136 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_SETTINGS_CURVE_PROPERTIES) {
00137 cmd = new CmdSettingsCurveProperties (mainWindow,
00138 document,
00139 cmdDescription,
00140 reader);
00141 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_SETTINGS_DIGITIZE_CURVE) {
00142 cmd = new CmdSettingsDigitizeCurve (mainWindow,
00143 document,
00144 cmdDescription,
00145 reader);
00146 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_SETTINGS_EXPORT) {
00147 cmd = new CmdSettingsExportFormat (mainWindow,
00148 document,
00149 cmdDescription,
00150 reader);
00151 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_SETTINGS_GENERAL) {
00152 cmd = new CmdSettingsGeneral (mainWindow,
00153 document,
00154 cmdDescription,
00155 reader);
00156 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_SETTINGS_GRID_REMOVAL) {
00157 cmd = new CmdSettingsGridRemoval (mainWindow,
00158 document,
00159 cmdDescription,
00160 reader);
00161 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_SETTINGS_POINT_MATCH) {
00162 cmd = new CmdSettingsPointMatch (mainWindow,
00163 document,
00164 cmdDescription,
00165 reader);
00166 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_SETTINGS_SEGMENTS) {
00167 cmd = new CmdSettingsSegments (mainWindow,
00168 document,
00169 cmdDescription,
00170 reader);
00171 } else if (cmdType == DOCUMENT_SERIALIZE_CMD_UNDO_FOR_TEST) {
00172 cmd = new CmdUndoForTest (mainWindow,
00173 document,
00174 cmdDescription,
00175 reader);
00176 } else {
00177
00178
00179 ENGAUGE_ASSERT (false);
00180
00181 }
00182
00183 return cmd;
00184 }