DataFloodEditor Overview

Introduction

DataFloodEditor is a cross-platform desktop application that provides a visual interface for creating and editing DataFlood models, designing time-based document sequences using Tides, and managing synthetic data generation projects. Built with Avalonia UI, it runs on Windows, macOS, and Linux.

Key Features

Visual Model Editing

  • Model Editor: Create and modify DataFlood models with statistical models
  • Property Tree: Hierarchical view of model structure
  • Drag-and-Drop: Reorganize properties easily
  • Real-time Validation: Instant feedback on model validity

DataFlood Model Editor

  • String Model Editor: Configure character patterns, n-grams, and vocabularies
  • Histogram Editor: Design numeric value distributions visually
  • Pattern Detection: Automatic format recognition (emails, URLs, dates)
  • Entropy Control: Fine-tune generation randomness

Tides Design

  • Tides Editor: Create time-based document generation with Tides
  • Timeline View: Visual representation of generation intervals
  • Parent-Child Relationships: Define document dependencies
  • Transaction Configuration: Link related documents

Data Management

  • Import Capabilities: Generate DataFlood models from CSV and JSON files
  • Export Options: Save models, generate documents, export Tides
  • Model Merge Tool: Combine multiple models into one
  • Project Management: Organize models and Tides in projects

Productivity Features

  • Multi-Tab Interface: Work with multiple models simultaneously
  • Undo/Redo Support: Full history tracking for all edits
  • Recent Files: Quick access to recently used models
  • Keyboard Shortcuts: Efficient navigation and editing
  • Auto-Save: Protect work against unexpected closures

User Interface Layout

Main Window Components

┌─────────────────────────────────────────────────────────┐
│  File  Edit  View  Tools  Help                         │
├─────────────────────────────────────────────────────────┤
│ [New] [Open] [Save] [Import] [Export] [Generate]       │
├────────────┬────────────────────────────────────────────┤
│           │                                             │
│  Project  │  ┌──────┬──────┬──────┐                   │
│   Tree    │  │Model1│Model2│Tides │ (Tabs)            │
│           │  ├──────┴──────┴──────┤                   │
│  - Models │  │                    │                   │
│    └ M1   │  │   Model Editor     │                   │
│    └ M2   │  │     Content        │                   │
│  - Tides  │  │                    │                   │
│    └ T1   │  │                    │                   │
│           │  └────────────────────┘                   │
├────────────┴────────────────────────────────────────────┤
│ Status: Ready | File: model.json | Changes: Saved      │
└─────────────────────────────────────────────────────────┘

Editor Types

  1. Model Editor Tab

    • Model property tree
    • Property details panel
    • Constraints configuration
    • Statistical model settings
  2. Tides Editor Tab

    • Timeline visualization
    • Step configuration
    • Transaction setup
    • Tides testing
  3. Merge Tool Tab

    • Source model panels
    • Drag-drop merge area
    • Conflict resolution
    • Preview panel

Getting Started

Opening DataFloodEditor

## Run the executable
DataFloodEditor

## Or on Unix/Linux systems
./DataFloodEditor

Creating Your First Model

  1. Start New Model

    • Click "New Model" or press Ctrl+N
    • Choose "Blank Model" or "Import from Sample"
  2. Add Properties

    • Right-click in property tree
    • Select "Add Property"
    • Configure type and constraints
  3. Configure Statistical Models

    • Select a string property
    • Click "Edit String Model"
    • Set patterns and entropy
  4. Save Model

    • Click "Save" or press Ctrl+S
    • Choose location and filename

Importing Existing Data

  1. Import from CSV

    • File → Import → From CSV
    • Select CSV file
    • Review detected model
    • Adjust properties as needed
  2. Import from JSON

    • File → Import → From JSON
    • Select JSON files
    • Analyze structure
    • Generate model with statistics

Generating Documents

  1. Quick Generation

    • Open model in Model Editor
    • Click "Generate" button
    • Set document count
    • Choose output format
  2. Advanced Generation

    • Tools → Document Generator
    • Configure generation parameters
    • Set entropy overrides
    • Generate and export

Workflow Examples

Example 1: Creating a Customer Model

  1. Create new model
  2. Add properties:
    • customerId (string, pattern: "CUST-######")
    • name (string, with name patterns)
    • email (string, email format)
    • age (integer, histogram 18-80)
    • joinDate (string, date format)
  3. Configure string models for realistic names
  4. Set up age distribution histogram
  5. Save and generate test data

Example 2: Designing E-commerce Tides

  1. Create product model
  2. Create order model
  3. Create payment model
  4. Open Tides Editor
  5. Add steps for each model
  6. Configure timing (products → orders → payments)
  7. Set up parent-child relationships
  8. Test Tides generation

Example 3: Merging Multiple Models

  1. Open Model Merge tool
  2. Load source models
  3. Drag properties to merge area
  4. Resolve naming conflicts
  5. Configure combined constraints
  6. Save merged model

Key Concepts

Projects

  • Organize related models and Tides
  • Maintain file relationships
  • Share common configurations
  • Enable batch operations

Tabs and Multi-Document

  • Work with multiple models simultaneously
  • Compare models side-by-side
  • Copy properties between models
  • Test different configurations

Statistical Models

  • String Models: Pattern-based text generation
  • Histograms: Probability-based number generation
  • Entropy: Control randomness vs. predictability
  • Vocabularies: Sample from existing values

Validation

  • Real-time model validation
  • Constraint checking
  • Format verification
  • Generation preview

Navigation Tips

Keyboard Shortcuts

  • Ctrl+N: New model
  • Ctrl+O: Open file
  • Ctrl+S: Save current
  • Ctrl+Z/Y: Undo/Redo
  • Ctrl+Tab: Switch tabs
  • Delete: Remove selected property
  • F2: Rename property

Context Menus

  • Right-click on properties for actions
  • Right-click in empty space to add
  • Right-click on tabs for tab options

Drag and Drop

  • Reorder properties in tree
  • Move properties between objects
  • Merge properties from different models
  • Import files by dropping

File Management

Supported File Types

  • .json: DataFlood models and configurations
  • .csv: Import source for model generation
  • .yaml/.yml: Configuration files
  • .tide: Tides configurations

Auto-Save and Recovery

  • Auto-saves every 5 minutes
  • Recovers unsaved work after crash
  • Maintains backup of last saved version

Recent Files

  • Access last 10 opened files
  • Pin frequently used models
  • Clear recent files list

Integration with Other Tools

DataFlood CLI

  • Export models for command-line use
  • Import CLI-generated models
  • Test generation parameters

FloodGate API

  • Export models for API deployment
  • Design Tides for API execution
  • Test API configurations

Performance Considerations

Large Models

  • Lazy loading for better performance
  • Virtualized property trees
  • Efficient memory management

Generation Limits

  • GUI generation limited to 10,000 documents
  • Use CLI/API for larger batches
  • Preview with smaller counts first

Next Steps

Troubleshooting

Application Won't Start

  • Verify .NET 9.0 is installed
  • Check system requirements
  • Review error logs in %APPDATA%/DataFloodEditor

Model Validation Errors

  • Check property types match constraints
  • Verify required fields are defined
  • Ensure patterns are valid regex

Generation Issues

  • Reduce document count for testing
  • Check entropy settings
  • Verify statistical models are configured

For more help, see the Troubleshooting Guide.