⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 taskmessages.java

📁 SMC takes a state machine stored in a .sm file and generates a State pattern in twelve programming l
💻 JAVA
字号:
//// The contents of this file are subject to the Mozilla Public// License Version 1.1 (the "License"); you may not use this file// except in compliance with the License. You may obtain a copy// of the License at http://www.mozilla.org/MPL/// // Software distributed under the License is distributed on an// "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or// implied. See the License for the specific language governing// rights and limitations under the License.// // The Original Code is State Machine Compiler (SMC).// // The Initial Developer of the Original Code is Charles W. Rapp.// Portions created by Charles W. Rapp are// Copyright (C) 2000 - 2003 Charles W. Rapp.// All Rights Reserved.// // Contributor(s): //// Name//  TaskMessages.java//// Description//  Displays task log messages.//// RCS ID// $Id: TaskMessages.java,v 1.5 2007/02/21 13:41:00 cwrapp Exp $//// CHANGE LOG// $Log: TaskMessages.java,v $// Revision 1.5  2007/02/21 13:41:00  cwrapp// Moved Java code to release 1.5.0//// Revision 1.4  2005/05/28 13:51:24  cwrapp// Update Java examples 1 - 7.//// Revision 1.0  2003/12/14 20:14:54  charlesr// Initial revision//package smc_ex5;import javax.swing.JScrollPane;import javax.swing.JTextArea;import java.awt.Color;import java.awt.Component;import java.awt.Font;import java.awt.Graphics;import java.util.Date;import java.util.HashMap;import java.util.LinkedList;import java.util.Locale;import java.util.Map;import java.text.SimpleDateFormat;// This class displays the posted messages IF the message's// priority passes the filter.public final class TaskMessages    implements TaskEventListener{// Member Methods    public TaskMessages(int level)    {        TaskController control = new TaskController();        Locale currentLocale = new Locale("en", "US");        // Put together the date/time output format.        _timestampFormat =            new SimpleDateFormat(                "MM/dd/yyyy hh:mm:ss", currentLocale);        // Set the initial level.        _level = level;        // Create the text area which displays the messages.        _messageArea = new JTextArea(ROW_COUNT, COL_COUNT);        _messageArea.setEditable(false);        // Use a 8pt Helvetica font.        _messageArea.setFont(new Font("Courier",                                      Font.PLAIN,                                      10));        // Place this text area inside a scrollable pane.        _pane = new JScrollPane(_messageArea);        control.register("Message GUI", this);    }    public int getLevel()    {        return(_level);    }    public void setLevel(int level)    {        _level = level;        return;    }    public Component getComponents()    {        return((Component) _pane);    }    public void handleEvent(String event,                            Map<String, Object> args)    {        Integer level;        String name;        String message;        // Post a message to the text area.        if (event.compareTo("Post Message") == 0)        {            level = (Integer) args.get("level");            name = (String) args.get("object");            message = (String) args.get("message");            logMessage(level.intValue(), name, message);        }        else if (event.compareTo("Set Level") == 0)        {            level = (Integer) args.get("level");            setLevel(level.intValue());        }        return;    }    public void logMessage(int level,                           String name,                           String message)    {        int stringLength;        Date currTime = new Date();        String timestamp;        StringBuffer output = new StringBuffer(80);        Graphics graphic;        // Display the message only if it passes the level        // filter.        if (level <= _level)        {            // Put together the message line:            // MM/DD/YYYY hh:mm:ss name message            // where:            // + hh is in military time            // + name is 15 characters            // + message is at most 44 characters.            timestamp = _timestampFormat.format(currTime);            output.append(timestamp + " ");            // Make certain that the object name does not exceed            // max size.            if ((stringLength = name.length()) > NAME_LEN)            {                stringLength = NAME_LEN;            }            output.append(name.substring(0, stringLength));            // Pad to the message field's beginning.            output.append(                _padding.substring(                    0, (NAME_LEN - stringLength + 1)));            output.append(message);            output.append(_newLine);            // Put the log message up on display.            _messageArea.append(output.toString());        }        return;    }// Member Data    // Currently acceptable message level.    private int _level;    // Put messages in this text component.    private JTextArea _messageArea;    // The messages are scrollable.    private JScrollPane _pane;    // Formats the date/time string.    private SimpleDateFormat _timestampFormat;    // The number of rows and columns in the text area.    private final static int ROW_COUNT = 10;    private final static int COL_COUNT = 82;    // Each field's length.    public final static int NAME_LEN = 15;    // The padding and new line strings are used to create the    // final message output.    private static String _padding;    private static String _newLine;    static    {        _padding = new String("                ");        _newLine = new String("\n");    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -