qcpix/tsrc/orbitsearch/searchhelper.cpp
author hgs
Mon, 09 Aug 2010 10:51:30 +0530
changeset 14 8bd192d47aaa
parent 13 fcb2a58c181b
permissions -rw-r--r--
201031
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
*
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
* Initial Contributors:
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
*
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
* Contributors:
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
*
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
* Description: 
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
*
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
*/
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
#include "searchhelper.h"
13
hgs
parents: 7
diff changeset
    19
#include <cpixdocument.h>
0
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
14
hgs
parents: 13
diff changeset
    21
SearchHelper::SearchHelper(HbLineEdit* searchBx, HbPushButton* searchBtn, HbTextEdit* searchRslt, HbLineEdit* indexBox, HbLineEdit* countBox, HbPushButton* getdocbutton)
hgs
parents: 13
diff changeset
    22
    :searchBox( searchBx ), searchButton( searchBtn ), resultsBox( searchRslt ), indexBox(indexBox), countBox(countBox), getdocbutton(getdocbutton)
0
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
    {
13
hgs
parents: 7
diff changeset
    24
    searcher = CpixSearcher::newInstance("root","_aggregate");
0
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
    resultsBox->setReadOnly( true );
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
    resultsBox->setPlainText("Initialized");
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
    searchTime.start();
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
    }
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
SearchHelper::~SearchHelper()
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
    {
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
    delete searcher;
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
    }
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
void SearchHelper::doSearch()
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
    {
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
    resultsBox->setPlainText("Search button clicked!");
14
hgs
parents: 13
diff changeset
    38
    resultString = "";
0
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
    resultsBox->setPlainText( resultString );
1
6f2c1c46032b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
    40
    searchTime.restart();
2
6c1a2771f4b7 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
    41
    QString searchString;
13
hgs
parents: 7
diff changeset
    42
    
hgs
parents: 7
diff changeset
    43
#if PREFIX_SEARCH
2
6c1a2771f4b7 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
    44
    searchString = "$prefix(\""; 
6c1a2771f4b7 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
    45
    searchString += searchBox->text();
6c1a2771f4b7 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
    46
    searchString += "\")";
1
6f2c1c46032b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
    47
13
hgs
parents: 7
diff changeset
    48
#elif STAR_SEARCH
2
6c1a2771f4b7 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
    49
    searchString += searchBox->text();
1
6f2c1c46032b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
    50
    searchString += "*";
6f2c1c46032b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
    51
#elif NO_STAR_SEARCH
14
hgs
parents: 13
diff changeset
    52
    searchString = searchBox->text();
1
6f2c1c46032b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
    53
        ;//do nothing
6f2c1c46032b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
    54
#endif
14
hgs
parents: 13
diff changeset
    55
    iHits = 0;
hgs
parents: 13
diff changeset
    56
    iHits = searcher->search( searchString );
2
6c1a2771f4b7 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
    57
6c1a2771f4b7 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
    58
    if (searchTime.elapsed() >= 0)
6c1a2771f4b7 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 1
diff changeset
    59
        resultString = "SearchTime: " + QString().setNum( searchTime.elapsed() ) + " ms \r\n";
14
hgs
parents: 13
diff changeset
    60
    resultString += "Hits: " + QString().setNum( iHits ) + "\r\n";
0
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    61
    resultsBox->setPlainText( resultString );
1
6f2c1c46032b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
    62
6f2c1c46032b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
    63
#if !DONT_SHOW_RESULTS
14
hgs
parents: 13
diff changeset
    64
    if( iHits > 0 )
0
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    65
        {
14
hgs
parents: 13
diff changeset
    66
        resultString += "Enter Index,count values and press GetDocs button to get the results";
hgs
parents: 13
diff changeset
    67
        resultString +="\r\n";
hgs
parents: 13
diff changeset
    68
        resultsBox->setPlainText( resultString );
0
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    69
        }
1
6f2c1c46032b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 0
diff changeset
    70
#endif //DONT_SHOW_RESULTS
0
671dee74050a Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    71
    }
14
hgs
parents: 13
diff changeset
    72
hgs
parents: 13
diff changeset
    73
void SearchHelper::showdocs()
hgs
parents: 13
diff changeset
    74
    {
hgs
parents: 13
diff changeset
    75
    QString indexstring = indexBox->text();
hgs
parents: 13
diff changeset
    76
    bool ok = false;
hgs
parents: 13
diff changeset
    77
    int index = indexstring.toInt(&ok);
hgs
parents: 13
diff changeset
    78
    if (ok)
hgs
parents: 13
diff changeset
    79
        {
hgs
parents: 13
diff changeset
    80
        QString countstring = countBox->text();
hgs
parents: 13
diff changeset
    81
        int count = countstring.toInt(&ok);
hgs
parents: 13
diff changeset
    82
        if (ok)
hgs
parents: 13
diff changeset
    83
            {
hgs
parents: 13
diff changeset
    84
            if ( index <= iHits )
hgs
parents: 13
diff changeset
    85
                {
hgs
parents: 13
diff changeset
    86
                if ( count == 1)
hgs
parents: 13
diff changeset
    87
                    {
hgs
parents: 13
diff changeset
    88
                    //call the normal get doc API
hgs
parents: 13
diff changeset
    89
                    CpixDocument* temp = NULL;
hgs
parents: 13
diff changeset
    90
                    do{
hgs
parents: 13
diff changeset
    91
                      temp = searcher->document( index++ );
hgs
parents: 13
diff changeset
    92
                      resultString += temp->baseAppClass() + " " + temp->docId() + " " + temp->excerpt() + "\r\n\r\n";
hgs
parents: 13
diff changeset
    93
                      delete temp;
hgs
parents: 13
diff changeset
    94
                      }while( iHits > index );
hgs
parents: 13
diff changeset
    95
                    }
hgs
parents: 13
diff changeset
    96
                else
hgs
parents: 13
diff changeset
    97
                    {
hgs
parents: 13
diff changeset
    98
                    //call batch doc API
hgs
parents: 13
diff changeset
    99
                    CpixDocument** temp = NULL;
hgs
parents: 13
diff changeset
   100
                    do{
hgs
parents: 13
diff changeset
   101
                       int retdoccount = 0;
hgs
parents: 13
diff changeset
   102
                       temp = searcher->batchdocument(index,retdoccount,count);
hgs
parents: 13
diff changeset
   103
                       for (int i=0; i< retdoccount; i++)
hgs
parents: 13
diff changeset
   104
                           {
hgs
parents: 13
diff changeset
   105
                           resultString += temp[i]->baseAppClass() + " " + temp[i]->docId() + " " + temp[i]->excerpt() + "\r\n\r\n";
hgs
parents: 13
diff changeset
   106
                           delete temp[i];
hgs
parents: 13
diff changeset
   107
                           }
hgs
parents: 13
diff changeset
   108
                        delete temp;
hgs
parents: 13
diff changeset
   109
                        temp = NULL;
hgs
parents: 13
diff changeset
   110
                        index += retdoccount;
hgs
parents: 13
diff changeset
   111
                    }while (iHits > index);
hgs
parents: 13
diff changeset
   112
                    }
hgs
parents: 13
diff changeset
   113
                }
hgs
parents: 13
diff changeset
   114
            else resultString += " Requested document is out of range";
hgs
parents: 13
diff changeset
   115
            resultsBox->setPlainText( resultString );
hgs
parents: 13
diff changeset
   116
            }
hgs
parents: 13
diff changeset
   117
        }
hgs
parents: 13
diff changeset
   118
    }