Skip to content

Commit 829d9dc

Browse files
committed
updated extension lib, small improvements.
1 parent 23be3ee commit 829d9dc

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+1721
-142
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ dependencies {
9494
compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.3'
9595

9696
// extensions
97-
compile ('com.github.JavaSaBr:jme3-spaceshift-extension:1.3.0') {
97+
compile ('com.github.JavaSaBr:jme3-spaceshift-extension:1.4.2') {
9898
exclude group: 'org.jmonkeyengine'
9999
}
100100
compile ('com.github.JavaSaBr:tonegodemitter:2.2.4') {

src/main/java/com/jme3/water/WaterFilter.java

Lines changed: 1312 additions & 0 deletions
Large diffs are not rendered by default.

src/main/java/com/ss/editor/JFXApplication.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ public static void main(final String[] args) throws IOException {
105105
// JavaFX
106106
System.setProperty("prism.lcdtext", "false");
107107
System.setProperty("prism.text", "t2k");
108-
System.setProperty("javafx.animation.fullspeed", "true");
108+
System.setProperty("javafx.animation.fullspeed", "false");
109109

110110
final EditorConfig editorConfig = EditorConfig.getInstance();
111111
final OpenGLVersion openGLVersion = editorConfig.getOpenGLVersion();

src/main/java/com/ss/editor/config/EditorConfig.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import java.nio.file.Path;
3030
import java.nio.file.Paths;
3131
import java.util.ArrayList;
32+
import java.util.Iterator;
3233
import java.util.List;
3334
import java.util.prefs.BackingStoreException;
3435
import java.util.prefs.Preferences;
@@ -863,6 +864,10 @@ private void init() {
863864
this.currentAsset = get(currentAssetURI, uri -> Paths.get(new URI(uri)));
864865
}
865866

867+
if (currentAsset != null && !Files.exists(currentAsset)) {
868+
this.currentAsset = null;
869+
}
870+
866871
final String classpathURI = prefs.get(PREF_OTHER_ADDITIONAL_CLASSPATH, null);
867872

868873
if (classpathURI != null) {
@@ -895,7 +900,19 @@ private void init() {
895900

896901
final List<String> lastOpenedAssets = getLastOpenedAssets();
897902
try {
903+
898904
lastOpenedAssets.addAll(EditorUtil.deserialize(byteArray));
905+
906+
for (Iterator<String> iterator = lastOpenedAssets.iterator(); iterator.hasNext(); ) {
907+
908+
final String assetUrl = iterator.next();
909+
final Path assetPath = get(assetUrl, uri -> Paths.get(new URI(uri)));
910+
911+
if (!Files.exists(assetPath)) {
912+
iterator.remove();
913+
}
914+
}
915+
899916
} catch (final RuntimeException e) {
900917
LOGGER.warning(e);
901918
}

src/main/java/com/ss/editor/manager/FileIconManager.java

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -99,13 +99,17 @@ public class FileIconManager {
9999
EXTENSION_TO_CONTENT_TYPE.put(FileExtensions.MODEL_XBUF, "image-svg+xml-compressed");
100100
}
101101

102+
@NotNull
102103
private static final Array<Path> MIME_TYPES_FOLDERS = ArrayFactory.newArray(Path.class);
103104

104105
static {
105106
MIME_TYPES_FOLDERS.add(Paths.get("/ui/icons/filetypes/emerald/mimetypes"));
106107
MIME_TYPES_FOLDERS.add(Paths.get("/ui/icons/filetypes/"));
107108
}
108109

110+
private static boolean supportedRepaint = true;
111+
112+
109113
@Nullable
110114
private static FileIconManager instance;
111115

@@ -299,24 +303,35 @@ private Image buildImage(@NotNull final String url, final int size) {
299303
final EditorConfig config = EditorConfig.getInstance();
300304
final CssColorTheme theme = config.getTheme();
301305

302-
if (!theme.isDark()) {
306+
if (theme.needRepaintIcons() && supportedRepaint) {
307+
try {
308+
309+
final Color iconColor = theme.getIconColor();
310+
311+
final int width = (int) image.getWidth();
312+
final int height = (int) image.getHeight();
313+
314+
final WritableImage wimage = new WritableImage(width, height);
303315

304-
final WritableImage wimage = new WritableImage(size, size);
305-
final PixelWriter pixelWriter = wimage.getPixelWriter();
306-
final PixelReader pixelReader = image.getPixelReader();
316+
final PixelWriter pixelWriter = wimage.getPixelWriter();
317+
final PixelReader pixelReader = image.getPixelReader();
307318

308-
for (int i = 0; i < size; i++) {
309-
for (int j = 0; j < size; j++) {
310-
final Color color = pixelReader.getColor(i, j);
311-
if (color.getOpacity() > 0.1) {
312-
pixelWriter.setColor(i, j, color.invert());
319+
for (int i = 0; i < width; i++) {
320+
for (int j = 0; j < height; j++) {
321+
final Color color = pixelReader.getColor(i, j);
322+
if (color.getOpacity() > 0.1) {
323+
pixelWriter.setColor(i, j, new Color(iconColor.getRed(), iconColor.getGreen(), iconColor.getBlue(), color.getOpacity()));
324+
}
313325
}
314326
}
315-
}
316327

317-
originalImageCache.put(wimage, image);
328+
originalImageCache.put(wimage, image);
329+
330+
return wimage;
318331

319-
return wimage;
332+
} catch (final Throwable e) {
333+
supportedRepaint = false;
334+
}
320335
}
321336

322337
originalImageCache.put(image, image);
@@ -332,11 +347,6 @@ private Image buildImage(@NotNull final String url, final int size) {
332347
*/
333348
@NotNull
334349
public Image getOriginal(@NotNull final Image image) {
335-
336-
if (!(image instanceof WritableImage)) {
337-
throw new IllegalArgumentException("The image " + image.impl_getUrl() + " wasn't edited");
338-
}
339-
340350
return notNull(originalImageCache.get(image), "not found original for " + image.impl_getUrl());
341351
}
342352

src/main/java/com/ss/editor/model/undo/editor/SceneChangeConsumer.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,23 +44,23 @@ public interface SceneChangeConsumer extends ModelChangeConsumer {
4444
* @param sceneFilter the scene filter
4545
*/
4646
@FXThread
47-
void notifyAddedFilter(@NotNull SceneFilter<?> sceneFilter);
47+
void notifyAddedFilter(@NotNull SceneFilter sceneFilter);
4848

4949
/**
5050
* Notify about removed a filter.
5151
*
5252
* @param sceneFilter the scene filter
5353
*/
5454
@FXThread
55-
void notifyRemovedFilter(@NotNull SceneFilter<?> sceneFilter);
55+
void notifyRemovedFilter(@NotNull SceneFilter sceneFilter);
5656

5757
/**
5858
* Notify about changed a filter.
5959
*
6060
* @param sceneFilter the scene filter
6161
*/
6262
@FXThread
63-
void notifyChangedFilter(@NotNull SceneFilter<?> sceneFilter);
63+
void notifyChangedFilter(@NotNull SceneFilter sceneFilter);
6464

6565
@NotNull
6666
@Override

src/main/java/com/ss/editor/state/editor/impl/scene/SceneEditor3DState.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -145,11 +145,11 @@ private void removeAppStateImpl(@NotNull final SceneAppState appState) {
145145
* @param sceneFilter the scene filter.
146146
*/
147147
@FromAnyThread
148-
public void addFilter(@NotNull final SceneFilter<?> sceneFilter) {
148+
public void addFilter(@NotNull final SceneFilter sceneFilter) {
149149
EXECUTOR_MANAGER.addJMETask(() -> addFilterImpl(sceneFilter));
150150
}
151151

152-
private void addFilterImpl(@NotNull final SceneFilter<?> sceneFilter) {
152+
private void addFilterImpl(@NotNull final SceneFilter sceneFilter) {
153153
final FilterPostProcessor postProcessor = EDITOR.getPostProcessor();
154154
postProcessor.addFilter(sceneFilter.get());
155155
}
@@ -160,11 +160,11 @@ private void addFilterImpl(@NotNull final SceneFilter<?> sceneFilter) {
160160
* @param sceneFilter the scene filter.
161161
*/
162162
@FromAnyThread
163-
public void removeFilter(@NotNull final SceneFilter<?> sceneFilter) {
163+
public void removeFilter(@NotNull final SceneFilter sceneFilter) {
164164
EXECUTOR_MANAGER.addJMETask(() -> removeFilterImpl(sceneFilter));
165165
}
166166

167-
private void removeFilterImpl(@NotNull final SceneFilter<?> sceneFilter) {
167+
private void removeFilterImpl(@NotNull final SceneFilter sceneFilter) {
168168
final FilterPostProcessor postProcessor = EDITOR.getPostProcessor();
169169
postProcessor.removeFilter(sceneFilter.get());
170170
}

src/main/java/com/ss/editor/ui/component/editor/impl/scene/SceneFileEditor.java

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@ private void selectAppStateFromList(@Nullable final EditableSceneAppState appSta
413413
* Handle the selected filter from the list.
414414
*/
415415
@FXThread
416-
private void selectFilterFromList(@Nullable final EditableSceneFilter<?> sceneFilter) {
416+
private void selectFilterFromList(@Nullable final EditableSceneFilter sceneFilter) {
417417
if (!isNeedSyncSelection()) return;
418418

419419
setNeedSyncSelection(false);
@@ -531,10 +531,12 @@ protected void handleAddedObject(@NotNull final Spatial model) {
531531
final SceneNode sceneNode = (SceneNode) model;
532532
final SceneEditor3DState editor3DState = getEditor3DState();
533533

534-
sceneNode.getFilters().forEach(ScenePresentable.class::isInstance,
535-
filter -> editor3DState.addPresentable((ScenePresentable) filter));
536-
sceneNode.getAppStates().forEach(ScenePresentable.class::isInstance,
537-
state -> editor3DState.addPresentable((ScenePresentable) state));
534+
sceneNode.getFilters().stream()
535+
.filter(ScenePresentable.class::isInstance)
536+
.forEach(filter -> editor3DState.addPresentable((ScenePresentable) filter));
537+
sceneNode.getAppStates().stream()
538+
.filter(ScenePresentable.class::isInstance)
539+
.forEach(state -> editor3DState.addPresentable((ScenePresentable) state));
538540
}
539541

540542
@Override
@@ -548,10 +550,12 @@ protected void handleRemovedObject(@NotNull final Spatial model) {
548550
final SceneNode sceneNode = (SceneNode) model;
549551
final SceneEditor3DState editor3DState = getEditor3DState();
550552

551-
sceneNode.getFilters().forEach(ScenePresentable.class::isInstance,
552-
filter -> editor3DState.removePresentable((ScenePresentable) filter));
553-
sceneNode.getAppStates().forEach(ScenePresentable.class::isInstance,
554-
state -> editor3DState.removePresentable((ScenePresentable) state));
553+
sceneNode.getFilters().stream()
554+
.filter(ScenePresentable.class::isInstance)
555+
.forEach(filter -> editor3DState.removePresentable((ScenePresentable) filter));
556+
sceneNode.getAppStates().stream()
557+
.filter(ScenePresentable.class::isInstance)
558+
.forEach(state -> editor3DState.removePresentable((ScenePresentable) state));
555559
}
556560

557561
@Override
@@ -651,7 +655,7 @@ public void notifyChangedAppState(@NotNull final SceneAppState appState) {
651655
}
652656

653657
@Override
654-
public void notifyAddedFilter(@NotNull final SceneFilter<?> sceneFilter) {
658+
public void notifyAddedFilter(@NotNull final SceneFilter sceneFilter) {
655659

656660
final SceneEditor3DState editor3DState = getEditor3DState();
657661
editor3DState.addFilter(sceneFilter);
@@ -664,7 +668,7 @@ public void notifyAddedFilter(@NotNull final SceneFilter<?> sceneFilter) {
664668
}
665669

666670
@Override
667-
public void notifyRemovedFilter(@NotNull final SceneFilter<?> sceneFilter) {
671+
public void notifyRemovedFilter(@NotNull final SceneFilter sceneFilter) {
668672

669673
final SceneEditor3DState editor3DState = getEditor3DState();
670674
editor3DState.removeFilter(sceneFilter);
@@ -677,7 +681,7 @@ public void notifyRemovedFilter(@NotNull final SceneFilter<?> sceneFilter) {
677681
}
678682

679683
@Override
680-
public void notifyChangedFilter(@NotNull final SceneFilter<?> sceneFilter) {
684+
public void notifyChangedFilter(@NotNull final SceneFilter sceneFilter) {
681685
getFilterList().fill(getCurrentModel());
682686
}
683687

src/main/java/com/ss/editor/ui/control/app/state/dialog/CreateSceneAppStateDialog.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import org.jetbrains.annotations.Nullable;
3030

3131
import java.awt.*;
32+
import java.util.List;
3233

3334
/**
3435
* The dialog to create a scene app state.
@@ -167,8 +168,8 @@ protected void processOk() {
167168

168169
final CheckBox customCheckBox = getCustomCheckBox();
169170
final SceneNode currentModel = changeConsumer.getCurrentModel();
170-
final Array<SceneAppState> appStates = currentModel.getAppStates();
171-
final Array<SceneFilter<?>> filters = currentModel.getFilters();
171+
final List<SceneAppState> appStates = currentModel.getAppStates();
172+
final List<SceneFilter> filters = currentModel.getFilters();
172173

173174
if (customCheckBox.isSelected()) {
174175

@@ -200,7 +201,7 @@ protected void processOk() {
200201
super.processOk();
201202
}
202203

203-
private void check(@NotNull final Array<SceneAppState> appStates, @NotNull final Array<SceneFilter<?>> filters,
204+
private void check(@NotNull final List<SceneAppState> appStates, @NotNull final List<SceneFilter> filters,
204205
@NotNull final SceneAppState newExample) {
205206

206207
if (!(newExample instanceof EditableSceneAppState)) return;

src/main/java/com/ss/editor/ui/control/app/state/list/AppStateList.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import com.ss.editor.ui.scene.EditorFXScene;
1515
import com.ss.editor.ui.util.DynamicIconSupport;
1616
import com.ss.rlib.ui.util.FXUtils;
17-
import com.ss.rlib.util.array.Array;
1817
import javafx.collections.ObservableList;
1918
import javafx.scene.control.Button;
2019
import javafx.scene.control.ListView;
@@ -25,6 +24,7 @@
2524
import org.jetbrains.annotations.NotNull;
2625
import org.jetbrains.annotations.Nullable;
2726

27+
import java.util.List;
2828
import java.util.function.Consumer;
2929

3030
/**
@@ -122,7 +122,7 @@ public void fill(@NotNull final SceneNode sceneNode) {
122122
final ObservableList<EditableSceneAppState> items = listView.getItems();
123123
items.clear();
124124

125-
final Array<SceneAppState> appStates = sceneNode.getAppStates();
125+
final List<SceneAppState> appStates = sceneNode.getAppStates();
126126
appStates.stream().filter(EditableSceneAppState.class::isInstance)
127127
.map(EditableSceneAppState.class::cast)
128128
.forEach(items::add);

0 commit comments

Comments
 (0)