From 1107aa0763e3d7554408c401d2a1dbed11a94c51 Mon Sep 17 00:00:00 2001 From: Marko Živković Date: Wed, 11 Jun 2014 10:10:33 +0000 Subject: Add initial directories and files git-svn-id: https://svn.code.sf.net/p/xlogo4schools/svn/trunk@1 3b0d7934-f7ef-4143-9606-b51f2e2281fd --- .../xlogo/messages/async/dialog/DialogMessage.java | 75 ++++++++++++++++++++++ .../messages/async/dialog/DialogMessenger.java | 74 +++++++++++++++++++++ 2 files changed, 149 insertions(+) create mode 100644 logo/src/xlogo/messages/async/dialog/DialogMessage.java create mode 100644 logo/src/xlogo/messages/async/dialog/DialogMessenger.java (limited to 'logo/src/xlogo/messages/async/dialog') 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 +{ + 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, 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)); + } +} -- cgit v1.2.3