Repository files navigation

ArtAttack - Artwork Management System

A comprehensive Java-based desktop application for managing artwork collections. ArtAttack provides an intuitive graphical user interface for organizing, searching, and sorting artwork information with advanced algorithms for efficient data management.

Table of Contents

Features

  • Artwork Management: Add, update, and manage artwork collections with comprehensive details

  • Advanced Search: Binary search functionality for quick lookup of artworks by various attributes

  • Sorting Capabilities: Merge sort algorithm for sorting artworks in ascending or descending order

  • Multiple Search/Sort Fields: Search and sort by:

    • Title
    • Artist
    • Category
    • Medium
    • Art Style
    • Creation Date
    • Height & Width
    • Current Location
    • Valuation
  • User-Friendly Interface: Built with Java Swing for a responsive desktop experience

  • Date Management: Integrated date picker for easy date selection

  • Data Display: Dynamic table view with formatted display of artwork information

Project Structure

art_attack_java_webapp/
├── src/
│ └── com/artattack/
│ ├── controllers/
│ │ ├── BinarySearch.java # Binary search implementation
│ │ └── MergeSort.java # Merge sort implementation
│ ├── models/
│ │ └── ArtAttackModel.java # Artwork data model
│ ├── utils/
│ │ └── StringUtil.java # Utility string functions
│ └── views/
│ ├── ArtAttack.java # Main GUI application
│ └── ArtAttack.form # GUI form definition
├── test/ # Test files directory
├── build/ # Compiled classes and build output
├── nbproject/ # NetBeans project configuration
├── build.xml # Ant build configuration
├── manifest.mf # JAR manifest file
└── README.md # This file

Technology Stack

  • Language: Java SE 8+
  • GUI Framework: Java Swing
  • Build Tool: Apache Ant (NetBeans)
  • IDE: NetBeans IDE (Compatible)
  • Additional Libraries:
    • JDateChooser (for calendar date selection)

Getting Started

Prerequisites

  • Java Development Kit (JDK) 8 or higher installed
  • Apache Ant (included with NetBeans)
  • NetBeans IDE (recommended) or any Java IDE

Installation

  1. Clone the repository:

    git clone https://github.com/prashere/art_attack_java_webapp.git
    cd art_attack_java_webapp
  2. Open in NetBeans:

    • Launch NetBeans IDE
    • Select File → Open Project
    • Navigate to the art_attack_java_webapp folder
    • Click Open Project
  3. Or use command line:

    ant build

Building the Project

Using NetBeans

  • Right-click on the project and select "Build"
  • Or use the Build menu → Build Project

Using Ant (Command Line)

# Clean and build
ant clean build
# Run the application
ant run
# Clean build artifacts
ant clean

Usage

Starting the Application

From NetBeans:

  • Right-click on the project and select "Run"
  • Or press F6

From Command Line:

ant run

Main Features

  1. Home Tab: Welcome screen with application overview
  2. Details Tab: Main workspace for artwork management
    • View all artworks in a table
    • Add new artworks
    • Update existing artworks
    • Search artworks using binary search
    • Sort artworks using merge sort

Typical Workflow

  1. Adding Artwork:

    • Click "Add Art" button
    • Fill in all artwork details (title, artist, category, etc.)
    • Set creation date using date picker
    • Click Save
  2. Searching Artwork:

    • Select search field (Title, Artist, etc.)
    • Enter search term
    • Results are displayed using binary search algorithm
  3. Sorting Artwork:

    • Select sort field
    • Choose sort order (Ascending/Descending)
    • Table updates with sorted results using merge sort

Architecture

Design Pattern: Model-View-Controller (MVC)

The application follows MVC architecture for clean separation of concerns:

  • Model (ArtAttackModel): Represents artwork data with all properties
  • View (ArtAttack): Swing GUI components for user interface
  • Controller (BinarySearch, MergeSort): Business logic for search and sort operations

Data Flow

User Interface (Swing JFrame)
↓
Controllers (Business Logic)
↓
Models (Data Objects)

Key Components

1. ArtAttackModel.java

Represents a single artwork with properties:

  • Artwork ID, Title, Artist
  • Category, Medium, Art Style
  • Creation Date
  • Dimensions (Height, Width)
  • Valuation
  • Location

2. BinarySearch.java

Implements binary search algorithm:

  • Configurable search attribute using lambdas
  • Finds all occurrences of search target
  • Case-insensitive string comparison
  • Returns indices of all matches

3. MergeSort.java

Implements merge sort algorithm:

  • Recursive divide-and-conquer approach
  • Configurable sort order (Ascending/Descending)
  • Works with any artwork attribute
  • O(n log n) time complexity

4. ArtAttack.java

Main GUI application:

  • Tabbed interface (Home & Details tabs)
  • Table view for artwork display
  • Form inputs for artwork details
  • Event handlers for user actions
  • Date chooser component

5. StringUtil.java

