Skip to content

Commit 5abcd5f

Browse files
committed
доработки по AssetTree
1 parent 22ef5f8 commit 5abcd5f

File tree

8 files changed

+71
-20
lines changed

8 files changed

+71
-20
lines changed

src/com/ss/editor/state/editor/impl/post/filter/PostFilterEditorState.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ private void addFilterImpl(Material material) {
123123

124124
filters.put(key, genericFilter);
125125

126-
if(isInitialized()) {
126+
if (isInitialized()) {
127127
postProcessor.addFilter(genericFilter);
128128
}
129129

@@ -154,7 +154,7 @@ private void removeFilterImpl(Material material) {
154154
return;
155155
}
156156

157-
if(isInitialized()) {
157+
if (isInitialized()) {
158158
postProcessor.removeFilter(genericFilter);
159159
}
160160

src/com/ss/editor/ui/component/asset/AssetComponent.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ private void processRefresh() {
9494
private void createContent() {
9595

9696
this.barComponent = new AssetBarComponent();
97-
this.resourceTree = new ResourceTree();
97+
this.resourceTree = new ResourceTree(false);
9898

9999
FXUtils.addToPane(barComponent, this);
100100
FXUtils.addToPane(resourceTree, this);

src/com/ss/editor/ui/component/asset/tree/ResourceTree.java

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import com.ss.editor.util.EditorUtil;
1818

1919
import java.nio.file.Path;
20+
import java.util.function.Consumer;
2021

2122
import javafx.collections.ObservableList;
2223
import javafx.event.ActionEvent;
@@ -68,6 +69,12 @@ public class ResourceTree extends TreeView<ResourceElement> {
6869
return NAME_COMPARATOR.compare(firstElement, secondElement);
6970
};
7071

72+
private static final Consumer<ResourceElement> DEFAULT_FUNCTION = element -> {
73+
final OpenFileAction action = new OpenFileAction(element);
74+
final EventHandler<ActionEvent> onAction = action.getOnAction();
75+
onAction.handle(null);
76+
};
77+
7178
/**
7279
* Развернутые элементы.
7380
*/
@@ -78,7 +85,23 @@ public class ResourceTree extends TreeView<ResourceElement> {
7885
*/
7986
private final Array<ResourceElement> selectedElements;
8087

81-
public ResourceTree() {
88+
/**
89+
* Функция окрытия файла.
90+
*/
91+
private final Consumer<ResourceElement> openFunction;
92+
93+
/**
94+
* Режим только чтения.
95+
*/
96+
private final boolean readOnly;
97+
98+
public ResourceTree(final boolean readOnly) {
99+
this(DEFAULT_FUNCTION, readOnly);
100+
}
101+
102+
public ResourceTree(final Consumer<ResourceElement> openFunction, final boolean readOnly) {
103+
this.openFunction = openFunction;
104+
this.readOnly = readOnly;
82105
this.expandedElements = ArrayFactory.newConcurrentAtomicArray(ResourceElement.class);
83106
this.selectedElements = ArrayFactory.newConcurrentAtomicArray(ResourceElement.class);
84107

@@ -89,11 +112,22 @@ public ResourceTree() {
89112
setShowRoot(true);
90113
}
91114

115+
/**
116+
* @return режим только чтения.
117+
*/
118+
private boolean isReadOnly() {
119+
return readOnly;
120+
}
121+
92122
/**
93123
* Обновление контекстного меню под указанный элемент.
94124
*/
95125
public void updateContextMenu(final ResourceElement element) {
96126

127+
if(isReadOnly()) {
128+
return;
129+
}
130+
97131
final EditorConfig editorConfig = EditorConfig.getInstance();
98132
final Path currentAsset = editorConfig.getCurrentAsset();
99133

@@ -395,6 +429,10 @@ public void notifyDeleted(final Path file) {
395429
*/
396430
private void processKey(final KeyEvent event) {
397431

432+
if(isReadOnly()) {
433+
return;
434+
}
435+
398436
final MultipleSelectionModel<TreeItem<ResourceElement>> selectionModel = getSelectionModel();
399437
final TreeItem<ResourceElement> selectedItem = selectionModel.getSelectedItem();
400438

@@ -429,4 +467,11 @@ private void processKey(final KeyEvent event) {
429467
onAction.handle(null);
430468
}
431469
}
470+
471+
/**
472+
* @return функция окрытия файла.
473+
*/
474+
public Consumer<ResourceElement> getOpenFunction() {
475+
return openFunction;
476+
}
432477
}

src/com/ss/editor/ui/component/asset/tree/ResourceTreeCell.java

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
package com.ss.editor.ui.component.asset.tree;
22

33
import com.ss.editor.manager.FileIconManager;
4-
import com.ss.editor.ui.component.asset.tree.context.menu.action.OpenFileAction;
54
import com.ss.editor.ui.component.asset.tree.resource.FolderElement;
65
import com.ss.editor.ui.component.asset.tree.resource.ResourceElement;
76
import com.ss.editor.ui.component.asset.tree.resource.ResourceLoadingElement;
87

98
import java.nio.file.Files;
109
import java.nio.file.Path;
10+
import java.util.function.Consumer;
1111

12-
import javafx.event.ActionEvent;
13-
import javafx.event.EventHandler;
1412
import javafx.geometry.Side;
1513
import javafx.scene.Cursor;
1614
import javafx.scene.control.ContextMenu;
@@ -111,7 +109,7 @@ private void processClick(final MouseEvent event) {
111109

112110
final ResourceElement item = getItem();
113111

114-
if (item == null || item instanceof FolderElement) {
112+
if (item == null) {
115113
return;
116114
}
117115

@@ -129,11 +127,9 @@ private void processClick(final MouseEvent event) {
129127

130128
contextMenu.show(this, Side.BOTTOM, 0, 0);
131129

132-
} else if (event.getButton() == MouseButton.PRIMARY && event.getClickCount() > 1) {
133-
134-
final OpenFileAction action = new OpenFileAction(item);
135-
final EventHandler<ActionEvent> onAction = action.getOnAction();
136-
onAction.handle(null);
130+
} else if (!(item instanceof FolderElement) && event.getButton() == MouseButton.PRIMARY && event.getClickCount() > 1) {
131+
final Consumer<ResourceElement> openFunction = treeView.getOpenFunction();
132+
openFunction.accept(item);
137133
}
138134
}
139135

src/com/ss/editor/ui/component/asset/tree/context/menu/action/PasteFileAction.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,13 @@ private void processPaste() {
6161
}
6262

6363
final Path currentFile = element.getFile();
64-
final Path file = files.get(0).toPath();
65-
6664
final boolean isCut = "cut".equals(clipboard.getContent(EditorUtil.JAVA_PARAM));
6765

66+
files.forEach(file -> pasteFile(clipboard, currentFile, file.toPath(), isCut));
67+
}
68+
69+
private void pasteFile(Clipboard clipboard, Path currentFile, Path file, boolean isCut) {
70+
6871
if (Files.isDirectory(currentFile)) {
6972

7073
final String fileName = FileUtils.getFirstFreeName(currentFile, file);

src/com/ss/editor/ui/component/editor/area/EditorAreaComponent.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,13 @@ public EditorAreaComponent() {
6363
*/
6464
private void processChangeTabs(final ListChangeListener.Change<? extends Tab> change) {
6565

66-
if(!change.next()) {
66+
if (!change.next()) {
6767
return;
6868
}
6969

7070
final List<? extends Tab> removed = change.getRemoved();
7171

72-
if(removed == null || removed.isEmpty()) {
72+
if (removed == null || removed.isEmpty()) {
7373
return;
7474
}
7575

src/com/ss/editor/ui/component/editor/impl/post/filter/PostFilterEditor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ private void processChangedFile(final FileChangedEvent event) {
202202
final Path file = event.getFile();
203203
final String fileName = file.getFileName().toString();
204204

205-
if(!fileName.endsWith(FileExtensions.JME_MATERIAL)) {
205+
if (!fileName.endsWith(FileExtensions.JME_MATERIAL)) {
206206
return;
207207
}
208208

@@ -211,7 +211,7 @@ private void processChangedFile(final FileChangedEvent event) {
211211
final PostFilterViewFile currentFile = getCurrentFile();
212212
final List<String> materials = currentFile.getMaterials();
213213

214-
if(!materials.contains(assetFile.toString())) {
214+
if (!materials.contains(assetFile.toString())) {
215215
return;
216216
}
217217

src/com/ss/editor/ui/dialog/asset/AssetEditorDialog.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,15 @@ public AssetEditorDialog(final Consumer<Path> consumer) {
5151
protected void createContent(final VBox root) {
5252

5353
final EditorConfig editorConfig = EditorConfig.getInstance();
54+
final Consumer<ResourceElement> openFunction = element -> {
5455

55-
resourceTree = new ResourceTree();
56+
hide();
57+
58+
final Consumer<Path> consumer = getConsumer();
59+
consumer.accept(element.getFile());
60+
};
61+
62+
resourceTree = new ResourceTree(openFunction, true);
5663
resourceTree.fill(editorConfig.getCurrentAsset());
5764
resourceTree.prefHeightProperty().bind(root.heightProperty());
5865

0 commit comments

Comments
 (0)