OptimizeLayoutAlgo Class Reference

#include <optimizelayoutalgo.h>

Inheritance diagram for OptimizeLayoutAlgo:

Inheritance graph
[legend]
Collaboration diagram for OptimizeLayoutAlgo:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 OptimizeLayoutAlgo (TrapperDoc *pDoc_, std::set< db_recno_t > &recnoList, AlgoParam *param)
void start ()

Detailed Description

Definition at line 6 of file optimizelayoutalgo.h.


Constructor & Destructor Documentation

OptimizeLayoutAlgo::OptimizeLayoutAlgo ( TrapperDoc pDoc_,
std::set< db_recno_t > &  recnoList,
AlgoParam param 
) [inline]

Definition at line 9 of file optimizelayoutalgo.h.

00009 : Algo(pDoc_, recnoList, param) {}


Member Function Documentation

void OptimizeLayoutAlgo::start (  )  [virtual]

Implements Algo.

Definition at line 14 of file optimizelayoutalgo.cc.

References QInputDialog::getInteger(), TrapperView::mousePressedRow(), Algo::my_param, optimize_layout(), Algo::pDoc, Algo::selectedReads, and ViewParam::view().

00015 {
00016 
00017   if ( selectedReads.empty() ) {
00018     return;
00019   }
00020 
00021   ViewParam* param = dynamic_cast<ViewParam*>(my_param);
00022   assert(param);
00023 
00024   bool ok;
00025   int res = QInputDialog::getInteger(
00026                                      "Optimize Layout", "Enter start row for selected reads:", param->view()->mousePressedRow(), 1, numeric_limits<int>::max(), 1,
00027                                      &ok, 0 );
00028   
00029   size_t row(1);
00030   if ( ok ) {
00031     // user entered something and pressed OK
00032     row = res;
00033   } else {
00034     // user pressed Cancel
00035     return;
00036   }
00037 
00038   optimize_layout(row, selectedReads, pDoc);
00039 
00040 //   cerr<<"Inserting..."<<endl;
00041   
00042 //   multiset<sort_struct, compBeg> set_begin;
00043 
00044 //   for (set< db_recno_t >::iterator it = selectedReads.begin(); it != selectedReads.end(); it++ ){
00045 
00046 //     Database::PrimaryIterator<ReadData> read_it(pDoc, "ReadData");
00047 //     int ret_read = read_it.setFromRecno(*it);
00048 //     ReadData* r_test = (ret_read != DB_NOTFOUND) ? read_it.answer() : 0;
00049 //     assert( r_test );
00050 //     assert( ret_read == 0 );
00051     
00052 //     sort_struct s;
00053 //     s.begin = r_test->startPos();
00054 //     s.end = r_test->endPos() + 1;
00055 //     s.ID = *it;
00056     
00057 //     set_begin.insert(s);
00058     
00059 //   }
00060 // //   cerr<<"Reading..."<<endl;
00061   
00062 //   multiset<sort_struct, compBeg>::iterator it = set_begin.begin();
00063 //   sort_struct tmp(*it);
00064 //   tmp.begin = tmp.end;
00065 //   vector<sort_struct> row_vec;
00066 //   row_vec.push_back(tmp);
00067 
00068 //   vector<sort_struct> result_vec;
00069 //   tmp.row = row;
00070 //   result_vec.push_back(tmp);
00071 //   set_begin.erase( set_begin.begin() );
00072   
00073 //   while ( !set_begin.empty() ) {
00074 //     it = set_begin.lower_bound( row_vec[ row_vec.size() - 1 ] );
00075     
00076 //     if ( it == set_begin.end() ) {
00077 //       //New row
00078       
00079 //       row_vec.clear();
00080 //       ++row;
00081 //       it = set_begin.begin();
00082 //     }
00083     
00084 //     tmp = *it;
00085 //     tmp.begin = tmp.end;
00086 //     row_vec.push_back(tmp);
00087 
00088 //     tmp.row = row;
00089 //     result_vec.push_back(tmp);
00090 //     set_begin.erase(it);
00091 //   } 
00092 // //   cerr<<"Writing..."<<endl;
00093 
00094 //   for( size_t i = 0; i < result_vec.size(); i++ ) {
00095 //     Database::PrimaryIterator<ReadData>* read_it = new Database::PrimaryIterator<ReadData>(pDoc, "ReadData");
00096 //     int ret_read = read_it->setFromRecno(result_vec[i].ID);
00097 //     ReadData* r_test = (ret_read != DB_NOTFOUND) ? read_it->answer() : 0;
00098 //     assert( r_test );
00099 //     assert( ret_read == 0 );
00100 
00101 //     Database::Creator<ReadData> a_creator(pDoc, "ReadData");
00102     
00103 //     a_creator.data()->copy(r_test);
00104 //     a_creator.data()->setRecno(result_vec[i].ID);
00105 //     a_creator.data()->setRow(result_vec[i].row);
00106     
00107 //     delete read_it;
00108 //     a_creator.create(true);
00109     
00110 //   }
00111   
00112 }


The documentation for this class was generated from the following files:
Generated on Fri Jul 17 20:19:50 2009 for ngsview by  doxygen 1.5.1