Utility class for string operations and constants

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

ArtAttack - Artwork Management System

A comprehensive Java-based desktop application for managing artwork collections. ArtAttack provides an intuitive graphical user interface for organizing, searching, and sorting artwork information with advanced algorithms for efficient data management.

Table of Contents

Features

  • Artwork Management: Add, update, and manage artwork collections with comprehensive details

  • Advanced Search: Binary search functionality for quick lookup of artworks by various attributes

  • Sorting Capabilities: Merge sort algorithm for sorting artworks in ascending or descending order

  • Multiple Search/Sort Fields: Search and sort by:

    • Title
    • Artist
    • Category
    • Medium
    • Art Style
    • Creation Date
    • Height & Width
    • Current Location
    • Valuation
  • User-Friendly Interface: Built with Java Swing for a responsive desktop experience

  • Date Management: Integrated date picker for easy date selection

  • Data Display: Dynamic table view with formatted display of artwork information

Project Structure

art_attack_java_webapp/
├── src/
│ └── com/artattack/
│ ├── controllers/
│ │ ├── BinarySearch.java # Binary search implementation
│ │ └── MergeSort.java # Merge sort implementation
│ ├── models/
│ │ └── ArtAttackModel.java # Artwork data model
│ ├── utils/
│ │ └── StringUtil.java # Utility string functions
│ └── views/
│ ├── ArtAttack.java # Main GUI application
│ └── ArtAttack.form # GUI form definition
├── test/ # Test files directory
├── build/ # Compiled classes and build output
├── nbproject/ # NetBeans project configuration
├── build.xml # Ant build configuration
├── manifest.mf # JAR manifest file
└── README.md # This file

Technology Stack

  • Language: Java SE 8+
  • GUI Framework: Java Swing
  • Build Tool: Apache Ant (NetBeans)
  • IDE: NetBeans IDE (Compatible)
  • Additional Libraries:
    • JDateChooser (for calendar date selection)

Getting Started

Prerequisites

  • Java Development Kit (JDK) 8 or higher installed
  • Apache Ant (included with NetBeans)
  • NetBeans IDE (recommended) or any Java IDE

Installation

  1. Clone the repository:

    git clone https://github.com/prashere/art_attack_java_webapp.git
    cd art_attack_java_webapp
  2. Open in NetBeans:

    • Launch NetBeans IDE
    • Select File → Open Project
    • Navigate to the art_attack_java_webapp folder
    • Click Open Project
  3. Or use command line:

    ant build

Building the Project

Using NetBeans

  • Right-click on the project and select "Build"
  • Or use the Build menu → Build Project

Using Ant (Command Line)

# Clean and build
ant clean build
# Run the application
ant run
# Clean build artifacts
ant clean

Usage

Starting the Application

From NetBeans:

  • Right-click on the project and select "Run"
  • Or press F6

From Command Line:

ant run

Main Features

  1. Home Tab: Welcome screen with application overview
  2. Details Tab: Main workspace for artwork management
    • View all artworks in a table
    • Add new artworks
    • Update existing artworks
    • Search artworks using binary search
    • Sort artworks using merge sort

Typical Workflow

  1. Adding Artwork:

    • Click "Add Art" button
    • Fill in all artwork details (title, artist, category, etc.)
    • Set creation date using date picker
    • Click Save
  2. Searching Artwork:

    • Select search field (Title, Artist, etc.)
    • Enter search term
    • Results are displayed using binary search algorithm
  3. Sorting Artwork:

    • Select sort field
    • Choose sort order (Ascending/Descending)
    • Table updates with sorted results using merge sort

Architecture

Design Pattern: Model-View-Controller (MVC)

The application follows MVC architecture for clean separation of concerns:

  • Model (ArtAttackModel): Represents artwork data with all properties
  • View (ArtAttack): Swing GUI components for user interface
  • Controller (BinarySearch, MergeSort): Business logic for search and sort operations

Data Flow

User Interface (Swing JFrame)
↓
Controllers (Business Logic)
↓
Models (Data Objects)

Key Components

1. ArtAttackModel.java

Represents a single artwork with properties:

  • Artwork ID, Title, Artist
  • Category, Medium, Art Style
  • Creation Date
  • Dimensions (Height, Width)
  • Valuation
  • Location

2. BinarySearch.java

Implements binary search algorithm:

  • Configurable search attribute using lambdas
  • Finds all occurrences of search target
  • Case-insensitive string comparison
  • Returns indices of all matches

3. MergeSort.java

Implements merge sort algorithm:

  • Recursive divide-and-conquer approach
  • Configurable sort order (Ascending/Descending)
  • Works with any artwork attribute
  • O(n log n) time complexity

4. ArtAttack.java

Main GUI application:

  • Tabbed interface (Home & Details tabs)
  • Table view for artwork display
  • Form inputs for artwork details
  • Event handlers for user actions
  • Date chooser component

5. StringUtil.java

