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
|
package org.litesoft.GWT.ebiconservice.client;
import org.litesoft.GWT.client.iconservice.*;
import org.litesoft.core.util.*;
import org.litesoft.core.util.stringmatching.*;
public class EBIconService implements IconService
{
private static final Definition NO_FACTORY_DEFINITION =
new DefinitionImpl( "common/images/windowbar/NoFactory.cache.gif", //
"common/images/windowbar/NoFactory24.cache.gif", //
"No Factory Specified" );
private static final Definition NOT_FOUND_DEFINITION =
new DefinitionImpl( "common/images/windowbar/notfound.cache.gif", //
"common/images/windowbar/notfound24.cache.gif", //
"No Definition Found" );
private EBISDefPlus[] mDefinitions;
public void setDefinitions( EBIconServiceDefinition[] pDefinitions )
{
if ( pDefinitions == null )
{
mDefinitions = EBISDefPlus.EMPTY_ARRAY;
}
else
{
mDefinitions = new EBISDefPlus[pDefinitions.length];
for ( int i = 0; i < mDefinitions.length; i++ )
{
mDefinitions[i] = new EBISDefPlus( pDefinitions[i] );
}
}
}
public DefinitionPlus getDefinition( String pFloaterFactoryRef, String pCurrentFloaterTitle )
{
if ( null == (pFloaterFactoryRef = UtilsCommon.noEmpty( pFloaterFactoryRef )) )
{
return new DefinitionPlus( false, null, NO_FACTORY_DEFINITION );
}
pCurrentFloaterTitle = UtilsCommon.deNull( pCurrentFloaterTitle ).trim();
Definition zRV = getIconDefinition( pFloaterFactoryRef, pCurrentFloaterTitle );
return new DefinitionPlus( true, UtilsCommon.noEmpty( pCurrentFloaterTitle ), zRV );
}
private Definition getIconDefinition( String pFloaterFactoryRef, String pCurrentFloaterTitle )
{
for ( int i = 0; i < mDefinitions.length; i++ )
{
EBISDefPlus zDefinition = mDefinitions[i];
if ( zDefinition.matches( pFloaterFactoryRef, pCurrentFloaterTitle ) )
{
return zDefinition.getDefinition();
}
}
LOGGER.error.log( "Not Found: '", pFloaterFactoryRef, "', '", pCurrentFloaterTitle, "'" );
return NOT_FOUND_DEFINITION;
}
public static class EBISDefPlus
{
public static final EBISDefPlus[] EMPTY_ARRAY = new EBISDefPlus[0];
private EBIconServiceDefinition mDefinition;
private StringMatcher mFactoryRefMatcher, mTitleMatcher;
public EBISDefPlus( EBIconServiceDefinition pDefinition )
{
mDefinition = pDefinition;
mFactoryRefMatcher = createMatcher( pDefinition.getFloaterFactoryRefPattern() );
mTitleMatcher = createMatcher( pDefinition.getFloaterTitlePattern() );
}
private StringMatcher createMatcher( String pPattern )
{
pPattern = pPattern.trim();
StringMatcher zMatcher =
StringMatcherFactory.createEquals( UtilsCommon.parseChar( pPattern, '*' ) );
return (zMatcher != null) ? //
zMatcher : //
(pPattern.length() == 0) ? //
StringMatcher.NONE : //
StringMatcher.ALL;
}
public EBIconServiceDefinition getDefinition()
{
return mDefinition;
}
public boolean matches( String pFloaterFactoryRef, String pCurrentFloaterTitle )
{
return mFactoryRefMatcher.matches( pFloaterFactoryRef ) &&
mTitleMatcher.matches( pCurrentFloaterTitle );
}
}
}
|
Revision |
Author |
Commited |
Message |
2
|
GeorgeS
|
Sun 07 Feb, 2010 12:50:58 +0000 |
|