From f95a8dbc5381f75be1e5e4eaad69fd3e70a65ff9 Mon Sep 17 00:00:00 2001
From: jwansek <eddie.atten.ea29@gmail.com>
Date: Mon, 13 Dec 2021 12:33:14 +0000
Subject: added IDE documentation

---
 src/PythonIDE/src/esotericFORTRANIDE.py | 23 +++++++++++++++++++++++
 src/PythonIDE/src/fortranText.py        |  3 +++
 src/PythonIDE/src/resultsPane.py        |  5 +++++
 3 files changed, 31 insertions(+)

(limited to 'src/PythonIDE')

diff --git a/src/PythonIDE/src/esotericFORTRANIDE.py b/src/PythonIDE/src/esotericFORTRANIDE.py
index e132d9e..721e629 100644
--- a/src/PythonIDE/src/esotericFORTRANIDE.py
+++ b/src/PythonIDE/src/esotericFORTRANIDE.py
@@ -11,6 +11,13 @@ import sys
 import os
 
 class Application(tk.Tk):
+    """Class for implementing a simple IDE using Python tkinter.
+    Inherits from tk.Tk, all widgets are packed inside PanedWindows
+    for users to expand or shrink as nessicary.
+
+    Args:
+        tk (Tk): A tk.Tk object to inherit from
+    """
 
     def __init__(self, program_jar, current_file = "unsaved program", *args, **kwargs):
         super().__init__(*args, **kwargs)
@@ -46,6 +53,9 @@ class Application(tk.Tk):
         self.save_file_as()
 
     def open_file(self):
+        """Called when the user selects the button to open a file or the
+        nessicary keyboard shortcuts. File is opened and inserted into the tk.Text
+        """
         dia = filedialogue.askopenfilename(
             initialdir = self.__get_initial_dir(),
             filetypes = (("FORTRAN Files", ".ft"), ("Text Files", ".txt"), ("All files", "*.*"))
@@ -79,10 +89,15 @@ class Application(tk.Tk):
         exit()
 
     def execute(self):
+        """Executes a file. A file needs to be saved to disk before it can be executed.
+        Check that we're operating on a saved file. Also check if we're working on the most
+        up-to date file by comparing the code in the tk.Text to the code on disk.
+        """
         if self.current_file == "unsaved program":
             messagebox.showwarning("Error",  "You need to make a file before it can be executed")
             return
 
+        # compare the files to check if we need to prompt the user to save
         with open(self.current_file, "r") as f:
             unsaved_version = "".join(f.readlines())
         
@@ -95,6 +110,7 @@ class Application(tk.Tk):
         if os.path.exists("build"):
             shutil.rmtree("build")
 
+        # execute the file with the jar in program args
         self.results_pane.clear_c_code()
         proc = subprocess.Popen(["java", "-jar", self.program_jar, self.current_file, "-c", "-e"], stdout=subprocess.PIPE)
         while True:
@@ -103,6 +119,7 @@ class Application(tk.Tk):
                 break
             self.results_pane.append_results_line(line.rstrip().decode())
 
+        # if the build directory exists, the build was successful. 
         if os.path.exists("build"):
             self.results_pane.append_results_line("Build Completed %s\n" % str(datetime.datetime.now()))
             for file_ in os.listdir("build"):
@@ -124,6 +141,12 @@ class Application(tk.Tk):
 
 
 class ApplicationMenu(tk.Menu):
+    """Class that implements the menu bar in the application. It inherits from 
+    tk.Menu()
+
+    Args:
+        tk (Menu): The class inherits from tk.Menu
+    """
     def __init__(self, parent, *args, **kwargs):
         super().__init__(parent, *args, **kwargs)
         self.parent = parent
diff --git a/src/PythonIDE/src/fortranText.py b/src/PythonIDE/src/fortranText.py
index b88ff89..3b044c7 100644
--- a/src/PythonIDE/src/fortranText.py
+++ b/src/PythonIDE/src/fortranText.py
@@ -3,6 +3,9 @@ from tkinter import ttk
 from tkinter.scrolledtext import ScrolledText
 
 class FortranText(tk.Frame):
+    """This class is the left hand of the application,
+    basically just uses a tk.Text for FORTRAN code input
+    """
     def __init__(self, parent, *args, **kwargs):
         super().__init__(parent, *args, **kwargs)
         self.parent = parent
diff --git a/src/PythonIDE/src/resultsPane.py b/src/PythonIDE/src/resultsPane.py
index 7797916..c3ea110 100644
--- a/src/PythonIDE/src/resultsPane.py
+++ b/src/PythonIDE/src/resultsPane.py
@@ -3,6 +3,11 @@ from tkinter import ttk
 from tkinter.scrolledtext import ScrolledText
 
 class ResultsPane(tk.Frame):
+    """This class implements the right-hand side of the application.
+    It has two tk.Texts, one for the produced C code and one as the 
+    output to stdout of running the .jar. They are inside paned windows
+    so the user can expand and shrink them as nessicary.
+    """
     def __init__(self, parent, *args, **kwargs):
         super().__init__(parent, *args, **kwargs)
         self.parent = parent
-- 
cgit v1.2.3