Utility class for string operations and constants

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ArtAttack - Artwork Management System

A comprehensive Java-based desktop application for managing artwork collections. ArtAttack provides an intuitive graphical user interface for organizing, searching, and sorting artwork information with advanced algorithms for efficient data management.

Table of Contents

Features

  • Artwork Management: Add, update, and manage artwork collections with comprehensive details

  • Advanced Search: Binary search functionality for quick lookup of artworks by various attributes

  • Sorting Capabilities: Merge sort algorithm for sorting artworks in ascending or descending order

  • Multiple Search/Sort Fields: Search and sort by:

    • Title
    • Artist
    • Category
    • Medium
    • Art Style
    • Creation Date
    • Height & Width
    • Current Location
    • Valuation
  • User-Friendly Interface: Built with Java Swing for a responsive desktop experience

  • Date Management: Integrated date picker for easy date selection

  • Data Display: Dynamic table view with formatted display of artwork information

Project Structure

art_attack_java_webapp/
├── src/
│ └── com/artattack/
│ ├── controllers/
│ │ ├── BinarySearch.java # Binary search implementation
│ │ └── MergeSort.java # Merge sort implementation
│ ├── models/
│ │ └── ArtAttackModel.java # Artwork data model
│ ├── utils/
│ │ └── StringUtil.java # Utility string functions
│ └── views/
│ ├── ArtAttack.java # Main GUI application
│ └── ArtAttack.form # GUI form definition
├── test/ # Test files directory
├── build/ # Compiled classes and build output
├── nbproject/ # NetBeans project configuration
├── build.xml # Ant build configuration
├── manifest.mf # JAR manifest file
└── README.md # This file

Technology Stack

  • Language: Java SE 8+
  • GUI Framework: Java Swing
  • Build Tool: Apache Ant (NetBeans)
  • IDE: NetBeans IDE (Compatible)
  • Additional Libraries:
    • JDateChooser (for calendar date selection)

Getting Started

Prerequisites

  • Java Development Kit (JDK) 8 or higher installed
  • Apache Ant (included with NetBeans)
  • NetBeans IDE (recommended) or any Java IDE

Installation

  1. Clone the repository:

    git clone https://github.com/prashere/art_attack_java_webapp.git
    cd art_attack_java_webapp
  2. Open in NetBeans:

    • Launch NetBeans IDE
    • Select File → Open Project
    • Navigate to the art_attack_java_webapp folder
    • Click Open Project
  3. Or use command line:

    ant build

Building the Project

Using NetBeans

  • Right-click on the project and select "Build"
  • Or use the Build menu → Build Project

Using Ant (Command Line)

# Clean and build
ant clean build
# Run the application
ant run
# Clean build artifacts
ant clean

Usage

Starting the Application

From NetBeans:

  • Right-click on the project and select "Run"
  • Or press F6

From Command Line:

ant run

Main Features

  1. Home Tab: Welcome screen with application overview
  2. Details Tab: Main workspace for artwork management
    • View all artworks in a table
    • Add new artworks
    • Update existing artworks
    • Search artworks using binary search
    • Sort artworks using merge sort

Typical Workflow

  1. Adding Artwork:

    • Click "Add Art" button
    • Fill in all artwork details (title, artist, category, etc.)
    • Set creation date using date picker
    • Click Save
  2. Searching Artwork:

    • Select search field (Title, Artist, etc.)
    • Enter search term
    • Results are displayed using binary search algorithm
  3. Sorting Artwork:

    • Select sort field
    • Choose sort order (Ascending/Descending)
    • Table updates with sorted results using merge sort

Architecture

Design Pattern: Model-View-Controller (MVC)

The application follows MVC architecture for clean separation of concerns:

  • Model (ArtAttackModel): Represents artwork data with all properties
  • View (ArtAttack): Swing GUI components for user interface
  • Controller (BinarySearch, MergeSort): Business logic for search and sort operations

Data Flow

User Interface (Swing JFrame)
↓
Controllers (Business Logic)
↓
Models (Data Objects)

Key Components

1. ArtAttackModel.java

Represents a single artwork with properties:

  • Artwork ID, Title, Artist
  • Category, Medium, Art Style
  • Creation Date
  • Dimensions (Height, Width)
  • Valuation
  • Location

2. BinarySearch.java

Implements binary search algorithm:

  • Configurable search attribute using lambdas
  • Finds all occurrences of search target
  • Case-insensitive string comparison
  • Returns indices of all matches

3. MergeSort.java

Implements merge sort algorithm:

  • Recursive divide-and-conquer approach
  • Configurable sort order (Ascending/Descending)
  • Works with any artwork attribute
  • O(n log n) time complexity

4. ArtAttack.java

Main GUI application:

  • Tabbed interface (Home & Details tabs)
  • Table view for artwork display
  • Form inputs for artwork details
  • Event handlers for user actions
  • Date chooser component

5. StringUtil.java

