C
C#15mo ago
JakenVeina

❔ WPF Usability/Design Opinions

So, I think what I want is the following chunk of UI:
- Assets
[Checking 1234]
[Checking 5678]
[Savings 9012]
+ Liabilities
+ Income
- Expenses
- Living
[Mortgage]
[Property Tax]
- Utilities
[Electricity]
[Water/Sewer]
[Trash]
- Assets
[Checking 1234]
[Checking 5678]
[Savings 9012]
+ Liabilities
+ Income
- Expenses
- Living
[Mortgage]
[Property Tax]
- Utilities
[Electricity]
[Water/Sewer]
[Trash]
Here we have a set of accounting ledgers, displayed within a tree of categories. My intention at the moment is to have the following intraction elements in UI, and I can't decide if this is overly-complicated or not:
1) The empty space in the UI has a "Create Category" option, I.E. Ledgers cannot exist outside of a category. The root items are all categories.
2) Each category has "Edit", "Create Sub-Category" and "Create Ledger"
2.1) Each category can contain either sub-categories, or ledgers, but not both. Once a category contains one of these, the option to create the opposite gets disabled.
3) Ledgers do not have any children. They only have an "Edit" option
4) Ledgers and Categories can all be drag-and-drop moved around (for valid movements). For categories, this moves the whole tree branch.
1) The empty space in the UI has a "Create Category" option, I.E. Ledgers cannot exist outside of a category. The root items are all categories.
2) Each category has "Edit", "Create Sub-Category" and "Create Ledger"
2.1) Each category can contain either sub-categories, or ledgers, but not both. Once a category contains one of these, the option to create the opposite gets disabled.
3) Ledgers do not have any children. They only have an "Edit" option
4) Ledgers and Categories can all be drag-and-drop moved around (for valid movements). For categories, this moves the whole tree branch.
For context, a Ledger here is simply something that transactions can target, wherein a transaction indicates money being transfered from a source ledger to a destination ledger. That allows balances to be rolled up per-ledger, or by category. Currently, my models are...
public record CategoryVersionEntity
{
public required ulong Id { get; init; }
public required ulong CategoryId { get; init; }
public required ulong CreationId { get; init; }
public ulong? PreviousVersionId { get; init; }
public required ulong? ParentCategoryId { get; init; }
public required string? Description { get; init; }
public required string Name { get; init; }
}

public record LedgerVersionEntity
{
public required ulong Id { get; init; }
public required ulong LedgerId { get; init; }
public required ulong CategoryId { get; init; }
public required ulong CreationId { get; init; }
public ulong? PreviousVersionId { get; init; }
public required string? Description { get; init; }
public required string Name { get; init; }
}
public record CategoryVersionEntity
{
public required ulong Id { get; init; }
public required ulong CategoryId { get; init; }
public required ulong CreationId { get; init; }
public ulong? PreviousVersionId { get; init; }
public required ulong? ParentCategoryId { get; init; }
public required string? Description { get; init; }
public required string Name { get; init; }
}

public record LedgerVersionEntity
{
public required ulong Id { get; init; }
public required ulong LedgerId { get; init; }
public required ulong CategoryId { get; init; }
public required ulong CreationId { get; init; }
public ulong? PreviousVersionId { get; init; }
public required string? Description { get; init; }
public required string Name { get; init; }
}
TL;DR does the above UI/UX sound over-complicated or unintuitive?
3 Replies
rodrigovaz
rodrigovaz15mo ago
I don't think so, IMO the "worst" is the restriction on no ledgers at same level as a sub-category because that creates a problem: What if I created N ledgers and decided that it would be best to separate in 2 sub categories, what do I do with the N ledgers? Do I move tem by hand to another category just to create the subcategories? Do I delete them to then recreate them by hand? Maybe have a specific flow to create a sub category and include all child nodes to it automatically?
JakenVeina
JakenVeinaOP15mo ago
hmmmmm that's a good point yeah, you'd basically have to create a new category somewhere else, probably the root move all the ledgers to it then move it into position ugh I need to just support mixing lists, don't I god, that's gonna be a pain in the ass
Accord
Accord14mo ago
Was this issue resolved? If so, run /close - otherwise I will mark this as stale and this post will be archived until there is new activity.
Want results from more Discord servers?
Add your server