拼ui 一些业务逻辑x实现
This commit is contained in:
@@ -0,0 +1,162 @@
|
||||
# Library Panel (Asset Tree)
|
||||
|
||||
This chapter explains the **Library** panel on the left side of `Unity Easy Chart/Library Editor`. It manages your chart assets (`ChartProfile`) and folder structure, and determines which Profile the panels on the right are currently editing.
|
||||
|
||||
---
|
||||
|
||||
## Feature Overview
|
||||
|
||||
- **Structure Display**: shows folders and `ChartProfile` (`.asset`) under the library root in a tree.
|
||||
- **Selection Drives Editing**: selecting a `ChartProfile` triggers:
|
||||
- Inspector binds to that Profile
|
||||
- Series binds to that Profile `series`
|
||||
- Preview refresh
|
||||
- JSON Injection generates example JSON (and can Apply back to that Profile)
|
||||
- **Asset Management**: create/rename/delete, drag-move, expand/collapse, etc.
|
||||
|
||||
---
|
||||
|
||||
## UI Structure
|
||||
|
||||
The header bar at the top of the Library panel typically contains (left to right):
|
||||
|
||||
- **Library**: title.
|
||||
- **(Current Library Name)**: shows the selected library/root name (useful if you have multiple libraries).
|
||||
- **Menu**: entry for common actions (similar to right-click, but centralized).
|
||||
- **Help**: opens this chapter.
|
||||
|
||||
In the global window toolbar at the top, on the right side of the Library dropdown you may see:
|
||||
|
||||
- **+**: add a new Library.
|
||||
- **-**: delete the current Library.
|
||||
- **Clone**: duplicate the current Library (see below).
|
||||
|
||||
Below the header is:
|
||||
|
||||
- **TreeView**:
|
||||
- folders
|
||||
- `ChartProfile` assets (chart configuration assets)
|
||||
|
||||
---
|
||||
|
||||
## Selection Logic (Important)
|
||||
|
||||
- **When a Folder is Selected**:
|
||||
- Inspector/Series on the right are cleared (no Profile to edit).
|
||||
- JSON Injection switches to a "no selected Profile" example or keeps the current example (implementation-dependent).
|
||||
- **When a ChartProfile is Selected**:
|
||||
- Inspector/Series immediately bind to the Profile's serialized data.
|
||||
- Any field change triggers a delayed Preview refresh (`delayCall`).
|
||||
|
||||
Tip: if the right panels are empty, first confirm a `ChartProfile` (not a folder) is selected on the left.
|
||||
|
||||
---
|
||||
|
||||
## Common Actions (Header Menu)
|
||||
|
||||
Clicking **Menu** (the small menu icon) opens an action menu. Common items include:
|
||||
|
||||
- **New Chart**: create a new `ChartProfile` under the target folder.
|
||||
- **New Folder**: create a new folder under the target folder.
|
||||
- **Refresh**: rescan and rebuild the tree (useful after manual moves/copies in the Project view).
|
||||
- **Expand All**: expand all folders.
|
||||
- **Collapse All**: collapse all folders.
|
||||
- **Rename / Delete**: rename/delete the currently selected item.
|
||||
- If the library root is selected, these are typically disabled.
|
||||
- **Export UGUI Prefab** (available when a Profile is selected): export the selected Profile as a UGUI prefab (for runtime display).
|
||||
|
||||
### How the Target Folder is Determined
|
||||
|
||||
**New Chart / New Folder** create assets under the "target folder":
|
||||
|
||||
- If a **folder** is selected: the target is that folder.
|
||||
- If a **ChartProfile** is selected: the target is usually the Profile's parent folder.
|
||||
- If nothing is selected or unclear: the target usually falls back to the library root.
|
||||
|
||||
---
|
||||
|
||||
## Clone Library
|
||||
|
||||
When you need to duplicate a full chart library (including Profiles and UXML) into a new library (for branching/versions/theme variants), use **Clone** in the top toolbar.
|
||||
|
||||
### Entry and Usage
|
||||
|
||||
- Click the **Clone** icon to the right of the Library dropdown.
|
||||
- Enter the new library name and confirm.
|
||||
|
||||
### What Gets Cloned
|
||||
|
||||
- `Assets/EasyChart/Library/<CurrentLibrary>` is copied to `Assets/EasyChart/Library/<NewLibrary>`.
|
||||
- `Assets/EasyChart/LibraryUxml/<CurrentLibrary>` is copied to `Assets/EasyChart/LibraryUxml/<NewLibrary>` (if the source UXML folder exists).
|
||||
|
||||
### Limitations and Naming Rules
|
||||
|
||||
- The `<Root>` library cannot be cloned.
|
||||
- The new name is sanitized (invalid filename characters removed); blank names are ignored.
|
||||
- If the target library already exists (folder already exists), it will prompt and cancel.
|
||||
|
||||
### After Cloning
|
||||
|
||||
- Automatically switches the current Library selection to the new library.
|
||||
- Refreshes the Library dropdown and tree view, and triggers refresh for right panels/preview.
|
||||
|
||||
---
|
||||
|
||||
## Common Actions (Context Menu)
|
||||
|
||||
You can also **right-click** items in the tree:
|
||||
|
||||
### Right-click a Folder
|
||||
|
||||
- **New Folder...**: create a subfolder.
|
||||
- **New Chart...**: create a new `ChartProfile` in that folder.
|
||||
- **Export Folder to UXML (Mirror/Backup)**: export the folder contents to UXML (backup/distribution/versioning).
|
||||
- **Rename...**: rename the folder.
|
||||
- **Delete**: delete the folder (destructive; be careful).
|
||||
|
||||
### Right-click a ChartProfile
|
||||
|
||||
- **Export to UXML**: export UXML for the current Profile.
|
||||
- **Clone**: clone a new Profile (quickly derive a similar chart).
|
||||
- **Rename...**: rename the asset (also tries to sync-update `profile.name` / `profile.chartName`).
|
||||
- **Ping**: locate the asset in the Project view.
|
||||
- **Delete**: delete the asset.
|
||||
|
||||
---
|
||||
|
||||
## Drag-move and Sorting
|
||||
|
||||
The Library tree supports dragging folders or `ChartProfile`:
|
||||
|
||||
- **Drag a ChartProfile onto a folder**: triggers `AssetDatabase.MoveAsset` to move the `.asset` into the target folder.
|
||||
- **Drag a folder onto a folder**: moves the whole folder under the target folder.
|
||||
|
||||
Notes:
|
||||
|
||||
- If the target is invalid (dragging into itself/child folder), it will be rejected (cursor shows Rejected).
|
||||
- After moving, the tree refreshes automatically.
|
||||
|
||||
---
|
||||
|
||||
## Rename (Double-click and Inline Editing)
|
||||
|
||||
**Double-clicking** a tree item enters inline rename (equivalent to running Rename).
|
||||
|
||||
Internally, names are sanitized (invalid filename characters removed). If the new name is blank or unchanged, rename is canceled.
|
||||
|
||||
---
|
||||
|
||||
## Common Issues & Troubleshooting
|
||||
|
||||
- **Right panels are empty**:
|
||||
- First confirm a `ChartProfile` (not a folder) is selected.
|
||||
- **Renamed but chartName didn't update**:
|
||||
- ChartProfile may have additional sync logic; verify the `Chart Name` field in Inspector.
|
||||
- **Drag failed**:
|
||||
- Common causes: dragging onto itself/child folder, or a name conflict at target path.
|
||||
|
||||
---
|
||||
|
||||
## Help
|
||||
|
||||
- Click the rightmost **Help** icon in the header to open this chapter.
|
||||
Reference in New Issue
Block a user