root/Concordance.hpp

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


   1 /* -*- coding: utf-8; mode: c++; -*-
   2  * Concordance to A. S. Pushkin's Works - Concordance header
   3  * $Id: Concordance.hpp 16 2013-11-04 16:38:10Z isao $
   4  * Copyright (C) 2012, isao yasuda
   5  */
   6 
   7 #ifndef CONCORDANCE_CLASSDEF
   8 #define CONCORDANCE_CLASSDEF
   9 
  10 #include <Wt/WServer>
  11 #include <Wt/WApplication>
  12 #include <Wt/WResource>
  13 #include <Wt/WContainerWidget>
  14 #include <Wt/WEnvironment>
  15 #include <Wt/WHBoxLayout>
  16 #include <Wt/WTabWidget>
  17 #include <Wt/WLineEdit>
  18 #include <Wt/WIntValidator>
  19 #include <Wt/WGroupBox>
  20 #include <Wt/WButtonGroup>
  21 #include <Wt/WRadioButton>
  22 #include <Wt/WPushButton>
  23 #include <Wt/WCheckBox>
  24 #include <Wt/WTable>
  25 #include <Wt/WTableCell>
  26 #include <Wt/WText>
  27 #include <Wt/WBreak>
  28 #include <Wt/WAnimation>
  29 #include <boost/tokenizer.hpp>
  30 #include <boost/locale.hpp>
  31 #include <boost/timer.hpp>
  32 #include <boost/regex.hpp>
  33 #include <boost/bind.hpp>
  34 #include "SharedMemoryCommon.hpp"
  35 #include "SharedMemoryTree.hpp"
  36 #include "RussianLemmatizer.hpp"
  37 #include "Query.hpp"
  38 #include "DeclareFunctions.hpp"
  39 
  40 using namespace Wt;
  41 using namespace boost::interprocess;
  42 typedef std::pair<std::string, std::string> string_type;
  43 
  44 // KWIC 最大行
  45 static const int MAXLINES = 10000;
  46 // 近接隣接距離最大値
  47 extern int MAXDIST;
  48 // キーボードタイプ
  49 enum kbdtype { none = 0, yawerty = 1, jcuken = 2 };
  50 // Wt ロギング種別
  51 enum logkind { INFO = 0, WARN = 1, ERROR = 2 };
  52 // Wt ロギング
  53 void logging(const char* mesg, logkind kind);
  54 // UserAgent チェック
  55 bool checkAgent(std::string& agent);
  56 
  57 // コンコーダンスクラス
  58 class Concordance : public WApplication {
  59     WLineEdit*    expEdit;   // 式入力エリア
  60     WPushButton*  button1;   // サブミットボタン
  61     WButtonGroup* wbg0;      // 見出語形 or 出現形 ツリー選択ボタングループ
  62     WButtonGroup* wbg1;      // 見出語変換選択ボタングループ
  63     WGroupBox*    gbox;      // ジャンルチェックボックス
  64     WCheckBox    *g0, *g1, *g2, *g3, *g4, *g5, *g6, *g7,
  65                  *g8, *g9, *g10, *g11, *g12; // ジャンル 00-11 + 12(all)
  66     WLineEdit* lenpEdit;     // 前テキスト長エリア
  67     WLineEdit* lenaEdit;     // 後テキスト長エリア
  68     std::vector<int> genrev; // 対象ジャンル vector
  69     WText*  wmesg;           // 式ラベル
  70     WText*  pmesg;           // 式出力エリア
  71     WText*  cmesg;           // エラー/終了メッセージエリア
  72     WText*  foot;            // footer 出力エリア
  73     WTable* ctbl;            // コンコーダンス KWIC 表
  74     WTabWidget* tabs;        // tab
  75     WContainerWidget* frame; // 全体フレーム
  76     WContainerWidget* iframe;// input area frame
  77     WContainerWidget* iarea; // input area
  78     WContainerWidget* kwic;  // KWIC tab
  79     WContainerWidget* opts;  // option tab
  80     WContainerWidget* rkbd;  // keyboard tab
  81     WContainerWidget* genr;  // genre tab
  82     WContainerWidget* desc;  // description tab
  83     WContainerWidget* rk[4]; // keyboard row
  84     WPushButton*      bk[35];// key buttons
  85     kbdtype        keytype;  // keyboard type
  86     tl::lemmatizer lem;      // lemmatizer instance
  87     std::string    agent;    // UserAgent
  88     std::string    ipadr;    // IP Address
  89     // debug
  90     std::string    wparm;  // parameter
  91     int cprelen;   // context length pre
  92     int caftlen;   // context length aft
  93     void clearvse();
  94     void clearother();
  95     void clearself();
  96     void generate();
  97     void tabchange();
  98     void keyboard();
  99     void keyinput00();
 100     void keyinput01();
 101     void keyinput02();
 102     void keyinput03();
 103     void keyinput04();
 104     void keyinput05();
 105     void keyinput06();
 106     void keyinput07();
 107     void keyinput08();
 108     void keyinput09();
 109     void keyinput10();
 110     void keyinput11();
 111     void keyinput12();
 112     void keyinput13();
 113     void keyinput14();
 114     void keyinput15();
 115     void keyinput16();
 116     void keyinput17();
 117     void keyinput18();
 118     void keyinput19();
 119     void keyinput20();
 120     void keyinput21();
 121     void keyinput22();
 122     void keyinput23();
 123     void keyinput24();
 124     void keyinput25();
 125     void keyinput26();
 126     void keyinput27();
 127     void keyinput28();
 128     void keyinput29();
 129     void keyinput30();
 130     void keyinput31();
 131     void keyinput32();
 132     void keyinput33();
 133     void keyinput(WPushButton* bt);
 134     void makeinput(WString& et);
 135     void errorsend(const std::string& emsg);
 136     void tabKwic();
 137     void tabOpts();
 138     void tabRkbd();
 139     void tabGenr();
 140     void tabDesc();
 141     void setprelength();
 142     void setaftlength();
 143 public:
 144     Concordance(const WEnvironment& env);
 145 };
 146 
 147 #endif

/* [previous][next][first][last][top][bottom][index][help] */