View Javadoc

1   /*
2    * Copyright 2007 Sebastien Brunot (sbrunot@gmail.com)
3    * 
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    * 
8    *   http://www.apache.org/licenses/LICENSE-2.0
9    *   
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package net.sourceforge.buildmonitor;
17  
18  import java.awt.Image;
19  import java.util.List;
20  
21  public interface BuildMonitor
22  {
23  	///////////////////////////////
24  	// Constants
25  	///////////////////////////////
26  
27  	static final String MESSAGEKEY_TRAYICON_INITIAL_TOOLTIP = "trayIcon.tooltip.initialMessage";
28  
29  	static final String MESSAGEKEY_TRAYICON_MENU_EXIT = "trayIcon.menu.exit";
30  
31  	static final String MESSAGEKEY_TRAYICON_MENU_SORT = "trayIcon.menu.sort";
32  
33  	static final String MESSAGEKEY_TRAYICON_MENUITEM_EXIT = "trayIcon.menuItem.exit";
34  
35  	static final String MESSAGEKEY_TRAYICON_MENUITEM_SORT_BY_NAME = "trayIcon.menuItem.sortByName";
36  
37  	static final String MESSAGEKEY_TRAYICON_MENUITEM_SORT_BY_AGE = "trayIcon.menuItem.sortByAge";
38  
39  	static final String MESSAGEKEY_TRAYICON_MENUITEM_UPDATE_STATUS_NOW = "trayIcon.menuItem.update";
40  	
41  	static final String MESSAGEKEY_TRAYICON_MENUITEM_BUILD_SERVER_HOME_PAGE_SUFFIX = "trayIcon.menuItem.buildServerHomePageSuffix";
42  
43  	static final String MESSAGEKEY_TRAYICON_MENUITEM_ABOUT = "trayIcon.menuItem.about";
44  
45  	static final String MESSAGEKEY_TRAYICON_MENUITEM_OPTIONS = "trayIcon.menuItem.options";
46  
47  	static final String MESSAGEKEY_ERROR_DIALOG_TITLE = "errorDialog.title";
48  
49  	static final String MESSAGEKEY_UNEXPECTED_ERROR_MESSAGE = "unexpectedError.message";
50  
51  	static final String MESSAGEKEY_ERROR_SYSTEMTRAY_NOT_SUPPORTED = "error.systemTray.not.supported";
52  
53  	///////////////////////////////
54  	// Methods
55  	///////////////////////////////
56  
57  	/**
58  	 * The method to call when an unrecoverable error occurs in the application. It displays
59  	 * an error message to the end user and then exit.
60  	 * @param theUnexpectedProblem the Throwable that was unexpected.
61  	 */
62  	void panic(Throwable theUnexpectedProblem);
63  
64  	/**
65  	 * The method to call when an unrecoverable error occurs in the application and you want
66  	 * to display your own message (instead of a generic one).It displays your error message
67  	 * to the end user and then exit.
68  	 * @param theErrorMessage the error message to display to the end user.
69  	 */
70  	void panic(String theErrorMessage);
71  
72  	/**
73  	 * Get a message identified by its key in the application resource bundle.
74  	 * The available messages key for the application all begins with prefix MESSAGEKEY_.
75  	 * @param theMessageKey the message key
76  	 * @return the message
77  	 */
78  	String getMessage(String theMessageKey);
79  	
80  	/**
81  	 * Returns the default icon to be displayed by dialogs opened by monitors
82  	 * @return the default icon to be displayed by dialogs opened by monitors
83  	 */
84  	Image getDialogsDefaultIcon();
85  	
86  	/**
87  	 * Update the build status (this method is called by build monitors to update the GUI when
88  	 * the build status has changed).
89  	 * 
90  	 * @param theBuildsStatus a List that contains the each build report to use to update the
91  	 * global status.
92  	 */
93  	void updateBuildStatus(List<BuildReport> theBuildsStatus);
94  	
95  	/**
96  	 * Report a monitoring exception (this method is called by build monitors to notify that
97  	 * a monitoring exception occured)
98  	 * 
99  	 * @param theMonitoringException the monitoring exception to display to the end user
100 	 */
101 	void reportMonitoringException(MonitoringException theMonitoringException);
102 	
103 	/**
104 	 * Report an update of the monitor configuration to be taken into account immediately
105 	 */
106 	void reportConfigurationUpdatedToBeTakenIntoAccountImmediately();
107 }