Utility class for string operations and constants

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ArtAttack - Artwork Management System

A comprehensive Java-based desktop application for managing artwork collections. ArtAttack provides an intuitive graphical user interface for organizing, searching, and sorting artwork information with advanced algorithms for efficient data management.

Table of Contents

Features

  • Artwork Management: Add, update, and manage artwork collections with comprehensive details

  • Advanced Search: Binary search functionality for quick lookup of artworks by various attributes

  • Sorting Capabilities: Merge sort algorithm for sorting artworks in ascending or descending order

  • Multiple Search/Sort Fields: Search and sort by:

    • Title
    • Artist
    • Category
    • Medium
    • Art Style
    • Creation Date
    • Height & Width
    • Current Location
    • Valuation
  • User-Friendly Interface: Built with Java Swing for a responsive desktop experience

  • Date Management: Integrated date picker for easy date selection

  • Data Display: Dynamic table view with formatted display of artwork information

Project Structure

art_attack_java_webapp/
├── src/
│ └── com/artattack/
│ ├── controllers/
│ │ ├── BinarySearch.java # Binary search implementation
│ │ └── MergeSort.java # Merge sort implementation
│ ├── models/
│ │ └── ArtAttackModel.java # Artwork data model
│ ├── utils/
│ │ └── StringUtil.java # Utility string functions
│ └── views/
│ ├── ArtAttack.java # Main GUI application
│ └── ArtAttack.form # GUI form definition
├── test/ # Test files directory
├── build/ # Compiled classes and build output
├── nbproject/ # NetBeans project configuration
├── build.xml # Ant build configuration
├── manifest.mf # JAR manifest file
└── README.md # This file

Technology Stack

  • Language: Java SE 8+
  • GUI Framework: Java Swing
  • Build Tool: Apache Ant (NetBeans)
  • IDE: NetBeans IDE (Compatible)
  • Additional Libraries:
    • JDateChooser (for calendar date selection)

Getting Started

Prerequisites

  • Java Development Kit (JDK) 8 or higher installed
  • Apache Ant (included with NetBeans)
  • NetBeans IDE (recommended) or any Java IDE

Installation

  1. Clone the repository:

    git clone https://github.com/prashere/art_attack_java_webapp.git
    cd art_attack_java_webapp
  2. Open in NetBeans:

    • Launch NetBeans IDE
    • Select File → Open Project
    • Navigate to the art_attack_java_webapp folder
    • Click Open Project
  3. Or use command line:

    ant build

Building the Project

Using NetBeans

  • Right-click on the project and select "Build"
  • Or use the Build menu → Build Project

Using Ant (Command Line)

# Clean and build
ant clean build
# Run the application
ant run
# Clean build artifacts
ant clean

Usage

Starting the Application

From NetBeans:

  • Right-click on the project and select "Run"
  • Or press F6

From Command Line:

ant run

Main Features

  1. Home Tab: Welcome screen with application overview
  2. Details Tab: Main workspace for artwork management
    • View all artworks in a table
    • Add new artworks
    • Update existing artworks
    • Search artworks using binary search
    • Sort artworks using merge sort

Typical Workflow

  1. Adding Artwork:

    • Click "Add Art" button
    • Fill in all artwork details (title, artist, category, etc.)
    • Set creation date using date picker
    • Click Save
  2. Searching Artwork:

    • Select search field (Title, Artist, etc.)
    • Enter search term
    • Results are displayed using binary search algorithm
  3. Sorting Artwork:

    • Select sort field
    • Choose sort order (Ascending/Descending)
    • Table updates with sorted results using merge sort

Architecture

Design Pattern: Model-View-Controller (MVC)

The application follows MVC architecture for clean separation of concerns:

  • Model (ArtAttackModel): Represents artwork data with all properties
  • View (ArtAttack): Swing GUI components for user interface
  • Controller (BinarySearch, MergeSort): Business logic for search and sort operations

Data Flow

User Interface (Swing JFrame)
↓
Controllers (Business Logic)
↓
Models (Data Objects)

Key Components

1. ArtAttackModel.java

Represents a single artwork with properties:

  • Artwork ID, Title, Artist
  • Category, Medium, Art Style
  • Creation Date
  • Dimensions (Height, Width)
  • Valuation
  • Location

2. BinarySearch.java

Implements binary search algorithm:

  • Configurable search attribute using lambdas
  • Finds all occurrences of search target
  • Case-insensitive string comparison
  • Returns indices of all matches

3. MergeSort.java

Implements merge sort algorithm:

  • Recursive divide-and-conquer approach
  • Configurable sort order (Ascending/Descending)
  • Works with any artwork attribute
  • O(n log n) time complexity

4. ArtAttack.java

Main GUI application:

  • Tabbed interface (Home & Details tabs)
  • Table view for artwork display
  • Form inputs for artwork details
  • Event handlers for user actions
  • Date chooser component

5. StringUtil.java

Utility class for string operations and constants

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

