Subversion Repository Public Repository

litesoft

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
package org.litesoft.sandbox.multimodule.common.client.infrastructure;

import java.util.*;

public class StyledSafeTextMessageUserSink implements MessageUserSink
{

    private StyledSafeTextSink mSafeTextSink;

    public StyledSafeTextMessageUserSink( StyledSafeTextSink pSafeTextSink )
    {
        mSafeTextSink = pSafeTextSink;
    }

    @Override
    public void clearMessage()
    {
        LOGGER.info.log( "clearMessage" );
    }

    @Override
    public void clearMessage( String pMessage )
    {
        LOGGER.info.log( "clearMessage(", pMessage, ")" );
    }

    @Override
    public void setInfoMessage( String pMessage )
    {
        LOGGER.info.log( "setMessage(", pMessage, ")" );
    }

    @Override
    public void setWarningMessage( String pMessage )
    {
        LOGGER.warn.log( "setMessage(", pMessage, ")" );
    }

    @Override
    public void setErrorMessage( String pMessage )
    {
        LOGGER.error.log( "setMessage(", pMessage, ")" );
    }

    private static class PriorityMessage
    {
        private Priority mPriority;
        private String mMessage;

        public PriorityMessage( Priority pPriority, String pMessage )
        {
            mPriority = pPriority;
            mMessage = pMessage;
        }

        public Priority getPriority()
        {
            return mPriority;
        }

        public String getMessage()
        {
            return mMessage;
        }

        public boolean isLowerPriorityThan( Priority pPriority )
        {
            return mPriority.isLowerPriorityThan( pPriority );
        }

        public boolean hasMessage( String pMessage )
        {
            return mMessage.equals( pMessage );
        }
    }

    private static class Manager
    {
        private final List<String>[] mMessagesByPriority = cast( new List[Priority.values().length] );

        {
            for ( int i = 0; i < mMessagesByPriority.length; i++ )
            {
                mMessagesByPriority[i] = new ArrayList<String>();
            }
        }

        /**
         * Get the Next Message (with the Highest Priority)
         *
         * @return null means no more messages
         */
        public PriorityMessage getNextMessage()
        {
            for ( Priority zPriority : Priority.values() )
            {
                List<String> zMessages = mMessagesByPriority[zPriority.ordinal()];
                if ( !zMessages.isEmpty() )
                {
                    return new PriorityMessage( zPriority, zMessages.remove( 0 ));
                }
            }
            return null;
        }

        /**
         * Add a new Message.
         *
         * @return The Highest Priority Message's Priority OR null if no Messages waiting
         */
        public Priority addMessage( Priority pPriority, String pMessage )
        {
            if ( (pMessage != null) && ((pMessage = pMessage.trim()).length() != 0) )
            {
                mMessagesByPriority[Priority.deNull( pPriority ).ordinal()].add( pMessage );
            }
            for ( Priority zPriority : Priority.values() )
            {
                if ( !mMessagesByPriority[zPriority.ordinal()].isEmpty() )
                {
                    return zPriority;
                }
            }
            return null;
        }

        @SuppressWarnings({"unchecked"})
        private static <T> T cast( Object pObject )
        {
            return (T) pObject;
        }
    }
}

Commits for litesoft/trunk/GWT_Sandbox/MultiModule/common/src/org/litesoft/sandbox/multimodule/common/client/infrastructure/StyledSafeTextMessageUserSink.java

Diff revisions: vs.
Revision Author Commited Message
536 Diff Diff GeorgeS picture GeorgeS Sun 02 Oct, 2011 00:36:06 +0000
522 GeorgeS picture GeorgeS Tue 27 Sep, 2011 18:31:40 +0000

Upload Widget...