001 /** =====================================================================
002 *
003 * File Name : $Id: ModifyFormPanel.java,v 1.8 2008/01/15 11:08:15 cb Exp $
004 *
005 * Description
006 * -----------
007 *
008 * See javadoc comment
009 *
010 * =====================================================================
011 *
012 * @Author : Craige Bevil
013 * Control Software Group
014 * Isaac Newton Group of Telescopes
015 *
016 * =====================================================================
017 *
018 * Modification Log
019 *
020 * Vers Date Author Reason
021 * ---- ---- ------ ------
022 * 1 C.Bevil First Release
023 *
024 * Commissioning Notes
025 * -------------------
026 *
027 * None
028 *
029 * =====================================================================
030 *
031 * @Version : $Id: ModifyFormPanel.java,v 1.8 2008/01/15 11:08:15 cb Exp $
032 *
033 * @Author : $Author: cb $
034 *
035 * Header : $Header: /opt/INGsrc/src/CVS/softproj/FaultDatabase/src/FaultDatabase/FaultDatabase/src/GWTApplication/client/ModifyFormPanel.java,v 1.8 2008/01/15 11:08:15 cb Exp $
036 *
037 * Log : $Log: ModifyFormPanel.java,v $
038 * Log : Revision 1.8 2008/01/15 11:08:15 cb
039 * Log : Ran through PMD and sorted out the javadoc so that we could export the
040 * Log : javadoc to the javadoc repository.
041 * Log :
042 * Log : Revision 1.7 2007/12/12 15:26:12 cb
043 * Log : Added new javascript library which allows fancy message boxes to be
044 * Log : displayed.
045 * Log :
046 * Log : Revision 1.6 2007/08/17 14:26:41 cb
047 * Log : Updated for lastest prototype incorporating a lot of Nikos comments
048 * Log :
049 * Log : Revision 1.5 2007/08/09 08:34:59 cb
050 * Log : Modified so that we select a different tab in the main menu when we do
051 * Log : not have any more faults to update.
052 * Log :
053 * Log : Revision 1.4 2007/08/01 13:00:05 cb
054 * Log : First prototype after import
055 * Log :
056 * Log : Revision 1.3 2007/07/24 08:31:19 cb
057 * Log : Added a method which can be used to estalish if the fault is being
058 * Log : edited or not
059 * Log :
060 * Log : Revision 1.2 2007/07/13 10:54:05 cb
061 * Log : Complete interface prototype
062 * Log :
063 * Log : Revision 1.1.1.1 2007/06/01 08:33:26 cb
064 * Log : Imported using TkCVS
065 * Log :
066 *
067 * =====================================================================*/
068
069 package GWTApplication.client;
070
071 import com.google.gwt.user.client.*;
072 import com.google.gwt.user.client.rpc.*;
073 import com.google.gwt.user.client.ui.*;
074 import com.google.gwt.user.client.ui.FlexTable.*;
075
076 import com.gwtext.client.core.EventObject;
077 import com.gwtext.client.util.Format;
078 import com.gwtext.client.widgets.MessageBox;
079 import com.gwtext.client.widgets.MessageBoxConfig;
080
081 /**
082 * This class is used to create a tab into which panels are placed
083 * from where the user can modify faults. Each tab associated with
084 * this tab will have associated with it a defect fault report number.
085 * @author Craige Bevil
086 * @version $Id: ModifyFormPanel.java,v 1.8 2008/01/15 11:08:15 cb Exp $
087 */
088
089 class ModifyFormPanel extends FaultDBForm {
090
091 /**
092 * This is the main tab panel
093 */
094
095 final private TabPanel MainTabPanel;
096
097 /**
098 * This is a tab widget which will contain a series of tabs each
099 * one containing the details of a fault which has been requested
100 * to be modified
101 */
102
103 final TabPanel ModifyFaultTabs = new TabPanel();
104
105 /**
106 * Returns the number of faults being edited
107 * @return The number of faults which are being edited.
108 */
109
110 public int getNumberOfFaultsBeingEdited () {
111 return ModifyFaultTabs.getTabBar().getTabCount();
112 }
113
114 /**
115 * Reports whether the fault specified is being edited or not.
116 * @param faultId The fault identifier of the fault to be checked
117 */
118
119 public boolean isFaultBeingEdited(final int faultId) {
120
121 for (int i=0; i < ModifyFaultTabs.getWidgetCount();i++) {
122
123 final ModifyFault temp = (ModifyFault)ModifyFaultTabs.getWidget(i);
124
125 if (temp.getFaultNumber() == faultId) {
126 return true;
127 }
128 }
129
130 return false;
131 }
132
133 /**
134 * This is used to create a new tab panel which will be used to
135 * modify the fault which has been specified
136 * @param FaultNumber This is the number of the fault which is to
137 * be presented to the user for modification.
138 */
139
140 public void addNewFaultTab (final int FaultNumber) {
141
142 ModifyFault temp;
143
144 // First we need to find out if there is already a tab which
145 // contains the details of the fault being edited and if so
146 // then we tell the user that he is already editing that fault.
147
148 for (int i=0; i < ModifyFaultTabs.getWidgetCount();i++) {
149
150 temp = (ModifyFault)ModifyFaultTabs.getWidget(i);
151
152 if (temp.getFaultNumber() == FaultNumber) {
153 MessageBox.alert(internationalizationConstants.information(),"Fault number " + FaultNumber + " is already being modified.");
154 ModifyFaultTabs.selectTab(i);
155 return;
156 }
157 }
158
159 // Now show that we are busy whilst we build the form which
160 // the user will use to modify the fault.
161
162 busyIndicator.showBusy(true);
163
164 // Now add a tab for modifying a fault, first we need to get
165 // the fault data from the servlet.
166
167 temp = new ModifyFault(FaultNumber,svc,internationalizationConstants,ModifyFaultTabs,UserAuthentication,MainTabPanel);
168
169 ModifyFaultTabs.add(temp,internationalizationConstants.fault() + " " + FaultNumber);
170
171 // Now select the tab which has just been created for the user
172 // to modify the fault
173
174 ModifyFaultTabs.selectTab(ModifyFaultTabs.getTabBar().getTabCount() - 1);
175
176 busyIndicator.showBusy(false);
177 }
178
179 ModifyFormPanel (final TabPanel MainTabPanel,final FaultServiceAsync svc,final AuthenticationDetails UserAuthentication) {
180
181 this.svc = svc;
182 this.UserAuthentication = UserAuthentication;
183 this.MainTabPanel = MainTabPanel;
184
185 MainTabPanel.add(ModifyFaultTabs,internationalizationConstants.updateFault());
186 }
187 }
188
189