ArtAttack - Artwork Management System

A comprehensive Java-based desktop application for managing artwork collections. ArtAttack provides an intuitive graphical user interface for organizing, searching, and sorting artwork information with advanced algorithms for efficient data management.

Table of Contents

Features

  • Artwork Management: Add, update, and manage artwork collections with comprehensive details

  • Advanced Search: Binary search functionality for quick lookup of artworks by various attributes

  • Sorting Capabilities: Merge sort algorithm for sorting artworks in ascending or descending order

  • Multiple Search/Sort Fields: Search and sort by:

    • Title
    • Artist
    • Category
    • Medium
    • Art Style
    • Creation Date
    • Height & Width
    • Current Location
    • Valuation
  • User-Friendly Interface: Built with Java Swing for a responsive desktop experience

  • Date Management: Integrated date picker for easy date selection

  • Data Display: Dynamic table view with formatted display of artwork information

Project Structure

art_attack_java_webapp/
├── src/
│ └── com/artattack/
│ ├── controllers/
│ │ ├── BinarySearch.java # Binary search implementation
│ │ └── MergeSort.java # Merge sort implementation
│ ├── models/
│ │ └── ArtAttackModel.java # Artwork data model
│ ├── utils/
│ │ └── StringUtil.java # Utility string functions
│ └── views/
│ ├── ArtAttack.java # Main GUI application
│ └── ArtAttack.form # GUI form definition
├── test/ # Test files directory
├── build/ # Compiled classes and build output
├── nbproject/ # NetBeans project configuration
├── build.xml # Ant build configuration
├── manifest.mf # JAR manifest file
└── README.md # This file

Technology Stack

  • Language: Java SE 8+
  • GUI Framework: Java Swing
  • Build Tool: Apache Ant (NetBeans)
  • IDE: NetBeans IDE (Compatible)
  • Additional Libraries:
    • JDateChooser (for calendar date selection)

Getting Started

Prerequisites

  • Java Development Kit (JDK) 8 or higher installed
  • Apache Ant (included with NetBeans)
  • NetBeans IDE (recommended) or any Java IDE

Installation

  1. Clone the repository:

    git clone https://github.com/prashere/art_attack_java_webapp.git
    cd art_attack_java_webapp
  2. Open in NetBeans:

    • Launch NetBeans IDE
    • Select File → Open Project
    • Navigate to the art_attack_java_webapp folder
    • Click Open Project
  3. Or use command line:

    ant build

Building the Project

Using NetBeans

  • Right-click on the project and select "Build"
  • Or use the Build menu → Build Project

Using Ant (Command Line)

# Clean and build
ant clean build
# Run the application
ant run
# Clean build artifacts
ant clean

Usage

Starting the Application

From NetBeans:

  • Right-click on the project and select "Run"
  • Or press F6

From Command Line:

ant run

Main Features

  1. Home Tab: Welcome screen with application overview
  2. Details Tab: Main workspace for artwork management
    • View all artworks in a table
    • Add new artworks
    • Update existing artworks
    • Search artworks using binary search
    • Sort artworks using merge sort

Typical Workflow

  1. Adding Artwork:

    • Click "Add Art" button
    • Fill in all artwork details (title, artist, category, etc.)
    • Set creation date using date picker
    • Click Save
  2. Searching Artwork:

    • Select search field (Title, Artist, etc.)
    • Enter search term
    • Results are displayed using binary search algorithm
  3. Sorting Artwork:

    • Select sort field
    • Choose sort order (Ascending/Descending)
    • Table updates with sorted results using merge sort

Architecture

Design Pattern: Model-View-Controller (MVC)

The application follows MVC architecture for clean separation of concerns:

  • Model (ArtAttackModel): Represents artwork data with all properties
  • View (ArtAttack): Swing GUI components for user interface
  • Controller (BinarySearch, MergeSort): Business logic for search and sort operations

Data Flow

User Interface (Swing JFrame)
↓
Controllers (Business Logic)
↓
Models (Data Objects)

Key Components

1. ArtAttackModel.java

Represents a single artwork with properties:

  • Artwork ID, Title, Artist
  • Category, Medium, Art Style
  • Creation Date
  • Dimensions (Height, Width)
  • Valuation
  • Location

2. BinarySearch.java

Implements binary search algorithm:

  • Configurable search attribute using lambdas
  • Finds all occurrences of search target
  • Case-insensitive string comparison
  • Returns indices of all matches

3. MergeSort.java

Implements merge sort algorithm:

  • Recursive divide-and-conquer approach
  • Configurable sort order (Ascending/Descending)
  • Works with any artwork attribute
  • O(n log n) time complexity

4. ArtAttack.java

Main GUI application:

  • Tabbed interface (Home & Details tabs)
  • Table view for artwork display
  • Form inputs for artwork details
  • Event handlers for user actions
  • Date chooser component

5. StringUtil.java

