1) Custom Preferences?
 
> Why aren't these just normal eclipse properties ?
The Exadel framework for prefernces was created a long ago
and migrated to Eclipse with minimal changes. It describes preferences in terms
of XModel which allows to reuse in preference pages same forms that are
used in editors and dialogs
(org.jboss.tools.common.model.ui.preferences.XMOBasedPreferencesPage).
 
ReportPreference is a utility class accessing the XModel object keeping the
preferences. "Struts Studio" is an awkward slip, it can be fixed.

> Where are they stored ?
%workspace%/.metadata/.plugins/org.jboss.tools.common.model/Preferences.xml
 
> How can the user toggle them ?
There was preference page 'Report Problem'. Someone removed it when
migrating to RedHat. It is quite easy to restore it.
Also, some of these preferences are saved according to user
choice in checkboxes in
org.jboss.tools.common.model.ui.dialog.ErrorDialog
 
> 2) ATT_ATTACH_REDHAT_LOG and ATT_ATTACH_ECLIPSE_LOG
> What is REDHAT_LOG ?
 
%workspace%/.metadata/.plugins/org.jboss.tools.common/.log
When error dialog appears it prompts user either to report problem immediately
or to save it into that log to be sent at a later time (by action Report Problem).
 
> Why aren't these attributes used for anything ?
> Attaching the eclipse log would be an relavant option.
ATT_ATTACH_REDHAT_LOG is used - when reporting a problem user may
type a letter without attaching content of the log (result of previously preferring  
to postpone reporting in error dialog).
 
ATT_ATTACH_ECLIPSE_LOG had been used in the same way, but later was
commented out from ReportProblemWizard (I do not remember exact reason,
maybe a caution because eclipse log may be quite lo-o-ong).

> 3) What is AbstractQueryWizard ? The dialog extends it but what does it
> help with ?
 
Again, this framework for dialogs was developed a long before Eclipse epoch
and migrated to Eclipse with reimplementing AbstractQueryDialog that extends
standard TitleAreaDialog. AbstractQueryWizard implements SpecialWizard
which makes it a common service that can be loaded by id and executed
without bothering if it is a dialog or not.
 
> 4) The layout looks weird on linux
That must be studied and fixed. In Windows dialog looked fine.
>
> 5) what is XAttributeSupport ?
It manages an input form in dialogs, editors and preferences.
A set of input fields is described in XModel metadata.
This approach is very helpful because it sets the standard for all forms,
and in most cases allows to create a form just putting few tags to
*.meta file.
 
Slava Kabanovich