00001
00002
00003
00004
00005
00006 #ifndef BALL_VIEW_DIALOGSPUBCHEMDIALOG_H
00007 #define BALL_VIEW_DIALOGSPUBCHEMDIALOG_H
00008
00009 #ifndef BALL_COMMON_GLOBAL_H
00010 # include <BALL/COMMON/global.h>
00011 #endif
00012
00013 #ifndef BALL_VIEW_KERNEL_MODULARWIDGET_H
00014 # include <BALL/VIEW/KERNEL/modularWidget.h>
00015 #endif
00016
00017 #ifndef BALL_STRUCTURE_SMILESPARSER_H
00018 # include <BALL/STRUCTURE/smilesParser.h>
00019 #endif
00020
00021 #ifndef BALL_VIEW_WIDGETS_SDWIDGET_H
00022 # include <BALL/VIEW/WIDGETS/SDWidget.h>
00023 #endif
00024
00025 #ifdef BALL_COMPILER_MSVC
00026 # include <BALL/VIEW/UIC/ui_pubchemDialog.h>
00027 #else
00028 # include <BALL/VIEW/UIC/pubchemDialogData.h>
00029 #endif
00030
00031 #include <QtGui/qdialog.h>
00032 #include <map>
00033
00034 class ns6__ItemType;
00035 class ns6__DocSumType;
00036
00037 namespace BALL
00038 {
00039 namespace VIEW
00040 {
00043 class BALL_VIEW_EXPORT PubChemDialog :
00044 public QDialog,
00045 public Ui_PubChemDialogData,
00046 public ModularWidget
00047 {
00048 Q_OBJECT
00049
00050 public:
00051
00052 BALL_EMBEDDABLE(PubChemDialog,ModularWidget)
00053
00054
00055 PubChemDialog(QWidget *parent = NULL, const char *name = "PubChemDialog");
00056
00058 virtual ~PubChemDialog();
00059
00063 void generateFromSMILES(const String& SMILES);
00064
00066 virtual void initializeWidget(MainControl& main_control);
00067
00069 virtual void checkMenu(MainControl& main_control);
00070
00071 public slots:
00072
00074 void show();
00075
00077 void generateButtonClicked();
00078
00080 void queryPubChem();
00081
00083 void switchView(QTreeWidgetItem* item, int column);
00084
00086 void clearEntries();
00087
00089 void finished();
00090
00091 protected:
00092
00093 struct ParsedResult_
00094 {
00095 String name;
00096 String description;
00097 String smiles;
00098 };
00099
00100 String parseItemRecursive_(ns6__ItemType* item, int level=0);
00101 ParsedResult_ parseResultRecursive_(ns6__DocSumType* result);
00102 void insert_(ParsedResult_ d, QTreeWidgetItem* parent, bool plot);
00103
00104 SDWidget sdwidget_;
00105
00106 std::map<QTreeWidgetItem*, System*> sd_systems_;
00107 std::map<QTreeWidgetItem*, System*> original_systems_;
00108 std::map<QTreeWidgetItem*, ParsedResult_> descriptions_;
00109
00110 SmilesParser smiles_parser_;
00111
00112 QAction* action1_, *action2_;
00113 };
00114 }
00115 }
00116 #endif