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 package fr.paris.lutece.plugins.jsr168.pluto;
35
36 import fr.paris.lutece.plugins.jsr168.pluto.core.PortletURLProviderImpl;
37 import fr.paris.lutece.portal.service.util.AppPropertiesService;
38
39 import org.apache.pluto.om.common.ObjectID;
40 import org.apache.pluto.om.portlet.ContentType;
41 import org.apache.pluto.om.portlet.PortletDefinition;
42 import org.apache.pluto.portalImpl.om.window.impl.PortletWindowImpl;
43
44 import java.util.ArrayList;
45 import java.util.Iterator;
46 import java.util.List;
47
48 import javax.portlet.PortletMode;
49 import javax.portlet.WindowState;
50
51 import javax.servlet.http.HttpServletRequest;
52 import javax.servlet.http.HttpServletResponse;
53
54
55
56
57
58 public class Buttons
59 {
60 private static final String PROPERTIES_MODE_PREFIX = "portlet.jsr168.mode.";
61 private static final String PROPERTIES_STATE_PREFIX = "portlet.jsr168.state.";
62 private static final String PROPERTIES_IMAGE_SUFFIX = ".image";
63 private final List _listModes;
64 private final List _listStates;
65
66
67
68
69 Buttons( )
70 {
71 _listModes = new ArrayList( );
72 _listStates = new ArrayList( );
73 }
74
75
76
77
78
79
80
81
82
83 void init( HttpServletRequest request, HttpServletResponse response, PortletDefinition portletDef,
84 PortletWindowImpl portletWindow )
85 {
86 ObjectID portletID = portletWindow.getId( );
87
88 ArrayList listModes = new ArrayList( );
89
90 String strMimeType = "text/html";
91 ContentType contentTypeSet = portletDef.getContentTypeSet( ).get( strMimeType );
92
93 for ( Iterator itModes = contentTypeSet.getPortletModes( ); itModes.hasNext( ); )
94 {
95 listModes.add( itModes.next( ) );
96 }
97
98 for ( Iterator itModesStr = listModes.iterator( ); itModesStr.hasNext( ); )
99 {
100 PortletMode mode = (PortletMode) itModesStr.next( );
101
102 if ( !portletWindow.getPortletMode( ).equals( mode ) )
103 {
104 String strHelpRenderURL = PortletURLProviderImpl.getRenderURL( request, response, mode, null, portletID );
105 String strHelpImagePath = AppPropertiesService.getProperty( PROPERTIES_MODE_PREFIX + mode +
106 PROPERTIES_IMAGE_SUFFIX );
107
108 _listModes.add( new Button( strHelpRenderURL, strHelpImagePath ) );
109 }
110 }
111
112 if ( !WindowState.MINIMIZED.equals( portletWindow.getWindowState( ) ) )
113 {
114 String strHelpRenderURL = PortletURLProviderImpl.getRenderURL( request, response, null,
115 WindowState.MINIMIZED, portletID );
116 String strHelpImagePath = AppPropertiesService.getProperty( PROPERTIES_STATE_PREFIX +
117 WindowState.MINIMIZED + PROPERTIES_IMAGE_SUFFIX );
118
119 _listStates.add( new Button( strHelpRenderURL, strHelpImagePath ) );
120 }
121
122
123 if ( !WindowState.NORMAL.equals( portletWindow.getWindowState( ) ) )
124 {
125 String strHelpRenderURL = PortletURLProviderImpl.getRenderURL( request, response, null, WindowState.NORMAL,
126 portletID );
127 String strHelpImagePath = AppPropertiesService.getProperty( PROPERTIES_STATE_PREFIX + WindowState.NORMAL +
128 PROPERTIES_IMAGE_SUFFIX );
129
130 _listStates.add( new Button( strHelpRenderURL, strHelpImagePath ) );
131 }
132
133 if ( !WindowState.MAXIMIZED.equals( portletWindow.getWindowState( ) ) )
134 {
135 String strHelpRenderURL = PortletURLProviderImpl.getRenderURL( request, response, null,
136 WindowState.MAXIMIZED, portletID );
137 String strHelpImagePath = AppPropertiesService.getProperty( PROPERTIES_STATE_PREFIX +
138 WindowState.MAXIMIZED + PROPERTIES_IMAGE_SUFFIX );
139
140 _listStates.add( new Button( strHelpRenderURL, strHelpImagePath ) );
141 }
142 }
143
144
145
146
147
148
149 public Iterator modes( )
150 {
151 return _listModes.iterator( );
152 }
153
154
155
156
157
158
159 public Iterator states( )
160 {
161 return _listStates.iterator( );
162 }
163 }