Utility class for string operations and constants

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ArtAttack - Artwork Management System

A comprehensive Java-based desktop application for managing artwork collections. ArtAttack provides an intuitive graphical user interface for organizing, searching, and sorting artwork information with advanced algorithms for efficient data management.

Table of Contents

Features

  • Artwork Management: Add, update, and manage artwork collections with comprehensive details

  • Advanced Search: Binary search functionality for quick lookup of artworks by various attributes

  • Sorting Capabilities: Merge sort algorithm for sorting artworks in ascending or descending order

  • Multiple Search/Sort Fields: Search and sort by:

    • Title
    • Artist
    • Category
    • Medium
    • Art Style
    • Creation Date
    • Height & Width
    • Current Location
    • Valuation
  • User-Friendly Interface: Built with Java Swing for a responsive desktop experience

  • Date Management: Integrated date picker for easy date selection

  • Data Display: Dynamic table view with formatted display of artwork information

Project Structure

art_attack_java_webapp/
├── src/
│ └── com/artattack/
│ ├── controllers/
│ │ ├── BinarySearch.java # Binary search implementation
│ │ └── MergeSort.java # Merge sort implementation
│ ├── models/
│ │ └── ArtAttackModel.java # Artwork data model
│ ├── utils/
│ │ └── StringUtil.java # Utility string functions
│ └── views/
│ ├── ArtAttack.java # Main GUI application
│ └── ArtAttack.form # GUI form definition
├── test/ # Test files directory
├── build/ # Compiled classes and build output
├── nbproject/ # NetBeans project configuration
├── build.xml # Ant build configuration
├── manifest.mf # JAR manifest file
└── README.md # This file

Technology Stack

  • Language: Java SE 8+
  • GUI Framework: Java Swing
  • Build Tool: Apache Ant (NetBeans)
  • IDE: NetBeans IDE (Compatible)
  • Additional Libraries:
    • JDateChooser (for calendar date selection)

Getting Started

Prerequisites

  • Java Development Kit (JDK) 8 or higher installed
  • Apache Ant (included with NetBeans)
  • NetBeans IDE (recommended) or any Java IDE

Installation

  1. Clone the repository:

    git clone https://github.com/prashere/art_attack_java_webapp.git
    cd art_attack_java_webapp
  2. Open in NetBeans:

    • Launch NetBeans IDE
    • Select File → Open Project
    • Navigate to the art_attack_java_webapp folder
    • Click Open Project
  3. Or use command line:

    ant build

Building the Project

Using NetBeans

  • Right-click on the project and select "Build"
  • Or use the Build menu → Build Project

Using Ant (Command Line)

# Clean and build
ant clean build
# Run the application
ant run
# Clean build artifacts
ant clean

Usage

Starting the Application

From NetBeans:

  • Right-click on the project and select "Run"
  • Or press F6

From Command Line:

ant run

Main Features

  1. Home Tab: Welcome screen with application overview
  2. Details Tab: Main workspace for artwork management
    • View all artworks in a table
    • Add new artworks
    • Update existing artworks
    • Search artworks using binary search
    • Sort artworks using merge sort

Typical Workflow

  1. Adding Artwork:

    • Click "Add Art" button
    • Fill in all artwork details (title, artist, category, etc.)
    • Set creation date using date picker
    • Click Save
  2. Searching Artwork:

    • Select search field (Title, Artist, etc.)
    • Enter search term
    • Results are displayed using binary search algorithm
  3. Sorting Artwork:

    • Select sort field
    • Choose sort order (Ascending/Descending)
    • Table updates with sorted results using merge sort

Architecture

Design Pattern: Model-View-Controller (MVC)

The application follows MVC architecture for clean separation of concerns:

  • Model (ArtAttackModel): Represents artwork data with all properties
  • View (ArtAttack): Swing GUI components for user interface
  • Controller (BinarySearch, MergeSort): Business logic for search and sort operations

Data Flow

User Interface (Swing JFrame)
↓
Controllers (Business Logic)
↓
Models (Data Objects)

Key Components

1. ArtAttackModel.java

Represents a single artwork with properties:

  • Artwork ID, Title, Artist
  • Category, Medium, Art Style
  • Creation Date
  • Dimensions (Height, Width)
  • Valuation
  • Location

2. BinarySearch.java

Implements binary search algorithm:

  • Configurable search attribute using lambdas
  • Finds all occurrences of search target
  • Case-insensitive string comparison
  • Returns indices of all matches

3. MergeSort.java

Implements merge sort algorithm:

  • Recursive divide-and-conquer approach
  • Configurable sort order (Ascending/Descending)
  • Works with any artwork attribute
  • O(n log n) time complexity

4. ArtAttack.java

Main GUI application:

  • Tabbed interface (Home & Details tabs)
  • Table view for artwork display
  • Form inputs for artwork details
  • Event handlers for user actions
  • Date chooser component

5. StringUtil.java

