Documents > BPS V2 C++ API
bpslabelerplugin.h
Go to the documentation of this file.
00001 
00004 #ifndef BPSLABELERPLUGIN_H
00005 #define BPSLABELERPLUGIN_H
00006 
00007 #include "bpsgui_global.h"
00008 #include <QtPlugin>
00009 #include <QMap>
00010 
00011 class BpsDatastore;
00012 class BpsConfigWidget;
00013 class BpsLabeler;
00014 class BpsLabelerEditWidget;
00015 class BpsSettings;
00016 
00021 class BPSGUI_EXPORT BpsLabelerPlugin
00022 {
00023 public:
00027     virtual ~BpsLabelerPlugin() {};
00028 
00032     virtual QString labelerId() const = 0;
00033 
00037     virtual QString labelerName() const = 0;
00038 
00044     virtual bool check(BpsDatastore* aDatastore) const = 0;
00045 
00053     virtual BpsLabelerEditWidget* createEditWidget(BpsDatastore* aDatastore, QWidget* aParent = 0) const = 0;
00054 
00062     virtual BpsConfigWidget* createConfigWidget(BpsDatastore* aDatastore, QWidget* aParent = 0) const = 0;
00063 
00070     virtual BpsLabeler* createLabeler(BpsDatastore* aDatastore, QObject* aParent = 0) const = 0;
00071 
00077     static QMap<BpsLabelerPlugin*,QVariant> plugins(BpsDatastore* aDatastore);
00078 
00085     static BpsLabelerPlugin* plugin(BpsDatastore* aDatastore, const QString& aId);
00086 };
00087 
00088 Q_DECLARE_INTERFACE(BpsLabelerPlugin, "com.ibk-software.BPS2.BpsLabelerPlugin/1.0")
00089 
00090 #endif // BPSLABELERPLUGIN_H