Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/UIElements/TextDialog.cpp

    r97ebf8 r86466e  
    88#include <iostream>
    99
    10 #include <Descriptors/AtomDescriptor.hpp>
    11 #include <Descriptors/AtomIdDescriptor.hpp>
    12 #include <Descriptors/MoleculeDescriptor.hpp>
    13 #include <Descriptors/MoleculeIdDescriptor.hpp>
    1410#include "UIElements/TextDialog.hpp"
    1511
    1612#include "World.hpp"
    1713#include "periodentafel.hpp"
     14#include "atom.hpp"
     15#include "molecule.hpp"
    1816#include "log.hpp"
    1917#include "verbose.hpp"
    2018
    21 #include "atom.hpp"
    22 #include "element.hpp"
    23 #include "molecule.hpp"
    24 #include "vector.hpp"
    25 
    2619using namespace std;
    2720
     
    4033}
    4134
    42 void TextDialog::queryBoolean(const char* title, bool* target, string description){
    43   registerQuery(new BooleanTextQuery(title,target,description));
    44 }
    45 
    4635void TextDialog::queryInt(const char* title, int* target, string description){
    4736  registerQuery(new IntTextQuery(title,target,description));
     
    5645}
    5746
    58 void TextDialog::queryAtom(const char* title, atom **target, string description) {
    59   registerQuery(new AtomTextQuery(title,target,description));
    60 }
    61 
    62 void TextDialog::queryMolecule(const char* title, molecule **target, string description) {
    63   registerQuery(new MoleculeTextQuery(title,target,description));
     47void TextDialog::queryMolecule(const char* title, molecule **target, MoleculeListClass *molecules, string description) {
     48  registerQuery(new MoleculeTextQuery(title,target,molecules,description));
    6449}
    6550
    6651void TextDialog::queryVector(const char* title, Vector *target,const double *const cellSize, bool check, string description) {
    6752  registerQuery(new VectorTextQuery(title,target,cellSize,check,description));
    68 }
    69 
    70 void TextDialog::queryBox(const char* title,double ** const cellSize, string description) {
    71   registerQuery(new BoxTextQuery(title,cellSize,description));
    7253}
    7354
     
    11394}
    11495
    115 TextDialog::BooleanTextQuery::BooleanTextQuery(string title, bool * _target, std::string _description) :
    116     Dialog::BooleanQuery(title,_target,_description)
    117 {}
    118 
    119 TextDialog::BooleanTextQuery::~BooleanTextQuery() {}
    120 
    121 bool TextDialog::BooleanTextQuery::handle() {
    122   bool badInput = false;
    123   char input = ' ';
    124   do{
    125     badInput = false;
    126     Log() << Verbose(0) << getTitle();
    127     cin >> input;
    128     if ((input == 'y' ) || (input == 'Y')) {
    129       tmp = true;
    130     } else if ((input == 'n' ) || (input == 'N')) {
    131       tmp = false;
    132     } else {
    133       badInput=true;
    134       cin.clear();
    135       cin.ignore(std::numeric_limits<streamsize>::max(),'\n');
    136       Log() << Verbose(0) << "Input was not of [yYnN]!" << endl;
    137     }
    138   } while(badInput);
    139   // clear the input buffer of anything still in the line
    140   cin.ignore(std::numeric_limits<streamsize>::max(),'\n');
    141   return true;
    142 }
    143 
    14496TextDialog::StringTextQuery::StringTextQuery(string title,string *_target, std::string _description) :
    14597    Dialog::StringQuery(title,_target,_description)
     
    177129}
    178130
    179 TextDialog::AtomTextQuery::AtomTextQuery(string title, atom **_target, std::string _description) :
    180     Dialog::AtomQuery(title,_target,_description)
    181 {}
    182 
    183 TextDialog::AtomTextQuery::~AtomTextQuery() {}
    184 
    185 bool TextDialog::AtomTextQuery::handle() {
    186   int idxOfAtom=0;
    187   bool badInput = false;
    188   do{
    189     badInput = false;
    190     Log() << Verbose(0) << getTitle();
    191     cin >> idxOfAtom;
    192     if(cin.fail()){
    193       badInput = true;
    194       cin.clear();
    195       cin.ignore(std::numeric_limits<streamsize>::max(),'\n');
    196       Log() << Verbose(0) << "Input was not a number!" << endl;
    197       continue;
    198     }
    199 
    200     tmp = World::getInstance().getAtom(AtomById(idxOfAtom));
    201     if(!tmp && idxOfAtom!=-1){
    202       Log() << Verbose(0) << "Invalid Atom Index" << endl;
    203       badInput = true;
    204     }
    205 
    206   } while(badInput);
    207   cin.ignore(std::numeric_limits<streamsize>::max(),'\n');
    208   return (idxOfAtom!=-1);
    209 }
    210 
    211 TextDialog::MoleculeTextQuery::MoleculeTextQuery(string title, molecule **_target, std::string _description) :
    212     Dialog::MoleculeQuery(title,_target,_description)
     131TextDialog::MoleculeTextQuery::MoleculeTextQuery(string title, molecule **_target, MoleculeListClass *_molecules, std::string _description) :
     132    Dialog::MoleculeQuery(title,_target,_molecules,_description)
    213133{}
    214134
     
    230150    }
    231151
    232     tmp = World::getInstance().getMolecule(MoleculeById(idxOfMol));
     152    tmp = molecules->ReturnIndex(idxOfMol);
    233153    if(!tmp && idxOfMol!=-1){
    234154      Log() << Verbose(0) << "Invalid Molecule Index" << endl;
     
    263183}
    264184
    265 TextDialog::BoxTextQuery::BoxTextQuery(std::string title, double ** const _cellSize, std::string _description) :
    266     Dialog::BoxQuery(title,_cellSize,_description)
    267 {}
    268 
    269 TextDialog::BoxTextQuery::~BoxTextQuery()
    270 {}
    271 
    272 bool TextDialog::BoxTextQuery::handle() {
    273   Log() << Verbose(0) << getTitle();
    274 
    275   std::string coords[6] = {"xx","xy","xz", "yy", "yz", "zz"};
    276   for (int i=0;i<6;i++) {
    277     Log() << Verbose(0) << coords[i] << ": ";
    278     cin >> tmp[i];
    279   }
    280   return true;
    281 }
    282185
    283186TextDialog::ElementTextQuery::ElementTextQuery(std::string title, const element **target, std::string _description) :
Note: See TracChangeset for help on using the changeset viewer.