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