OPAL (Object Oriented Parallel Accelerator Library)
2.2.0
OPAL
|
This class contains all data for the sequence editor. More...
#include <Edit.h>
Public Types | |
typedef Sequence::TLine | TLine |
The type of line contained in a sequence. More... | |
typedef Sequence::TLine::iterator | iterator |
The line iterator for a sequence. More... | |
Public Member Functions | |
Edit (Sequence *) | |
Constructor. More... | |
~Edit () | |
bool | cycle (const PlaceRep &start) |
Cycle the edit sequence. More... | |
void | finish (const std::string &newName) |
Finish editing. More... | |
void | flatten () |
Flatten the edit sequence. More... | |
int | installMultiple (ElementBase *, double) |
Install multiple elements. More... | |
int | installSingle (const PlaceRep &, ElementBase *, double) |
Install element relative to place. More... | |
int | moveMultiple (double by) |
Move multiple elements. More... | |
int | moveSingleAbs (const PlaceRep &, double to) |
Move single element. More... | |
int | moveSingleRel (const PlaceRep &, const PlaceRep &, double to) |
Move single element. More... | |
void | reflect () |
Reflect the edit sequence. More... | |
int | removeMultiple () |
Remove multiple elements. More... | |
int | removeSingle (const PlaceRep &) |
Remove single element. More... | |
int | replaceMultiple (ElementBase *elem) |
Replace multiple elements. More... | |
int | replaceSingle (const PlaceRep &, ElementBase *elem) |
Replace single element. More... | |
int | select (const RangeRep &rng, const std::string &cls, const std::string &typ, const std::string &patt) |
Select elements in the edit sequence. More... | |
void | selectClear () |
Clear all selection flags. More... | |
void | selectFull () |
Set all selection flags. More... | |
Public Attributes | |
Pointer< Sequence > | itsSequence |
The original sequence. More... | |
Pointer< TLine > | itsLine |
The edit sequence. More... | |
bool | isModified |
Modify flag. More... | |
EditParser | parser |
The parser used during a sequence edit. More... | |
Static Public Attributes | |
static Edit * | block = 0 |
Pointer to the edit data. More... | |
Private Member Functions | |
Edit () | |
Edit (const Edit &) | |
void | operator= (const Edit &) |
void | install (TLine &, ElementBase *, double) |
int | installMultiple (bool, TLine &, ElementBase *, double) |
int | installSingle (bool, TLine &, PlaceRep &, ElementBase *, double) |
void | merge (TLine &, TLine &) |
int | moveMultiple (bool, TLine &, double by) |
int | moveSingleAbs (bool, TLine &, PlaceRep &, double to) |
int | moveSingleRel (bool, TLine &, PlaceRep &, PlaceRep &, double to) |
TLine * | reflect (TLine &) |
int | removeMultiple (bool, TLine &) |
int | removeSingle (bool, TLine &, PlaceRep &) |
int | replaceMultiple (bool, TLine &, ElementBase *elem) |
int | replaceSingle (bool, TLine &, PlaceRep &, ElementBase *elem) |
void | invalidLine (const char msg[]) |
void | invalidShare (const char msg[]) |
typedef Sequence::TLine::iterator Edit::iterator |
typedef Sequence::TLine Edit::TLine |
Edit::Edit | ( | Sequence * | seq | ) |
Constructor.
Definition at line 152 of file Edit.cpp.
References Sequence::copy(), Sequence::fetchLine(), Object::getOpalName(), itsLine, and selectClear().
|
private |
|
private |
bool Edit::cycle | ( | const PlaceRep & | start | ) |
Cycle the edit sequence.
Definition at line 164 of file Edit.cpp.
References PlaceRep::enter(), Sequence::getLength(), PlaceRep::isActive(), isModified, itsLine, itsSequence, and PlaceRep::leave().
void Edit::finish | ( | const std::string & | newName | ) |
Finish editing.
Definition at line 224 of file Edit.cpp.
References Sequence::clone(), Object::copyAttributes(), OpalData::define(), OpalData::find(), OpalData::getInstance(), Object::getOpalName(), isModified, itsLine, itsSequence, OpalData::makeDirty(), selectClear(), Sequence::storeLine(), and Sequence::update().
Referenced by EditEnd::execute().
void Edit::flatten | ( | ) |
Flatten the edit sequence.
Definition at line 247 of file Edit.cpp.
References Sequence::addEndMarkers(), Sequence::getReference(), Sequence::insertDrifts(), isModified, itsLine, and itsSequence.
Referenced by EditFlatten::execute().
|
private |
Definition at line 335 of file Edit.cpp.
References ElementBase::copyStructure(), Element::find(), SequenceMember::GENERATED, ElementBase::getName(), SequenceMember::GLOBAL, SequenceMember::itsPosition, SequenceMember::itsType, SequenceMember::OpalElement, ElmPtr::setElement(), and ElementBase::setName().
Referenced by installMultiple().
int Edit::installMultiple | ( | ElementBase * | elm, |
double | at | ||
) |
Install multiple elements.
Definition at line 259 of file Edit.cpp.
References itsLine.
Referenced by EditInstall::execute(), and installMultiple().
|
private |
Definition at line 360 of file Edit.cpp.
References install(), installMultiple(), invalidLine(), invalidShare(), ElementBase::isSharable(), merge(), ElementBase::removeWrappers(), and Options::warn.
int Edit::installSingle | ( | const PlaceRep & | pos, |
ElementBase * | elm, | ||
double | at | ||
) |
Install element relative to place.
Definition at line 264 of file Edit.cpp.
References itsLine.
Referenced by EditInstall::execute().
|
private |
Definition at line 398 of file Edit.cpp.
References PlaceRep::enter(), PlaceRep::isActive(), ElementBase::isSharable(), PlaceRep::leave(), ElementBase::removeWrappers(), and Options::warn.
|
private |
Definition at line 825 of file Edit.cpp.
References endl(), and Options::warn.
Referenced by installMultiple(), moveMultiple(), moveSingleAbs(), removeMultiple(), removeSingle(), replaceMultiple(), and replaceSingle().
|
private |
Definition at line 833 of file Edit.cpp.
References endl(), and Options::warn.
Referenced by installMultiple(), moveMultiple(), moveSingleAbs(), removeMultiple(), removeSingle(), replaceMultiple(), and replaceSingle().
Definition at line 439 of file Edit.cpp.
References isModified.
Referenced by installMultiple(), moveMultiple(), and moveSingleAbs().
int Edit::moveMultiple | ( | double | by | ) |
Move multiple elements.
Definition at line 270 of file Edit.cpp.
References itsLine.
Referenced by EditMove::execute(), and moveMultiple().
|
private |
Definition at line 479 of file Edit.cpp.
References invalidLine(), invalidShare(), isModified, ElementBase::isSharable(), merge(), moveMultiple(), ElementBase::removeWrappers(), and Options::warn.
int Edit::moveSingleAbs | ( | const PlaceRep & | pos, |
double | to | ||
) |
Move single element.
Definition at line 275 of file Edit.cpp.
References itsLine.
Referenced by EditMove::execute(), and moveSingleAbs().
Definition at line 522 of file Edit.cpp.
References PlaceRep::enter(), invalidLine(), invalidShare(), PlaceRep::isActive(), isModified, ElementBase::isSharable(), PlaceRep::leave(), merge(), moveSingleAbs(), ElementBase::removeWrappers(), and Options::warn.
Move single element.
Definition at line 281 of file Edit.cpp.
References itsLine.
Referenced by EditMove::execute().
|
private |
Definition at line 569 of file Edit.cpp.
References PlaceRep::enter(), PlaceRep::initialize(), PlaceRep::isActive(), ElementBase::isSharable(), PlaceRep::leave(), ElementBase::removeWrappers(), and Options::warn.
|
private |
void Edit::reflect | ( | ) |
Reflect the edit sequence.
Definition at line 288 of file Edit.cpp.
References itsLine.
Referenced by EditReflect::execute().
|
private |
Definition at line 630 of file Edit.cpp.
References ElementBase::getName(), FlaggedElmPtr::getReflectionFlag(), isModified, SequenceMember::itsPosition, and FlaggedElmPtr::setReflectionFlag().
int Edit::removeMultiple | ( | ) |
Remove multiple elements.
Definition at line 293 of file Edit.cpp.
References itsLine.
Referenced by EditRemove::execute(), and removeMultiple().
|
private |
Definition at line 652 of file Edit.cpp.
References invalidLine(), invalidShare(), isModified, ElementBase::isSharable(), removeMultiple(), ElementBase::removeWrappers(), and Options::warn.
int Edit::removeSingle | ( | const PlaceRep & | pos | ) |
Remove single element.
Definition at line 298 of file Edit.cpp.
References itsLine.
Referenced by EditRemove::execute(), and removeSingle().
Definition at line 692 of file Edit.cpp.
References PlaceRep::enter(), invalidLine(), invalidShare(), PlaceRep::isActive(), isModified, ElementBase::isSharable(), PlaceRep::leave(), removeSingle(), ElementBase::removeWrappers(), and Options::warn.
int Edit::replaceMultiple | ( | ElementBase * | elem | ) |
Replace multiple elements.
Definition at line 304 of file Edit.cpp.
References itsLine.
Referenced by EditReplace::execute(), and replaceMultiple().
|
private |
Definition at line 736 of file Edit.cpp.
References Element::find(), ElementBase::getName(), invalidLine(), invalidShare(), isModified, ElementBase::isSharable(), ElementBase::removeWrappers(), replaceMultiple(), and Options::warn.
int Edit::replaceSingle | ( | const PlaceRep & | pos, |
ElementBase * | elem | ||
) |
Replace single element.
Definition at line 309 of file Edit.cpp.
References itsLine.
Referenced by EditReplace::execute(), and replaceSingle().
|
private |
Definition at line 779 of file Edit.cpp.
References PlaceRep::enter(), Element::find(), ElementBase::getName(), invalidLine(), invalidShare(), PlaceRep::isActive(), isModified, ElementBase::isSharable(), PlaceRep::leave(), ElementBase::removeWrappers(), replaceSingle(), and Options::warn.
int Edit::select | ( | const RangeRep & | rng, |
const std::string & | cls, | ||
const std::string & | typ, | ||
const std::string & | patt | ||
) |
Select elements in the edit sequence.
Definition at line 315 of file Edit.cpp.
References Selector::execute(), Selector::getCount(), and itsLine.
Referenced by EditSelect::execute().
void Edit::selectClear | ( | ) |
Clear all selection flags.
Definition at line 323 of file Edit.cpp.
References DefaultVisitor::execute(), and itsLine.
Referenced by Edit(), EditSelect::execute(), and finish().
void Edit::selectFull | ( | ) |
Set all selection flags.
Definition at line 329 of file Edit.cpp.
References DefaultVisitor::execute(), and itsLine.
Referenced by EditSelect::execute().
|
static |
Pointer to the edit data.
Definition at line 134 of file Edit.h.
Referenced by EditCmd::execute(), EditCycle::execute(), EditReplace::execute(), EditFlatten::execute(), EditReflect::execute(), EditMove::execute(), EditSelect::execute(), EditRemove::execute(), EditEnd::execute(), and EditInstall::execute().
bool Edit::isModified |
Modify flag.
Definition at line 128 of file Edit.h.
Referenced by cycle(), finish(), flatten(), merge(), moveMultiple(), moveSingleAbs(), reflect(), removeMultiple(), removeSingle(), replaceMultiple(), and replaceSingle().
The edit sequence.
Definition at line 124 of file Edit.h.
Referenced by cycle(), Edit(), finish(), flatten(), installMultiple(), installSingle(), moveMultiple(), moveSingleAbs(), moveSingleRel(), reflect(), removeMultiple(), removeSingle(), replaceMultiple(), replaceSingle(), select(), selectClear(), and selectFull().
EditParser Edit::parser |
The parser used during a sequence edit.
Definition at line 131 of file Edit.h.
Referenced by EditCmd::execute(), and EditEnd::execute().