Utility class for string operations and constants

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ArtAttack - Artwork Management System

A comprehensive Java-based desktop application for managing artwork collections. ArtAttack provides an intuitive graphical user interface for organizing, searching, and sorting artwork information with advanced algorithms for efficient data management.

Table of Contents

Features

  • Artwork Management: Add, update, and manage artwork collections with comprehensive details

  • Advanced Search: Binary search functionality for quick lookup of artworks by various attributes

  • Sorting Capabilities: Merge sort algorithm for sorting artworks in ascending or descending order

  • Multiple Search/Sort Fields: Search and sort by:

    • Title
    • Artist
    • Category
    • Medium
    • Art Style
    • Creation Date
    • Height & Width
    • Current Location
    • Valuation
  • User-Friendly Interface: Built with Java Swing for a responsive desktop experience

  • Date Management: Integrated date picker for easy date selection

  • Data Display: Dynamic table view with formatted display of artwork information

Project Structure

art_attack_java_webapp/
├── src/
│ └── com/artattack/
│ ├── controllers/
│ │ ├── BinarySearch.java # Binary search implementation
│ │ └── MergeSort.java # Merge sort implementation
│ ├── models/
│ │ └── ArtAttackModel.java # Artwork data model
│ ├── utils/
│ │ └── StringUtil.java # Utility string functions
│ └── views/
│ ├── ArtAttack.java # Main GUI application
│ └── ArtAttack.form # GUI form definition
├── test/ # Test files directory
├── build/ # Compiled classes and build output
├── nbproject/ # NetBeans project configuration
├── build.xml # Ant build configuration
├── manifest.mf # JAR manifest file
└── README.md # This file

Technology Stack

  • Language: Java SE 8+
  • GUI Framework: Java Swing
  • Build Tool: Apache Ant (NetBeans)
  • IDE: NetBeans IDE (Compatible)
  • Additional Libraries:
    • JDateChooser (for calendar date selection)

Getting Started

Prerequisites

  • Java Development Kit (JDK) 8 or higher installed
  • Apache Ant (included with NetBeans)
  • NetBeans IDE (recommended) or any Java IDE

Installation

  1. Clone the repository:

    git clone https://github.com/prashere/art_attack_java_webapp.git
    cd art_attack_java_webapp
  2. Open in NetBeans:

    • Launch NetBeans IDE
    • Select File → Open Project
    • Navigate to the art_attack_java_webapp folder
    • Click Open Project
  3. Or use command line:

    ant build

Building the Project

Using NetBeans

  • Right-click on the project and select "Build"
  • Or use the Build menu → Build Project

Using Ant (Command Line)

# Clean and build
ant clean build
# Run the application
ant run
# Clean build artifacts
ant clean

Usage

Starting the Application

From NetBeans:

  • Right-click on the project and select "Run"
  • Or press F6

From Command Line:

ant run

Main Features

  1. Home Tab: Welcome screen with application overview
  2. Details Tab: Main workspace for artwork management
    • View all artworks in a table
    • Add new artworks
    • Update existing artworks
    • Search artworks using binary search
    • Sort artworks using merge sort

Typical Workflow

  1. Adding Artwork:

    • Click "Add Art" button
    • Fill in all artwork details (title, artist, category, etc.)
    • Set creation date using date picker
    • Click Save
  2. Searching Artwork:

    • Select search field (Title, Artist, etc.)
    • Enter search term
    • Results are displayed using binary search algorithm
  3. Sorting Artwork:

    • Select sort field
    • Choose sort order (Ascending/Descending)
    • Table updates with sorted results using merge sort

Architecture

Design Pattern: Model-View-Controller (MVC)

The application follows MVC architecture for clean separation of concerns:

  • Model (ArtAttackModel): Represents artwork data with all properties
  • View (ArtAttack): Swing GUI components for user interface
  • Controller (BinarySearch, MergeSort): Business logic for search and sort operations

Data Flow

User Interface (Swing JFrame)
↓
Controllers (Business Logic)
↓
Models (Data Objects)

Key Components

1. ArtAttackModel.java

Represents a single artwork with properties:

  • Artwork ID, Title, Artist
  • Category, Medium, Art Style
  • Creation Date
  • Dimensions (Height, Width)
  • Valuation
  • Location

2. BinarySearch.java

Implements binary search algorithm:

  • Configurable search attribute using lambdas
  • Finds all occurrences of search target
  • Case-insensitive string comparison
  • Returns indices of all matches

3. MergeSort.java

Implements merge sort algorithm:

  • Recursive divide-and-conquer approach
  • Configurable sort order (Ascending/Descending)
  • Works with any artwork attribute
  • O(n log n) time complexity

4. ArtAttack.java

Main GUI application:

  • Tabbed interface (Home & Details tabs)
  • Table view for artwork display
  • Form inputs for artwork details
  • Event handlers for user actions
  • Date chooser component

5. StringUtil.java

Utility class for string operations and constants

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

