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
Model Editor Tab
- Model property tree
- Property details panel
- Constraints configuration
- Statistical model settings
Tides Editor Tab
- Timeline visualization
- Step configuration
- Transaction setup
- Tides testing
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
Start New Model
- Click "New Model" or press
Ctrl+N
- Choose "Blank Model" or "Import from Sample"
- Click "New Model" or press
Add Properties
- Right-click in property tree
- Select "Add Property"
- Configure type and constraints
Configure Statistical Models
- Select a string property
- Click "Edit String Model"
- Set patterns and entropy
Save Model
- Click "Save" or press
Ctrl+S
- Choose location and filename
- Click "Save" or press
Importing Existing Data
Import from CSV
- File → Import → From CSV
- Select CSV file
- Review detected model
- Adjust properties as needed
Import from JSON
- File → Import → From JSON
- Select JSON files
- Analyze structure
- Generate model with statistics
Generating Documents
Quick Generation
- Open model in Model Editor
- Click "Generate" button
- Set document count
- Choose output format
Advanced Generation
- Tools → Document Generator
- Configure generation parameters
- Set entropy overrides
- Generate and export
Workflow Examples
Example 1: Creating a Customer Model
- Create new model
- Add properties:
customerId
(string, pattern: "CUST-######")name
(string, with name patterns)email
(string, email format)age
(integer, histogram 18-80)joinDate
(string, date format)
- Configure string models for realistic names
- Set up age distribution histogram
- Save and generate test data
Example 2: Designing E-commerce Tides
- Create product model
- Create order model
- Create payment model
- Open Tides Editor
- Add steps for each model
- Configure timing (products → orders → payments)
- Set up parent-child relationships
- Test Tides generation
Example 3: Merging Multiple Models
- Open Model Merge tool
- Load source models
- Drag properties to merge area
- Resolve naming conflicts
- Configure combined constraints
- 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 modelCtrl+O
: Open fileCtrl+S
: Save currentCtrl+Z/Y
: Undo/RedoCtrl+Tab
: Switch tabsDelete
: Remove selected propertyF2
: 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
- Learn the Model Editor in detail
- Explore the Tides Editor for Tides
- Master the Model Merge Tool
- Understand Import/Export options
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.