Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@
import com.jme3.system.*;
import com.jme3.system.JmeContext.Type;
import com.jme3.util.AndroidScreenshots;
import com.jme3.util.functional.VoidFunction;

import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
Expand All @@ -35,6 +37,18 @@ public class JmeAndroidSystem extends JmeSystemDelegate {
} catch (UnsatisfiedLinkError e) {
}
}

public JmeAndroidSystem(){
setErrorMessageHandler((message) -> {
String finalMsg = message;
String finalTitle = "Error in application";
Context context = JmeAndroidSystem.getView().getContext();
view.getHandler().post(() -> {
AlertDialog dialog = new AlertDialog.Builder(context).setTitle(finalTitle).setMessage(finalMsg).create();
dialog.show();
});
});
}

@Override
public URL getPlatformAssetConfigURL() {
Expand All @@ -57,26 +71,8 @@ public void writeImageFile(OutputStream outStream, String format, ByteBuffer ima
bitmapImage.recycle();
}

@Override
public void showErrorDialog(String message) {
final String finalMsg = message;
final String finalTitle = "Error in application";
final Context context = JmeAndroidSystem.getView().getContext();

view.getHandler().post(new Runnable() {
@Override
public void run() {
AlertDialog dialog = new AlertDialog.Builder(context)
.setTitle(finalTitle).setMessage(finalMsg).create();
dialog.show();
}
});
}

@Override
public boolean showSettingsDialog(AppSettings sourceSettings, boolean loadFromRegistry) {
return true;
}

@Override
public JmeContext newContext(AppSettings settings, Type contextType) {
Expand Down
3 changes: 3 additions & 0 deletions jme3-awt-dialogs/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
dependencies {
api project(':jme3-core')
}
98 changes: 98 additions & 0 deletions jme3-awt-dialogs/src/main/java/com/jme3/awt/AWTErrorDialog.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
/*
* Copyright (c) 2009-2022 jMonkeyEngine
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* * Neither the name of 'jMonkeyEngine' nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package com.jme3.awt;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

/**
* Simple dialog for displaying error messages,
*
* @author kwando
*/
public class AWTErrorDialog extends JDialog {
public static String DEFAULT_TITLE = "Error in application";
public static int PADDING = 8;

/**
* Create a new Dialog with a title and a message.
*
* @param message the message to display
* @param title the title to display
*/
protected AWTErrorDialog(String message, String title) {
setTitle(title);
setSize(new Dimension(600, 400));
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setLocationRelativeTo(null);

Container container = getContentPane();
container.setLayout(new BorderLayout());

JTextArea textArea = new JTextArea();
textArea.setText(message);
textArea.setEditable(false);
textArea.setMargin(new Insets(PADDING, PADDING, PADDING, PADDING));
add(new JScrollPane(textArea), BorderLayout.CENTER);

final JDialog dialog = this;
JButton button = new JButton(new AbstractAction("OK"){
@Override
public void actionPerformed(ActionEvent e) {
dialog.dispose();
}
});
add(button, BorderLayout.SOUTH);
}

protected AWTErrorDialog(String message){
this(message, DEFAULT_TITLE);
}

/**
* Show a dialog with the provided message.
*
* @param message the message to display
*/
public static void showDialog(String message) {
AWTErrorDialog dialog = new AWTErrorDialog(message);
dialog.setVisible(true);
}
}
Loading