ArtAttack - Artwork Management System

A comprehensive Java-based desktop application for managing artwork collections. ArtAttack provides an intuitive graphical user interface for organizing, searching, and sorting artwork information with advanced algorithms for efficient data management.

Table of Contents

Features

  • Artwork Management: Add, update, and manage artwork collections with comprehensive details

  • Advanced Search: Binary search functionality for quick lookup of artworks by various attributes

  • Sorting Capabilities: Merge sort algorithm for sorting artworks in ascending or descending order

  • Multiple Search/Sort Fields: Search and sort by:

    • Title
    • Artist
    • Category
    • Medium
    • Art Style
    • Creation Date
    • Height & Width
    • Current Location
    • Valuation
  • User-Friendly Interface: Built with Java Swing for a responsive desktop experience

  • Date Management: Integrated date picker for easy date selection

  • Data Display: Dynamic table view with formatted display of artwork information

Project Structure

art_attack_java_webapp/
├── src/
│ └── com/artattack/
│ ├── controllers/
│ │ ├── BinarySearch.java # Binary search implementation
│ │ └── MergeSort.java # Merge sort implementation
│ ├── models/
│ │ └── ArtAttackModel.java # Artwork data model
│ ├── utils/
│ │ └── StringUtil.java # Utility string functions
│ └── views/
│ ├── ArtAttack.java # Main GUI application
│ └── ArtAttack.form # GUI form definition
├── test/ # Test files directory
├── build/ # Compiled classes and build output
├── nbproject/ # NetBeans project configuration
├── build.xml # Ant build configuration
├── manifest.mf # JAR manifest file
└── README.md # This file

Technology Stack

  • Language: Java SE 8+
  • GUI Framework: Java Swing
  • Build Tool: Apache Ant (NetBeans)
  • IDE: NetBeans IDE (Compatible)
  • Additional Libraries:
    • JDateChooser (for calendar date selection)

Getting Started

Prerequisites

  • Java Development Kit (JDK) 8 or higher installed
  • Apache Ant (included with NetBeans)
  • NetBeans IDE (recommended) or any Java IDE

Installation

  1. Clone the repository:

    git clone https://github.com/prashere/art_attack_java_webapp.git
    cd art_attack_java_webapp
  2. Open in NetBeans:

    • Launch NetBeans IDE
    • Select File → Open Project
    • Navigate to the art_attack_java_webapp folder
    • Click Open Project
  3. Or use command line:

    ant build

Building the Project

Using NetBeans

  • Right-click on the project and select "Build"
  • Or use the Build menu → Build Project

Using Ant (Command Line)

# Clean and build
ant clean build
# Run the application
ant run
# Clean build artifacts
ant clean

Usage

Starting the Application

From NetBeans:

  • Right-click on the project and select "Run"
  • Or press F6

From Command Line:

ant run

Main Features

  1. Home Tab: Welcome screen with application overview
  2. Details Tab: Main workspace for artwork management
    • View all artworks in a table
    • Add new artworks
    • Update existing artworks
    • Search artworks using binary search
    • Sort artworks using merge sort

Typical Workflow

  1. Adding Artwork:

    • Click "Add Art" button
    • Fill in all artwork details (title, artist, category, etc.)
    • Set creation date using date picker
    • Click Save
  2. Searching Artwork:

    • Select search field (Title, Artist, etc.)
    • Enter search term
    • Results are displayed using binary search algorithm
  3. Sorting Artwork:

    • Select sort field
    • Choose sort order (Ascending/Descending)
    • Table updates with sorted results using merge sort

Architecture

Design Pattern: Model-View-Controller (MVC)

The application follows MVC architecture for clean separation of concerns:

  • Model (ArtAttackModel): Represents artwork data with all properties
  • View (ArtAttack): Swing GUI components for user interface
  • Controller (BinarySearch, MergeSort): Business logic for search and sort operations

Data Flow

User Interface (Swing JFrame)
↓
Controllers (Business Logic)
↓
Models (Data Objects)

Key Components

1. ArtAttackModel.java

Represents a single artwork with properties:

  • Artwork ID, Title, Artist
  • Category, Medium, Art Style
  • Creation Date
  • Dimensions (Height, Width)
  • Valuation
  • Location

2. BinarySearch.java

Implements binary search algorithm:

  • Configurable search attribute using lambdas
  • Finds all occurrences of search target
  • Case-insensitive string comparison
  • Returns indices of all matches

3. MergeSort.java

Implements merge sort algorithm:

  • Recursive divide-and-conquer approach
  • Configurable sort order (Ascending/Descending)
  • Works with any artwork attribute
  • O(n log n) time complexity

4. ArtAttack.java

Main GUI application:

  • Tabbed interface (Home & Details tabs)
  • Table view for artwork display
  • Form inputs for artwork details
  • Event handlers for user actions
  • Date chooser component

5. StringUtil.java

Utility class for string operations and constants

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages