import tkinter as tk
from tkinter import messagebox

def add_word():
    word = word_entry.get().strip()
    position = position_entry.get().strip()
    
    if not word:
        messagebox.showwarning("Σφάλμα", "Πρέπει να εισάγετε μια λέξη!")
        return
    
    if position.isdigit():
        pos = int(position) - 1  # index ξεκινά από 0
        if 0 <= pos <= len(words):
            words.insert(pos, word)
        else:
            messagebox.showwarning("Σφάλμα", "Μη έγκυρη θέση!")
            return
    else:
        words.append(word)
    
    update_textbox()
    word_entry.delete(0, tk.END)
    position_entry.delete(0, tk.END)

def remove_word():
    position = position_entry.get().strip()
    
    if not position.isdigit():
        messagebox.showwarning("Σφάλμα", "Πρέπει να δώσετε αριθμητική θέση!")
        return

    pos = int(position) - 1  # από 1 σε index
    if 0 <= pos < len(words):
        removed = words.pop(pos)
        update_textbox()
        messagebox.showinfo("Επιτυχία", f"Η λέξη '{removed}' αφαιρέθηκε.")
    else:
        messagebox.showwarning("Σφάλμα", "Η θέση δεν υπάρχει στη λίστα!")

    position_entry.delete(0, tk.END)

def sort_words(ascending=True):
    words.sort(reverse=not ascending)
    update_textbox()

def update_textbox():
    text_box.config(state=tk.NORMAL)
    text_box.delete(1.0, tk.END)
    text_box.insert(tk.END, "\n".join(f"{i+1}. {w}" for i, w in enumerate(words)))
    text_box.config(state=tk.DISABLED)

# Αρχικοποίηση παραθύρου
root = tk.Tk()
root.title("Φτιάχνω λίστες")
words = []

# Πλαίσια εισαγωγής
word_label = tk.Label(root, text="ΛΕΞΗ:")
word_label.grid(row=0, column=0, padx=5, pady=5)
word_entry = tk.Entry(root)
word_entry.grid(row=0, column=1, padx=5, pady=5)

position_label = tk.Label(root, text="ΘΕΣΗ:")
position_label.grid(row=0, column=2, padx=5, pady=5)
position_entry = tk.Entry(root, width=5)
position_entry.grid(row=0, column=3, padx=5, pady=5)

# Κουμπιά προσθήκης & αφαίρεσης
add_button = tk.Button(root, text="Προσθήκη", command=add_word)
add_button.grid(row=0, column=4, padx=5, pady=5)

remove_button = tk.Button(root, text="Αφαίρεση", command=remove_word)
remove_button.grid(row=0, column=5, padx=5, pady=5)

# Κουμπιά ταξινόμησης
sort_asc_button = tk.Button(root, text="Ταξινόμηση ↑", command=lambda: sort_words(ascending=True))
sort_asc_button.grid(row=1, column=0, padx=5, pady=5)

sort_desc_button = tk.Button(root, text="Ταξινόμηση ↓", command=lambda: sort_words(ascending=False))
sort_desc_button.grid(row=1, column=1, padx=5, pady=5)

# Πλαίσιο προβολής λίστας
text_box = tk.Text(root, height=10, width=60, state=tk.DISABLED)
text_box.grid(row=2, column=0, columnspan=6, padx=5, pady=5)

# Εκκίνηση εφαρμογής
root.mainloop()
