#ifndef IMPORTEDDATAVIEW_H
#define IMPORTEDDATAVIEW_H

#include <QWidget>
#include <QVBoxLayout>
#include <QLabel>
#include <QTabWidget>
#include "projectparampreview.h"
#include "componentspreview.h"
#include "pcbmaterialpreview.h"
#include "../model/componenttablemodel.h"
#include "../model/projectparamtablemodel.h"
#include "../model/pcbmaterialmodel.h"

class ImportedDataView : public QWidget
{
    Q_OBJECT
public:
    explicit ImportedDataView(ComponentTableModel* model = nullptr, ProjectParamTableModel* projectParamModel = nullptr, PCBMaterialModel* pcbMaterialModel = nullptr, QWidget *parent = nullptr);
    
    // Метод для обновления отображения данных
    void updateView();
    
    // Метод для обновления параметров проекта
    void updateProjectParams();
    
    // Метод для обновления материалов платы
    void updatePCBMaterials();
    
    // Метод для доступа к ComponentsPreview
    ComponentsPreview* getComponentsPreview() const;
    
    // Метод для доступа к PCBMaterialPreview
    PCBMaterialPreview* getPCBMaterialPreview() const;

private:
    void setUp();
    void setWidgets();
    void setUpLayout();
    void setUpConnections();

    ComponentTableModel* m_model;
    ProjectParamTableModel* m_projectParamModel;
    PCBMaterialModel* m_pcbMaterialModel;
    QVBoxLayout* m_mainLayout;
    ProjectParamPreview* m_projectParamPreview;
    ComponentsPreview* m_componentsPreview;
    PCBMaterialPreview* m_pcbMaterialPreview;
    QTabWidget* m_tabWidget;
signals:

private slots:
    void onDataChanged();
};

#endif // IMPORTEDDATAVIEW_H
