Isis 3 Programmer Reference
TargetGetInfoWorkOrder.cpp
Go to the documentation of this file.
1
24
25#include <QFileDialog>
26#include <QInputDialog>
27#include <QtDebug>
28
29#include "Directory.h"
30#include "IException.h"
31#include "Project.h"
32#include "TargetBody.h"
33#include "TargetInfoWidget.h"
34
35namespace Isis {
36
46 WorkOrder(project) {
47 QAction::setText(tr("Get Info...") );
48 // This work order is not undoable
49 m_isUndoable = false;
50 m_isSavedToHistory = false;
51 }
52
53
61
62
68
69
77
78
90 if (!targetBody)
91 return false;
92
93 // if we already have a view for this target, don't redisplay
94 QList<TargetInfoWidget *> existingViews = project()->directory()->targetInfoViews();
95 for (int i = 0; i < existingViews.size(); i++) {
96 if (existingViews.at(i)->objectName() == targetBody->displayProperties()->displayName() )
97 return false;
98 }
99
100 return true;
101 }
102
103
112 bool success = WorkOrder::setupExecution();
113
114 if (success) {
115 QString targetDisplayName = targetBody()->displayProperties()->displayName();
116 QUndoCommand::setText(tr("Get %1 target info").arg(targetDisplayName));
117
119 internalData.append(targetDisplayName);
121 }
122
123 return success;
124 }
125
126
133
134 TargetInfoWidget *targetInfoWidget =
136
137 if (!targetInfoWidget) {
138 QString msg = "error displaying target info";
139 throw IException(IException::Programmer, msg, _FILEINFO_);
140 }
141 }
142
143
150 // depend on types of ourselves.
151 return dynamic_cast<TargetGetInfoWorkOrder *>(other);
152 }
153}
TargetInfoWidget * addTargetInfoView(TargetBodyQsp target)
Add target body data view widget to the window.
QList< TargetInfoWidget * > targetInfoViews()
Accessor for the list of TargetInfoWidgets currently available.
Isis exception class.
Definition IException.h:91
@ Programmer
This error is for when a programmer made an API call that was illegal.
Definition IException.h:146
The main project for ipce.
Definition Project.h:289
Directory * directory() const
Returns the directory associated with this Project.
Definition Project.cpp:1228
This work order allows the user to view target body info.
virtual void execute()
Executes this work order.
virtual TargetGetInfoWorkOrder * clone() const
Returns a copy of this TargetGetInfoWorkOrder instance.
virtual bool setupExecution()
Attempt to retrieve the Target info.
TargetGetInfoWorkOrder(Project *project)
Creates a WorkOrder that will retrieve Target info.
bool dependsOn(WorkOrder *other) const
Determines whether another WorkOrder depends upon TargetGetInfoWorkOrder.
virtual bool isExecutable(TargetBodyQsp targetBody)
Determines if we can get target info.
Widget for displaying information about a target.
Provide Undo/redo abilities, serialization, and history for an operation.
Definition WorkOrder.h:311
bool m_isSavedToHistory
Set the work order to be shown in the HistoryTreeWidget.
Definition WorkOrder.h:537
bool m_isUndoable
Set the workorder to be undoable/redoable This is defaulted to true - his will allow the workorder to...
Definition WorkOrder.h:523
virtual bool setupExecution()
This sets up the state for the work order.
QStringList internalData() const
Gets the internal data for this WorkOrder.
TargetBodyQsp targetBody()
WorkOrder::targetBody.
void setInternalData(QStringList data)
Sets the internal data for this WorkOrder.
Project * project() const
Returns the Project this WorkOrder is attached to.
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16