# ui/panels/ref_panel.py
from PyQt6.QtWidgets import (
    QGroupBox, QVBoxLayout, QHBoxLayout, QLabel, QListWidget, 
    QDoubleSpinBox, QPushButton, QLineEdit, QToolButton
)
from PyQt6.QtCore import Qt

from ui.common import DragHandle

class ReferenceListPanel(QGroupBox):
    def __init__(self, parent=None):
        super().__init__("リファレンスリストと操作", parent)
        self.init_ui()

    def init_ui(self):
        layout = QVBoxLayout()

        # --- リスト部分 ---
        layout.addWidget(QLabel("リファレンスリスト (ドラッグで順序変更):"))
        self.list_widget_references = QListWidget()
        self.list_widget_references.setFixedHeight(120)
        self.list_widget_references.setSelectionMode(QListWidget.SelectionMode.ExtendedSelection)
        self.list_widget_references.setDragDropMode(QListWidget.DragDropMode.InternalMove)
        layout.addWidget(self.list_widget_references)

        self.ref_list_handle = DragHandle(self.list_widget_references)
        layout.addWidget(self.ref_list_handle)
        
        # --- 【ここが救出ポイント】ピークフィルタUI ---
        filter_box = QGroupBox("ピークフィルタ (変数: h, k, l, i)")
        filter_layout = QVBoxLayout()
        
        filter_input_layout = QHBoxLayout()
        self.edit_ref_filter = QLineEdit()
        self.edit_ref_filter.setPlaceholderText("例: k==0 and l==0")
        
        self.btn_apply_filter = QPushButton("適用")
        self.btn_filter_help = QToolButton()
        self.btn_filter_help.setText("?")
        
        filter_input_layout.addWidget(self.edit_ref_filter)
        filter_input_layout.addWidget(self.btn_apply_filter)
        filter_input_layout.addWidget(self.btn_filter_help)
        
        filter_layout.addLayout(filter_input_layout)
        filter_box.setLayout(filter_layout)
        layout.addWidget(filter_box)

        # --- 線幅・ボタン類（以下、前回と同じ） ---
        lw_layout = QHBoxLayout()
        lw_layout.addWidget(QLabel("線の太さ (Ref):"))
        self.spinbox_ref_linewidth = QDoubleSpinBox()
        self.spinbox_ref_linewidth.setRange(0.1, 10.0)
        self.spinbox_ref_linewidth.setEnabled(False)
        lw_layout.addWidget(self.spinbox_ref_linewidth)
        layout.addLayout(lw_layout)

        btn_layout = QHBoxLayout()
        self.btn_set_reference_color = QPushButton("色変更 (Ref)")
        self.btn_rename_reference = QPushButton("名前変更 (Ref)")
        btn_layout.addWidget(self.btn_set_reference_color)
        btn_layout.addWidget(self.btn_rename_reference)
        layout.addLayout(btn_layout)
        
        self.btn_apply_colorscale_ref = QPushButton("カラースケール適用 (Ref)")
        self.btn_remove_reference = QPushButton("選択リファレンスを削除")
        layout.addWidget(self.btn_apply_colorscale_ref)
        layout.addWidget(self.btn_remove_reference)

        self.setLayout(layout)