summaryrefslogtreecommitdiffstats
path: root/logo/src/xlogo/messages/async/dialog
diff options
context:
space:
mode:
authorMarko Živković <[email protected]>2014-06-11 10:10:33 +0000
committerMarko Živković <[email protected]>2014-06-11 10:10:33 +0000
commit1107aa0763e3d7554408c401d2a1dbed11a94c51 (patch)
tree7074264bc7b63f2ee5ee14a39458380fcce1904b /logo/src/xlogo/messages/async/dialog
Add initial directories and files
git-svn-id: https://svn.code.sf.net/p/xlogo4schools/svn/trunk@1 3b0d7934-f7ef-4143-9606-b51f2e2281fd
Diffstat (limited to 'logo/src/xlogo/messages/async/dialog')
-rw-r--r--logo/src/xlogo/messages/async/dialog/DialogMessage.java75
-rw-r--r--logo/src/xlogo/messages/async/dialog/DialogMessenger.java74
2 files changed, 149 insertions, 0 deletions
diff --git a/logo/src/xlogo/messages/async/dialog/DialogMessage.java b/logo/src/xlogo/messages/async/dialog/DialogMessage.java
new file mode 100644
index 0000000..2ab099d
--- /dev/null
+++ b/logo/src/xlogo/messages/async/dialog/DialogMessage.java
@@ -0,0 +1,75 @@
+/* XLogo4Schools - A Logo Interpreter specialized for use in schools, based on XLogo by Lo�c Le Coq
+ * Copyright (C) 2013 Marko Zivkovic
+ *
+ * Contact Information: marko88zivkovic at gmail dot com
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version. This program is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+ * Public License for more details. You should have received a copy of the
+ * GNU General Public License along with this program; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ *
+ * This Java source code belongs to XLogo4Schools, written by Marko Zivkovic
+ * during his Bachelor thesis at the computer science department of ETH Z�rich,
+ * in the year 2013 and/or during future work.
+ *
+ * It is a reengineered version of XLogo written by Lo�c Le Coq, published
+ * under the GPL License at http://xlogo.tuxfamily.org/
+ *
+ * Contents of this file were entirely written by Marko Zivkovic
+ */
+
+package xlogo.messages.async.dialog;
+
+import javax.swing.JFrame;
+import javax.swing.JOptionPane;
+
+import xlogo.messages.async.AsyncMessage;
+
+class DialogMessage extends AsyncMessage<JFrame>
+{
+ private DialogMessageType type;
+
+ public DialogMessage(DialogMessageType type, String title, String message)
+ {
+ super(title, message);
+ this.type = type;
+ }
+
+ @Override
+ public void displayMessage()
+ {
+ JOptionPane.showMessageDialog(getMedium(),
+ getMessage(),
+ getTitle(),
+ type.getOptionPaneInt());
+ }
+
+ public enum DialogMessageType
+ {
+ ERROR(JOptionPane.ERROR_MESSAGE),
+ WARNING(JOptionPane.WARNING_MESSAGE),
+ PLAIN(JOptionPane.PLAIN_MESSAGE),
+ QUESTION(JOptionPane.QUESTION_MESSAGE),
+ INFORMATION(JOptionPane.INFORMATION_MESSAGE);
+
+ private int msgType;
+
+ private DialogMessageType(int optionPaneInt)
+ {
+ msgType = optionPaneInt;
+ }
+
+ public int getOptionPaneInt()
+ {
+ return msgType;
+ }
+ }
+
+}
diff --git a/logo/src/xlogo/messages/async/dialog/DialogMessenger.java b/logo/src/xlogo/messages/async/dialog/DialogMessenger.java
new file mode 100644
index 0000000..95fa512
--- /dev/null
+++ b/logo/src/xlogo/messages/async/dialog/DialogMessenger.java
@@ -0,0 +1,74 @@
+/* XLogo4Schools - A Logo Interpreter specialized for use in schools, based on XLogo by Lo�c Le Coq
+ * Copyright (C) 2013 Marko Zivkovic
+ *
+ * Contact Information: marko88zivkovic at gmail dot com
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version. This program is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+ * Public License for more details. You should have received a copy of the
+ * GNU General Public License along with this program; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ *
+ * This Java source code belongs to XLogo4Schools, written by Marko Zivkovic
+ * during his Bachelor thesis at the computer science department of ETH Z�rich,
+ * in the year 2013 and/or during future work.
+ *
+ * It is a reengineered version of XLogo written by Lo�c Le Coq, published
+ * under the GPL License at http://xlogo.tuxfamily.org/
+ *
+ * Contents of this file were entirely written by Marko Zivkovic
+ */
+
+package xlogo.messages.async.dialog;
+
+import javax.swing.JFrame;
+
+import xlogo.messages.async.AbstractAsyncMessenger;
+import xlogo.messages.async.AsyncMessage;
+import xlogo.messages.async.dialog.DialogMessage.DialogMessageType;
+
+/**
+ * The MessageManager is a singleton class that can be globally used to display error messages in dialogs.
+ *
+ * @author Marko Zivkovic
+ *
+ */
+public class DialogMessenger extends AbstractAsyncMessenger<AsyncMessage<JFrame>, JFrame>
+{
+ /**
+ * Implementation for thread-safe singleton found here : http://www.theserverside.de/singleton-pattern-in-java/ [accessed 14.8.2013]
+ */
+ private static DialogMessenger instance = new DialogMessenger();
+
+ public static DialogMessenger getInstance()
+ {
+ return instance;
+ }
+
+ protected DialogMessenger()
+ {
+ super();
+ }
+
+ @Override
+ public void dispatchMessage(String message)
+ {
+ deliverMessage(new DialogMessage(DialogMessageType.PLAIN, "", message));
+ }
+
+ public void dispatchMessage(String title, String message)
+ {
+ deliverMessage(new DialogMessage(DialogMessageType.PLAIN, title, message));
+ }
+
+ public void dispatchError(String title, String message)
+ {
+ deliverMessage(new DialogMessage(DialogMessageType.ERROR, title, message));
+ }
+}