001    package jmaster.jumploader.model.api.config;
002    
003    import java.util.MissingResourceException;
004    
005    import jmaster.jumploader.model.api.IModel;
006    import jmaster.jumploader.model.api.config.ViewConfig;
007    import jmaster.util.property.Property;
008    import jmaster.util.property.PropertyFactory;
009    import jmaster.util.property.PropertyHelper;
010    
011    
012    /**
013     * ViewConfig
014     * 
015     * @author timur
016     */
017    
018    public class ViewConfig {
019            //---------------------------------------------------------------
020            //      constants
021            //---------------------------------------------------------------
022            /**
023             * property file
024             */
025            private static final String PROPERTY = "ViewConfig.properties";
026            /**
027             * system look and feel name
028             */
029            public static final String LOOK_AND_FEEL_SYSTEM = "system";
030            /**
031             * crossplatform look and feel name
032             */
033            public static final String LOOK_AND_FEEL_CROSSPLATFORM = "crossPlatform";
034            //---------------------------------------------------------------
035            //      common properties
036            //---------------------------------------------------------------
037            /**
038             * look and feel name, this could be "system", "crossPlatform" or custom look and feel class name
039             */
040            private String lookAndFeel = LOOK_AND_FEEL_CROSSPLATFORM;
041            /**
042             * generated file thumbnail width
043             */
044            private int thumbWidth = 80;
045            /**
046             * generated file thumbnail height
047             */
048            private int thumbHeight = 80;
049            /**
050             * shows whether thumbnails should be generated
051             */
052            private boolean useThumbs = true;
053            /**
054             * allowed file name regex pattern to display (not applied to folders), null for all
055             */
056            private String fileNamePattern = null;
057            /**
058             * ui defaults, this must be string formatted as follows:
059             * key1=value1;key2=value2;...keyN=valueN
060             */
061            private String uiDefaults = null;
062            /**
063             * shows whether ui default should be dumped to log
064             */
065            private boolean dumpUiDefaults;
066            /**
067             * gui properties to add to GUIHelper, this must be string formatted as follows:
068             * key1=value1;key2=value2;...keyN=valueN
069             */
070            private String guiProperties;
071            /**
072             * disable local file system (prevent creation of file system tree/list)
073             */
074            private boolean disableLocalFileSystem = true;
075            //---------------------------------------------------------------
076            //      main view
077            //---------------------------------------------------------------
078            /**
079             * shows whether logo is enabled or not
080             */
081            private boolean mainViewLogoEnabled = true;
082            /**
083             * shows whether local files tree view is visible
084             */
085            private boolean mainViewFileTreeViewVisible = false;
086            /**
087             * local files tree view width (percent)
088             */
089            private int mainViewFileTreeViewWidthPercent = 25;
090            /**
091             * shows whether local files list view is visible
092             */
093            private boolean mainViewFileListViewVisible = false;
094            /**
095             * local files list view height (percent)
096             */
097            private int mainViewFileListViewHeightPercent = 50;
098            //---------------------------------------------------------------
099            //      file tree view
100            //---------------------------------------------------------------
101            /**
102             * shows whether files should be rendered on file tree
103             */
104            private boolean fileTreeViewShowFiles = false;
105            /**
106             * shows whether file length should be rendered on file tree
107             */
108            private boolean fileTreeViewShowFileLength = false;
109            //---------------------------------------------------------------
110            //      file list view
111            //---------------------------------------------------------------
112            /**
113             * shows whether local files list view location bar is visible
114             */
115            private boolean fileListViewLocationBarVisible = true;
116            /**
117             * shows whether thumbnails should be generated for file list view
118             */
119            private boolean fileListViewUseThumbs = true;
120            //---------------------------------------------------------------
121            //      upload view
122            //---------------------------------------------------------------       
123            /**
124             * upload view menu bar (containing add/remove/retry menus
125             * and files summary labels) visibility
126             */
127            private boolean uploadViewMenuBarVisible = true;
128            /**
129             * upload paste action visibility
130             */
131            private boolean uploadViewPasteActionVisible = true;
132            /**
133             * upload add action visibility
134             */
135            private boolean uploadViewAddActionVisible = true;
136            /**
137             * upload view remove action visibility
138             */
139            private boolean uploadViewRemoveActionVisible = true;
140            /**
141             * upload view retry action visibility
142             */
143            private boolean uploadViewRetryActionVisible = true;
144            /**
145             * upload view files summary bar (ready/uploading/finished/failed) visibility
146             */
147            private boolean uploadViewFilesSummaryBarVisible = true;
148            /**
149             * upload view start action visibility
150             */
151            private boolean uploadViewStartActionVisible = true;
152            /**
153             * upload view stop action visibility
154             */
155            private boolean uploadViewStopActionVisible = true;
156            /**
157             * upload view list status line visibility
158             */
159            private boolean uploadViewListStatusVisible = true;
160            /**
161             * upload view progress pane (incl. pogress bar and upload stats:
162             * completion, rate, time) visibility
163             */
164            private boolean uploadViewProgressPaneVisible = true;
165            /**
166             * shows whether thumbnails should be generated for upload view
167             */
168            private boolean uploadViewUseThumbs = true;
169            /**
170             * custom name for upload list
171             */
172            private String uploadListViewName = null;
173            /**
174             * upload view start upload button text
175             */
176            private String uploadViewStartUploadButtonText = null;
177            /**
178             * upload view start upload button image url
179             */
180            private String uploadViewStartUploadButtonImageUrl = null;
181            /**
182             * upload view stop upload button text
183             */
184            private String uploadViewStopUploadButtonText = null;
185            /**
186             * upload view stop upload button image url
187             */
188            private String uploadViewStopUploadButtonImageUrl = null;
189            /**
190             * shows whether list should be positioned to item being uploaded
191             */
192            private boolean uploadViewAutoscrollToUploadingFile = false;
193            //---------------------------------------------------------------
194            //      constructors
195            //---------------------------------------------------------------
196            /**
197             * with model 
198             */
199            public ViewConfig( IModel model ) {
200                    super();
201                    //
202                    //      inject properties, if present
203                    try {
204                            PropertyFactory pf = PropertyFactory.getInstance();
205                            Property pr = pf.getProperty( PROPERTY );
206                            PropertyHelper ph = PropertyHelper.getInstance();
207                            ph.injectProperties( this, pr, null );
208                    } catch( MissingResourceException ignore ) {
209                    }
210            }
211            //---------------------------------------------------------------
212            //      property accessors
213            //---------------------------------------------------------------
214            /* (non-Javadoc)
215             * @see jmaster.jumploader.model.impl.config.xx#toString()
216             */
217            public String toString() {
218                    return "" +
219                    "lookAndFeel=" + lookAndFeel + "\r\n" +
220                    "uiDefaults=" + uiDefaults + "\r\n" +
221                    "dumpUiDefaults=" + dumpUiDefaults + "\r\n" +
222                    "guiProperties=" + guiProperties + "\r\n" +
223                    "useThumbs=" + useThumbs + "\r\n" +
224                    "thumbWidth=" + thumbWidth + "\r\n" +
225                    "thumbHeight=" + thumbHeight + "\r\n" +
226                    "fileNamePattern=" + fileNamePattern + "\r\n" +
227                    "mainViewLogoEnabled=" + mainViewLogoEnabled + "\r\n" +
228                    "mainViewFileTreeViewVisible=" + mainViewFileTreeViewVisible + "\r\n" +
229                    "mainViewFileTreeViewWidthPercent=" + mainViewFileTreeViewWidthPercent + "\r\n" +
230                    "mainViewFileListViewVisible=" + mainViewFileListViewVisible + "\r\n" +
231                    "mainViewFileListViewHeightPercent=" + mainViewFileListViewHeightPercent + "\r\n" +
232                    "fileTreeViewShowFiles=" + fileTreeViewShowFiles + "\r\n" +
233                    "fileTreeViewShowFileLength=" + fileTreeViewShowFileLength + "\r\n" +
234                    "fileListViewLocationBarVisible=" + fileListViewLocationBarVisible + "\r\n" +
235                    "fileListViewUseThumbs=" + fileListViewUseThumbs + "\r\n" +
236                    "uploadViewMenuBarVisible=" + uploadViewMenuBarVisible + "\r\n" +
237                    "uploadViewPasteActionVisible=" + uploadViewPasteActionVisible + "\r\n" +
238                    "uploadViewAddActionVisible=" + uploadViewAddActionVisible + "\r\n" +
239                    "uploadViewRemoveActionVisible=" + uploadViewRemoveActionVisible + "\r\n" +
240                    "uploadViewRetryActionVisible=" + uploadViewRetryActionVisible + "\r\n" +
241                    "uploadViewFilesSummaryBarVisible=" + uploadViewFilesSummaryBarVisible + "\r\n" +
242                    "uploadViewStartActionVisible=" + uploadViewStartActionVisible + "\r\n" +
243                    "uploadViewStopActionVisible=" + uploadViewStopActionVisible + "\r\n" +
244                    "uploadViewListStatusVisible=" + uploadViewListStatusVisible + "\r\n" +
245                    "uploadViewProgressPaneVisible=" + uploadViewProgressPaneVisible + "\r\n" +
246                    "uploadViewUseThumbs=" + uploadViewUseThumbs + "\r\n" +
247                    "uploadListViewName=" + uploadListViewName + "\r\n" +
248                    "disableLocalFileSystem=" + disableLocalFileSystem + "\r\n" +
249                    "uploadViewStartUploadButtonText" + uploadViewStartUploadButtonText + "\r\n" +
250                    "uploadViewStartUploadButtonImageUrl=" + uploadViewStartUploadButtonImageUrl + "\r\n" +
251                    "uploadViewStopUploadButtonText=" + uploadViewStopUploadButtonText + "\r\n" +
252                    "uploadViewStopUploadButtonImageUrl=" + uploadViewStopUploadButtonImageUrl + "\r\n" +
253                    "uploadViewAutoscrollToUploadingFile=" + uploadViewAutoscrollToUploadingFile + "\r\n" +
254                    "";
255            }
256            public boolean isDumpUiDefaults() {
257                    return dumpUiDefaults;
258            }
259            public void setDumpUiDefaults(boolean dumpUiDefaults) {
260                    this.dumpUiDefaults = dumpUiDefaults;
261            }
262            public String getFileNamePattern() {
263                    return fileNamePattern;
264            }
265            public void setFileNamePattern(String fileNamePattern) {
266                    this.fileNamePattern = fileNamePattern;
267            }
268            public boolean isFileListViewLocationBarVisible() {
269                    return fileListViewLocationBarVisible;
270            }
271            public void setFileListViewLocationBarVisible(
272                            boolean fileListViewLocationBarVisible) {
273                    this.fileListViewLocationBarVisible = fileListViewLocationBarVisible;
274            }
275            public boolean isFileTreeViewShowFileLength() {
276                    return fileTreeViewShowFileLength;
277            }
278            public void setFileTreeViewShowFileLength(boolean fileTreeViewShowFileLength) {
279                    this.fileTreeViewShowFileLength = fileTreeViewShowFileLength;
280            }
281            public boolean isFileTreeViewShowFiles() {
282                    return fileTreeViewShowFiles;
283            }
284            public void setFileTreeViewShowFiles(boolean fileTreeViewShowFiles) {
285                    this.fileTreeViewShowFiles = fileTreeViewShowFiles;
286            }
287            public String getLookAndFeel() {
288                    return lookAndFeel;
289            }
290            public void setLookAndFeel(String lookAndFeel) {
291                    this.lookAndFeel = lookAndFeel;
292            }
293            public int getThumbHeight() {
294                    return thumbHeight;
295            }
296            public void setThumbHeight(int thumbHeight) {
297                    this.thumbHeight = thumbHeight;
298            }
299            public int getThumbWidth() {
300                    return thumbWidth;
301            }
302            public void setThumbWidth(int thumbWidth) {
303                    this.thumbWidth = thumbWidth;
304            }
305            public boolean isUploadViewAddActionVisible() {
306                    return uploadViewAddActionVisible;
307            }
308            public void setUploadViewAddActionVisible(boolean uploadViewAddActionVisible) {
309                    this.uploadViewAddActionVisible = uploadViewAddActionVisible;
310            }
311            public boolean isUploadViewFilesSummaryBarVisible() {
312                    return uploadViewFilesSummaryBarVisible;
313            }
314            public void setUploadViewFilesSummaryBarVisible(
315                            boolean uploadViewFilesSummaryBarVisible) {
316                    this.uploadViewFilesSummaryBarVisible = uploadViewFilesSummaryBarVisible;
317            }
318            public boolean isUploadViewListStatusVisible() {
319                    return uploadViewListStatusVisible;
320            }
321            public void setUploadViewListStatusVisible(boolean uploadViewListStatusVisible) {
322                    this.uploadViewListStatusVisible = uploadViewListStatusVisible;
323            }
324            public boolean isUploadViewMenuBarVisible() {
325                    return uploadViewMenuBarVisible;
326            }
327            public void setUploadViewMenuBarVisible(boolean uploadViewMenuBarVisible) {
328                    this.uploadViewMenuBarVisible = uploadViewMenuBarVisible;
329            }
330            public boolean isUploadViewProgressPaneVisible() {
331                    return uploadViewProgressPaneVisible;
332            }
333            public void setUploadViewProgressPaneVisible(
334                            boolean uploadViewProgressPaneVisible) {
335                    this.uploadViewProgressPaneVisible = uploadViewProgressPaneVisible;
336            }
337            public boolean isUploadViewRemoveActionVisible() {
338                    return uploadViewRemoveActionVisible;
339            }
340            public void setUploadViewRemoveActionVisible(
341                            boolean uploadViewRemoveActionVisible) {
342                    this.uploadViewRemoveActionVisible = uploadViewRemoveActionVisible;
343            }
344            public boolean isUploadViewRetryActionVisible() {
345                    return uploadViewRetryActionVisible;
346            }
347            public void setUploadViewRetryActionVisible(boolean uploadViewRetryActionVisible) {
348                    this.uploadViewRetryActionVisible = uploadViewRetryActionVisible;
349            }
350            public boolean isUploadViewStartActionVisible() {
351                    return uploadViewStartActionVisible;
352            }
353            public void setUploadViewStartActionVisible(boolean uploadViewStartActionVisible) {
354                    this.uploadViewStartActionVisible = uploadViewStartActionVisible;
355            }
356            public boolean isUploadViewStopActionVisible() {
357                    return uploadViewStopActionVisible;
358            }
359            public void setUploadViewStopActionVisible(boolean uploadViewStopActionVisible) {
360                    this.uploadViewStopActionVisible = uploadViewStopActionVisible;
361            }
362            public int getMainViewFileListViewHeightPercent() {
363                    return mainViewFileListViewHeightPercent;
364            }
365            public void setMainViewFileListViewHeightPercent(
366                            int mainViewFileListViewHeightPercent) {
367                    this.mainViewFileListViewHeightPercent = mainViewFileListViewHeightPercent;
368            }
369            public boolean isMainViewFileListViewVisible() {
370                    return mainViewFileListViewVisible;
371            }
372            public void setMainViewFileListViewVisible(boolean mainViewFileListViewVisible) {
373                    this.mainViewFileListViewVisible = mainViewFileListViewVisible;
374            }
375            public int getMainViewFileTreeViewWidthPercent() {
376                    return mainViewFileTreeViewWidthPercent;
377            }
378            public void setMainViewFileTreeViewWidthPercent(
379                            int mainViewFileTreeViewWidthPercent) {
380                    this.mainViewFileTreeViewWidthPercent = mainViewFileTreeViewWidthPercent;
381            }
382            public boolean isMainViewFileTreeViewVisible() {
383                    return mainViewFileTreeViewVisible;
384            }
385            public void setMainViewFileTreeViewVisible(boolean mainViewFileTreeViewVisible) {
386                    this.mainViewFileTreeViewVisible = mainViewFileTreeViewVisible;
387            }
388            public boolean isMainViewLogoEnabled() {
389                    return mainViewLogoEnabled;
390            }
391            public void setMainViewLogoEnabled(boolean mainViewLogoEnabled) {
392                    this.mainViewLogoEnabled = mainViewLogoEnabled;
393            }
394            public boolean isUseThumbs() {
395                    return useThumbs;
396            }
397            public void setUseThumbs(boolean useThumbs) {
398                    this.useThumbs = useThumbs;
399            }
400            public boolean isFileListViewUseThumbs() {
401                    return fileListViewUseThumbs;
402            }
403            public void setFileListViewUseThumbs(boolean fileListViewUseThumbs) {
404                    this.fileListViewUseThumbs = fileListViewUseThumbs;
405            }
406            public boolean isUploadViewUseThumbs() {
407                    return uploadViewUseThumbs;
408            }
409            public void setUploadViewUseThumbs(boolean uploadViewUseThumbs) {
410                    this.uploadViewUseThumbs = uploadViewUseThumbs;
411            }
412            public String getUploadListViewName() {
413                    return uploadListViewName;
414            }
415            public void setUploadListViewName(String uploadListViewName) {
416                    this.uploadListViewName = uploadListViewName;
417            }
418            public String getUiDefaults() {
419                    return uiDefaults;
420            }
421            public void setUiDefaults(String uiDefaults) {
422                    this.uiDefaults = uiDefaults;
423            }
424            public String getGuiProperties() {
425                    return guiProperties;
426            }
427            public void setGuiProperties(String guiProperties) {
428                    this.guiProperties = guiProperties;
429            }
430            public boolean isDisableLocalFileSystem() {
431                    return disableLocalFileSystem;
432            }
433            public void setDisableLocalFileSystem(boolean disableLocalFileSystem) {
434                    this.disableLocalFileSystem = disableLocalFileSystem;
435            }
436            public String getUploadViewStartUploadButtonImageUrl() {
437                    return uploadViewStartUploadButtonImageUrl;
438            }
439            public void setUploadViewStartUploadButtonImageUrl(
440                            String uploadViewStartUploadButtonImageUrl) {
441                    this.uploadViewStartUploadButtonImageUrl = uploadViewStartUploadButtonImageUrl;
442            }
443            public String getUploadViewStartUploadButtonText() {
444                    return uploadViewStartUploadButtonText;
445            }
446            public void setUploadViewStartUploadButtonText(
447                            String uploadViewStartUploadButtonText) {
448                    this.uploadViewStartUploadButtonText = uploadViewStartUploadButtonText;
449            }
450            public String getUploadViewStopUploadButtonImageUrl() {
451                    return uploadViewStopUploadButtonImageUrl;
452            }
453            public void setUploadViewStopUploadButtonImageUrl(
454                            String uploadViewStopUploadButtonImageUrl) {
455                    this.uploadViewStopUploadButtonImageUrl = uploadViewStopUploadButtonImageUrl;
456            }
457            public String getUploadViewStopUploadButtonText() {
458                    return uploadViewStopUploadButtonText;
459            }
460            public void setUploadViewStopUploadButtonText(
461                            String uploadViewStopUploadButtonText) {
462                    this.uploadViewStopUploadButtonText = uploadViewStopUploadButtonText;
463            }
464            public boolean isUploadViewPasteActionVisible() {
465                    return uploadViewPasteActionVisible;
466            }
467            public void setUploadViewPasteActionVisible(boolean uploadViewPasteActionVisible) {
468                    this.uploadViewPasteActionVisible = uploadViewPasteActionVisible;
469            }
470            public boolean isUploadViewAutoscrollToUploadingFile() {
471                    return uploadViewAutoscrollToUploadingFile;
472            }
473            public void setUploadViewAutoscrollToUploadingFile(
474                            boolean uploadViewAutoscrollToUploadingFile) {
475                    this.uploadViewAutoscrollToUploadingFile = uploadViewAutoscrollToUploadingFile;
476            }
477    }