DocumentDemo Example

#ifndef VIEWPANELS_H
#define VIEWPANELS_H

#include <QHBoxLayout>
#include <QTableWidget>
#include <QTreeWidget>
#include <QToolBox>
#include <QToolBar>
#include <DevMachines/QtitanDocking>

/* DockWidgetPanelCreator */
class DockWidgetPanelCreator : public QObject
{
public:
    explicit DockWidgetPanelCreator(const QString& caption, DockMainWindow* parent);
    virtual ~DockWidgetPanelCreator();
public:
    DockWidgetPanel* widgetPanel() const { return m_dockWidgetPanel; }
protected:
    DockWidgetPanel* m_dockWidgetPanel;
};

/* FileViewPanelCreator */
class FileViewPanelCreator : public DockWidgetPanelCreator
{
public:
    explicit FileViewPanelCreator(DockMainWindow* parent);
    virtual ~FileViewPanelCreator();
protected:
    void fillToolBar();
    void fillFileView();
protected:
    QWidget* baseLayoutWidget;
    QVBoxLayout* baseLayout;
private:
    Q_DISABLE_COPY(FileViewPanelCreator)
};

/* ClassViewPanelCreator */
class ClassViewPanelCreator : public DockWidgetPanelCreator
{
public:
    explicit ClassViewPanelCreator(DockMainWindow* parent);
    virtual ~ClassViewPanelCreator();
protected:
    void fillToolBar();
    void fillClassView();
    void creatNodeView(const QString& str, QTreeWidgetItem* parentItem, QTreeWidget* treeWidget);
protected:
    QWidget* baseLayoutWidget;
    QVBoxLayout* baseLayout;
private:
    Q_DISABLE_COPY(ClassViewPanelCreator)
};

/* ResourceViewPanelCreator */
class ResourceViewPanelCreator : public DockWidgetPanelCreator
{
public:
    explicit ResourceViewPanelCreator(DockMainWindow* parent);
    virtual ~ResourceViewPanelCreator();
protected:
    void fillResourceView();
private:
    QWidget* baseLayoutWidget;
    QVBoxLayout* baseLayout;
private:
    Q_DISABLE_COPY(ResourceViewPanelCreator)
};

/* OutputListPanelCreator */
class OutputListPanelCreator : public DockWidgetPanelCreator
{
public:
    explicit OutputListPanelCreator(DockMainWindow* parent);
    virtual ~OutputListPanelCreator();
private:
    Q_DISABLE_COPY(OutputListPanelCreator)
};

/* WatchPanelCreator */
class WatchPanelCreator : public DockWidgetPanelCreator
{
public:
    explicit WatchPanelCreator(DockMainWindow* parent);
    virtual ~WatchPanelCreator();
protected:
    QTableWidget* m_watchList;
private:
    Q_DISABLE_COPY(WatchPanelCreator)
};

/* ToolBoxPanelCreator */
class ToolBoxPanelCreator : public DockWidgetPanelCreator
{
public:
    explicit ToolBoxPanelCreator(DockMainWindow* parent);
    virtual ~ToolBoxPanelCreator();
protected:
    QTreeWidget* m_toolBox;
private:
    Q_DISABLE_COPY(ToolBoxPanelCreator)
};

#endif /* VIEWPANELS_H */