- Deleted `IMPLEMENTATION_SUMMARY.md` as its content is now integrated into other documentation.
- Added `INDEX.md` for quick navigation of the scripts folder.
- Created `MARKDOWN_STYLE.md` to establish a consistent markdown style guide for documentation.
- Updated `README.md` to reflect the new documentation structure and provide links to additional resources.
- Introduced `README_SCRIPTS.md` detailing the consolidation of scripts into `tustu_tools.py`.
- Added `REORGANIZATION_SUMMARY.md` to summarize the changes made during the scripts reorganization.
- Removed `TEST_DATA_GENERATOR_FEATURE.md` as its content is now covered in `README_SCRIPTS.md`.
- Updated `scripts/README.md` to include links to new documentation files and improve clarity.
- Introduced `tustu_tools.py` to consolidate various scripts into a single command-line tool.
- Implemented key generation functionality with multiple algorithms.
- Added dummy data generation and email formatting capabilities.
- Included structure analysis and constructor fixing for Java files.
- Created wrapper script `tustu-tools` for easy access to the utility.
- Developed test scripts for dummy data and email generation.
- Added a script for reorganizing the app directory structure.
- Implemented `rename_obfuscated_files.py` to generate semantic names for obfuscated Java files, analyze import dependencies, and execute batch renaming.
- Created `reorganize_structure.py` to analyze the current directory structure, propose reorganization plans, and execute file movements based on package declarations.
- Added `test_dummy_data.py` to demonstrate the functionality of the dummy data generator and validate generated registration keys.
- Introduced `test_email_generation.py` to test the email generation functionality for registration emails.
This commit introduces a new Python script, `fix_constructors_v2.py`, which automates the process of correcting constructor names in Java files based on Gradle error outputs. The script scans specified Java files, identifies constructors that do not match their class names, and updates them accordingly. It handles various edge cases, ensuring that only relevant constructors are modified. The script also provides feedback on the changes made during execution.
This commit introduces a new Python script, `fix_constructors.py`, which scans Java files for constructors that do not match their enclosing class names. The script identifies misnamed constructors and corrects them, ensuring that all constructors adhere to Java's naming conventions. It processes all Java files within a specified directory and reports the number of files modified.
- Created a new MANIFEST.MF file for the JAR with version 1.0.
- Added gradle.properties to specify Java 21 as the JDK for Gradle builds, ensuring compatibility with current Gradle/Kotlin versions.
- Implemented semantic name generation for obfuscated Java classes
- Analyzed import dependencies to track class references
- Created batch execution logic for renaming files and updating imports
- Added comprehensive error handling and logging throughout the process
- Generated a complete mapping of renamed files and their dependencies
- Introduced a new script `analyze_imports.py` to analyze and map dependencies of import statements in Java files.
- Extracts import statements and checks against a rename mapping from `PACKAGE_MAPPING_SMART.json`.
- Generates a comprehensive mapping of obfuscated classes and files needing updates.
- Outputs results to `COMPLETE_RENAME_MAPPING.json` with statistics on files processed and needing updates.
- Improved filtering of field types, imported classes, instantiated classes, method parameter types, and return types to exclude Java primitives, common types, and keywords.
- Added semantic analysis for generating more meaningful class names based on field names, instantiated classes, and method names.
- Introduced a contextual naming strategy that incorporates various characteristics of the class, such as technology context (networking, I/O, threading), field types, and method names.
- Implemented a global uniqueness check for generated filenames to prevent conflicts across packages.
- Updated the fallback naming strategy to ensure uniqueness while maintaining descriptiveness.
- Enhanced logging for duplicate name detection and resolution.
- Added extraction of field names, string literals, imported classes, and instantiated classes for better context.
- Improved specific name inference for ActionListener and other UI components based on additional context.
- Enhanced naming strategies to include context from instantiated classes, field types, and method names.
- Implemented a global uniqueness check for generated filenames, fixing duplicates by adding numeric suffixes.
- Updated the mapping file generation to ensure all names are unique across the entire workspace.
- Improved specific name extraction for ActionListener by analyzing content for UI components and method calls.
- Added fallback mechanisms for other listener types while ensuring ActionListener is prioritized.
- Refined filename generation strategies to prioritize specific inferred names, followed by class names, descriptions, and method names.
- Updated strategy numbering for clarity and consistency in the filename generation process.
- Enhanced class information extraction with detailed attributes (interfaces, methods, etc.)
- Implemented creative naming strategies to avoid filename conflicts
- Improved conflict resolution by tracking used names per package
- Updated statistics tracking for better insights on mapping process
- Refined output messages for clarity and detail
- Changed function name to `generate_smart_mapping_v2` for versioning
- Updated analyze_file method to accept an optional filename parameter for better handling of already renamed files.
- Added checks to skip analysis for files with multi-character or CamelCase names in both analyze_file and analyze_package methods.
- Modified generate_smart_mapping to track and report skipped files due to renaming or empty content.
- Improved fallback naming strategy for files without analysis results.
- Enhanced documentation for clarity on the purpose of functions and parameters.
- Implemented `analyze_java_files.py` to provide heuristic analysis of Java files, suggesting descriptive names for obfuscated classes based on code patterns, imports, methods, and class structure.
- Created `generate_smart_mapping.py` to generate a mapping of old to new filenames using the Java file analyzer, producing `PACKAGE_MAPPING_SMART.json` with suggested filenames.
- Added detailed analysis output to `JAVA_ANALYSIS_DETAILED.json` for further insights into the analysis process.
- Introduced a cache file for compiled Python files in `__pycache__`.
- Introduced ContextHelpMouseAdapter for handling mouse events related to context help.
- Implemented EnableDelayManager and EnableDelayThread for managing delays in enabling features.
- Created EnabledStateCallback interface for state change notifications.
- Added HelpIconLabel and HelpIconMouseAdapter for displaying help icons with tooltips.
- Developed IndicatorReadoutPanel for visual representation of indicators.
- Implemented LiveGraphDataSeries and associated mouse adapters for live graph updates.
- Created LiveGraphPaintThrottle to manage painting frequency in live graphs.
- Added MenuItemIconProvider for dynamic icon assignment to menu items.
- Introduced NamedPanel for panels with names and associated properties.
- Implemented NoteEditorCallback for handling note editing actions.
- Created NoteIconLabel for displaying notes with icons.
- Developed PrefixedPropertyStore for managing properties with prefixes.
- Added RefreshRateCalculator for calculating refresh rates based on conditions.
- Introduced RefreshableComponent interface for components that can be refreshed.
- Created TableCellHighlightListener interface for handling cell highlight events.
- Implemented ValueComboBox for enhanced combo box functionality with custom items.
- Introduced NumericTextField class with focus and key listeners for enhanced user input handling.
- Created NumericTextFieldFocusAdapter and NumericTextFieldKeyAdapter for focus and key event management.
- Implemented RequiredFuelCalculatorPropertyStore for managing fuel calculation properties.
- Added SettingCalibrationField and associated action listener for calibration settings.
- Developed Table2DEditorPanel for 2D table editing functionality, including output channel subscription.
- Introduced Table2DLabelTranslator and Table2DOutputChannelSubscriber for label translation and output channel management.
- Added Table2DPropertyStore for property storage related to 2D tables.
- Implemented TuningMenuBar and TuningMenuBuilder for dynamic menu creation based on tuning parameters.
- Created TuningPopupMenu for context-sensitive actions in the tuning interface.
- Established interfaces for text change notifications and listeners to facilitate communication between components.
- Introduced `TuneDataSnapshot` for managing and synchronizing tuning data.
- Added `TuneDifferenceAnalyzer` to analyze differences between tuning parameters.
- Created `TuneValidatorRegistry` for managing validation rules.
- Implemented `TurboBaudHandler` to handle turbo baud rate changes.
- Added `WorkingCanIdFunction` for retrieving working CAN ID values.
- Introduced multiple GaugeColorSetter classes (B to L) for setting gauge colors dynamically.
- Implemented GaugePropertiesMenu class to manage gauge properties and settings.
- Added action listeners for gauge styles and slider value changes to enhance interactivity.
- Created RadioButtonColorSelectionListener and StaticValueActionListener for handling user input.
- Ensured compatibility with existing gauge components and UI elements.
- Introduced interfaces for logging preferences (LogPreferences.java), output channel definitions (OutputChannelDefinition.java), and progress listeners (ProgressListener.java).
- Implemented OutputChannelImpl.java to handle output channel logic and data processing.
- Created classes for recoverable exceptions (RecoverableException.java) and setting definitions (SettingDefinition.java).
- Developed SettingsGroupManager.java for managing settings groups and parsing related files.
- Added SettingsParser.java to handle configuration file parsing and filtering.
- Implemented SignatureExtractor.java for extracting signatures from files.
- Created StringCallback.java and StringPairProvider.java interfaces for callback mechanisms.
- Developed ThrottleCalibrationGenerator.java for generating throttle calibration files.
- Introduced TranslationEntry.java for handling translation entries and formatting.
- Added ValueFormatter.java interface for formatting float values.
- Implemented OnOffUpdateListener for handling toggle updates.
- Created OutputChannelCallback interface for output channel notifications.
- Developed OutputChannelComboBox for managing output channel selections.
- Added OutputChannelHandler to process output channel updates.
- Introduced OutputChannelSelectionListener for action events on output channel selections.
- Implemented OutputChannelUpdateListener to handle updates based on specific conditions.
- Created PortActionListenerB and PortActionListenerC for button actions in the output port editor.
- Added PortCheckBoxItemListener to manage checkbox state changes.
- Developed PortConfigCheckBox for configuration settings in the output port editor.
- Implemented PortControllerPanel to manage multiple output channels and their configurations.
- Created PortEditorRowPanel for organizing output port settings in a row format.
- Added PortEnableItemListener to handle enabling/disabling of output ports.
- Developed PortItemList for managing a list of output items.
- Created PortItemModel to represent individual items in the output port list.
- Implemented PortListSelectionListener to handle selection changes in the output port list.
- Added PortSelectionActionListener for handling selection actions in the output port editor.
- Developed PortSelectionRunnable for executing selection logic in a separate thread.
- Implemented PortStatusCellRenderer for rendering output port status in a list.
- Created ThresholdSyncValueEditor for managing threshold synchronization values.
- Implemented DeviceTableMouseAdapter for handling mouse events in device table.
- Created DeviceTableRefreshRunnable and DeviceTableUpdateRunnable for refreshing and updating device table data.
- Added IpPanelActionRunnable and IpPanelUpdateRunnable for handling IP panel actions and updates.
- Introduced IpSearchEventListener and IpSearchExecutionThread for managing IP search events and execution.
- Developed IpSearchMonitorThread for monitoring IP search status.
- Implemented MenuItemActionHandler for handling menu item actions.
- Added ProjectChangeListener and ProjectFolder for managing project changes and folder details.
- Created ProjectRefreshRunnable and ProjectUpdateRunnable for refreshing and updating project data.
- Implemented SearchBoxFocusListener and SearchBoxKeyListener for managing focus and key events in search box.
- Developed SearchBoxPanel for encapsulating search box functionality.
- Introduced SearchDelayThread for managing search delays.
- Created SearchGroupPanel for organizing search results.
- Implemented SearchNavigationHandler for handling navigation in search results.
- Added SearchPopupShowRunnable for displaying search result popups.
- Developed SearchResultCategory and SearchResultItem for managing search result categories and items.
- Implemented SearchResultItemMouseAdapter for handling mouse events on search result items.
- Created SearchResultItemPanel for displaying individual search result items.
- Developed SearchResultsPopup for displaying search results in a popup window.
- Introduced SearchSelectionListener interface for handling selection events in search results.
- Implemented SearchUtils for utility functions related to search operations.
- Introduced TuningViewWindow for managing tuning view windows.
- Implemented BurnButtonActionListener to handle burn button actions.
- Created BurnButtonDelayThread to manage delay in burn actions.
- Added BurnButtonInitializer for initializing burn button components.
- Developed BurnButtonMouseAdapter to manage mouse interactions on burn buttons.
- Implemented BurnButtonStateListener to manage burn button state changes.
- Created CrossHairActionListener for handling crosshair actions.
- Added CrossHairChannelListener to manage channel value updates.
- Developed CrossHairPopupListener for managing crosshair popup actions.
- Implemented SettingsPanelPopupListener for handling settings panel popups.
- Created SettingsPanelSelectionListener for managing selection changes in settings.
- Added TablePropertiesHandler for managing table properties.
- Introduced CrcCheckActionListener for CRC check actions.
- Implemented TimeSlipApplyListener for applying time slip settings.
- Created TimeSlipCancelListener for canceling time slip actions.
- Developed TimeSlipDialog for managing time slip dialog interactions.
- Added TimeSlipFieldFocusListener to manage focus events on time slip fields.
- Implemented TimeSlipPanel for displaying and managing time slip data.
- Created CylPressureSenderThread for sending cylinder pressure data.
- Developed MultiCylPressureSenderThread for managing multiple cylinder pressure data transmissions.