Hey thanks for the congrats

I am pretty happy with everything cos I really had a very busy time. I've always like people answering questions after they have passed. So I am going to be one of them.
The reason so less in GUI, well I think around 8 points is a sufficient penalty. I didn't spend too much time on it. I knew what went wrong. Here is how I lost it:
1. Pop up for user's guide is just a simple non editable editor popup reading HTML document.
2. Error message is displayed as plain text in the client GUI. Should make it more readable
3. Config is using JTable for extendable reason. But it does not look like a configuation pop up as most standdard applications, a bit weird. Killing spot is when user enter a value in the JTable for the config value, mouse has to unfocus the cell in order for the new value to be saved. It is a JTable event handling thing.
4. My main client screen looks really good. 13 is a bit harsh but still, I am not giving that much of a fuss about it.
Client server section, well I thought the safe shutdown might have given me the deduction. But I asked another person, he didn't have a safe shutdown either and he had a full score in that section. I am not sure. 10 points is painful. But again, didn't spend too much time on that section, I thought that was an easy part. Just bind, unbind and kill the JVM.
I had a GUI for server start and shutdown. Only I didn't do a safe shutdown due do the nature of the RMI connectivity. I have discovered interesting things on the way the object is registered in the Naming directory. When an object is unbind, it is still live to the client that is currently connecting to it. I can't unbind to make a safe shutdown in the GUI altogether because it is not exactly safe. So only full shutdown - terminate the server JVM.
I throw RTE (RuntimeException). For record not found I throw RecordNotFound exception. But for exceptions that are caused by inputs, I subclassed RuntimeException. It is not good to throw exceptions that are not suppose to happen. Like NumberFormatException. I Wrapped all the exceptions into it's own layer - i.e, The client won't have a RecordNotFound exception in the package, it is wrapped/chained with a new one that make sense to the client.
I did a good job on the Data class and coding styles. My project is Bodgitt and Scaper by the way.
[ June 27, 2006: Message edited by: Anna Kafei ]
[ June 27, 2006: Message edited by: Anna Kafei ]