mixconfig.panels.CertPanel Class Reference

Inherits javax::swing::JPanel, java::awt::event::ActionListener, and javax::swing::event::ChangeListener.

List of all members.

Public Member Functions

 CertPanel (String a_name, String a_toolTip, JAPCertificate a_certificate, int a_certAlgorithm, int a_certType)
 CertPanel (String a_name, String a_toolTip, PKCS12 a_certificate, int a_certAlgorithm, int a_certType)
 CertPanel (String a_name, String a_toolTip, PKCS12 a_certificate, int a_certAlgorithm, int a_certType, int keysize)
void setCertCreationValidator (ICertCreationValidator a_cg)
boolean isCertificateSaved ()
boolean isCertificateVerifyable ()
void setChangedCertNotVerifyableMessage (String a_strChangedCertNotVerifyable, JAPDialog.ILinkedInformation a_linkedInformation)
void setEnabled (boolean enabled)
void actionPerformed (ActionEvent a_event)
char[] getPrivateCertPassword ()
ICertificate getCert ()
void setCert (JAPCertificate a_certificate)
ICertificateView getCertificateView ()
void setCertificateView (ICertificateView a_certificateView)
boolean setCert (byte[] cert) throws IllegalArgumentException
void setAdditionalVerifier (ICertificate a_cert)
void removeCert ()
void addChangeListener (ChangeListener a_cl)
void updateCertificateIcon (boolean a_bActive)
void stateChanged (ChangeEvent arg0)
String getCertName ()

Static Public Member Functions

static boolean isAutoSign ()
static void setAutoSign (boolean b_autoSign)
static Vector< CertPanelgetCertPanels ()

Static Public Attributes

static final int CERT_ALGORITHM_RSA = 1
static final int CERT_ALGORITHM_DSA = 2
static final int CERT_ALGORITHM_BOTH = 3
static final String CERTPATH_MIX = CERTPATH + "acceptedMixCAs/"
static final String CERTPATH_PAYMENT = CERTPATH + "acceptedPaymentInstances/"
static final String CERTPATH_TERMS = CERTPATH + "acceptedTaCTemplates/"
static final String CERTPATH_INFOSERVICES = CERTPATH + "acceptedInfoServiceCAs/"

Static Package Functions

 [static initializer]

Private Member Functions

 CertPanel (String a_name, String a_toolTip, ICertificate a_certificate, boolean a_pkcs12, int a_certAlgorithm, int a_certType, int keysize)
void checkPublicKeyAlgorithm (IMyPublicKey a_publicKey) throws IllegalArgumentException
void fireStateChanged ()
boolean setCertificate (PKCS12 pkcs12, char[] strPrivCertPasswd) throws IllegalArgumentException
void enableButtons ()
boolean importPubCert () throws IOException
boolean importPrivCert () throws IOException
void changePasswd ()
boolean generateNewCert () throws NullPointerException, CannotContinueException
void exportCert ()
void signCert ()
void setCertInfo (JAPCertificate a_x509cs)
void clearCertInfo ()

Static Private Member Functions

static void addDefaultCertificates (String sPath, int iType)

Private Attributes

int m_certType = 0
String m_strChangedCertNotVerifyable
JAPDialog.ILinkedInformation m_linkedInformation
JButton m_bttnCreateCert
JButton m_bttnImportCert
JButton m_bttnExportCert
JButton m_bttnSignCert
JButton m_bttnChangePasswd
JButton m_bttnRemoveCert
JLabel m_certLabel
JLabel m_textCertValidity
JTextPane m_lblSubjectKeyIdentifier
boolean m_bCertIsPKCS12 = false
int m_certAlgorithm
boolean m_bCreateDSACerts
int m_nKeySize = 1024
boolean m_bCertificateSaved = true
ICertificate m_cert
ICertificate m_additionalVerifier
String m_privCertPasswd
String m_name
ICertCreationValidator m_validator
ICertificateView m_certView
Vector< ChangeListener > m_changeListeners = new Vector<ChangeListener>()

Static Private Attributes

static final String STRING_ZERO = new String(new char[]{0})
static CertificateStore m_trustedCertificates
static final String CERTPATH = "certificates/"
static final String CERT_VALID = "cert.gif"
static final String CERT_INVALID = "certinvalid.gif"
static final String CERT_VALID_INACTIVE = "certinactive.gif"
static final String CERT_INVALID_INACTIVE = "certinvalidinactive.gif"
static final String CERT_DISABLED = "certdisabled.gif"
static final String MSG_MANDATORY_ALGO = CertPanel.class.getName() + "_mandatoryAlgorithm"
static final String MSG_CERT_TYPE_UNKNOWN = CertPanel.class.getName() + "_certTypeUnknown"
static final String MSG_CONFIRM_DELETION = CertPanel.class.getName() + "_confirmDeletion"
static final String MSG_CHOOSE_LOAD_METHOD = CertPanel.class.getName() + "_chooseLoadMethod"
static final String MSG_CHOOSE_SAVE_METHOD = CertPanel.class.getName() + "_chooseSaveMethod"
static final String MSG_CHOOSE_CERT_TYPE = CertPanel.class.getName() + "_chooseCertType"
static final String MSG_NO_PRIVATE_CERT = CertPanel.class.getName() + "_noPrivateCert"
static Vector< CertPanelms_certpanels = new Vector<CertPanel>()
static boolean m_autoSign = false

Classes

class  CertPanelFinishedContentPane
class  CertPanelPasswordReader
class  FileFilterSelectionPane


Detailed Description

This class provides a control to set and display PKCS12 and X.509 certificates. It contains text fields showing issuer name, validity dates etc.
If the displayed certificate is PKCS12, it shows buttons for creating, importing, exporting, and deleting certificates, and for changing the certificate's password.
If the displayed certificate is an X.509 public certificate, only the buttons for importing, exporting, and deleting are shown.
Author:
ronin <ronin2@web.de>

Constructor & Destructor Documentation

mixconfig.panels.CertPanel.CertPanel ( String  a_name,
String  a_toolTip,
JAPCertificate  a_certificate,
int  a_certAlgorithm,
int  a_certType 
)

Constructs a new instance of CertPanel with the specified name, the specified tool tip and the specified X.509 certificate.

Parameters:
a_name A name that will be displayed above the panel.
a_toolTip A text that will be displayed as a tool tip when the user moves the mouse over the panel.
a_certificate the certificate (X.509)
a_certAlgorithm the certificate algorithm that is supported by this panel
a_certType the certificate type that is used for verification

mixconfig.panels.CertPanel.CertPanel ( String  a_name,
String  a_toolTip,
PKCS12  a_certificate,
int  a_certAlgorithm,
int  a_certType 
)

Constructs a new instance of CertPanel with the specified name, the specified tool tip and the specified PKCS12 certificate.

Parameters:
a_name A name that will be displayed above the panel.
a_toolTip A text that will be displayed as a tool tip when the user moves the mouse over the panel.
a_certificate the certificate (PKCS12)
a_certAlgorithm the certificate algorithm that is supported by this panel

mixconfig.panels.CertPanel.CertPanel ( String  a_name,
String  a_toolTip,
PKCS12  a_certificate,
int  a_certAlgorithm,
int  a_certType,
int  keysize 
)

Constructs a new instance of CertPanel with the specified name, the specified tool tip and the specified PKCS12 certificate. The keysize is used, if a new certificate is created.

Parameters:
a_name A name that will be displayed above the panel.
a_toolTip A text that will be displayed as a tool tip when the user moves the mouse over the panel.
a_certificate the certificate (PKCS12)
a_certAlgorithm the certificate algorithm that is supported by this panel
a_certType ?
a_keysize keysize (in bits) used if a new key is created

mixconfig.panels.CertPanel.CertPanel ( String  a_name,
String  a_toolTip,
ICertificate  a_certificate,
boolean  a_pkcs12,
int  a_certAlgorithm,
int  a_certType,
int  keysize 
) [private]

Constructs a new instance of CertPanel with the specified name, the specified tool tip and the specified certificate.

Parameters:
a_name A name that will be displayed above the panel.
a_toolTip A text that will be displayed as a tool tip when the user moves the mouse over the panel.
a_certificate the certificate (PKCS12 or X.509)
a_pkcs12 true if the certificate is PKCS12; false otherwise
a_certAlgorithm the certificate algorithm that is supported by this panel

References mixconfig.panels.CertPanel.CERT_ALGORITHM_BOTH, mixconfig.panels.CertPanel.CERT_ALGORITHM_DSA, mixconfig.panels.CertPanel.CERT_ALGORITHM_RSA, mixconfig.panels.CertPanel.CERT_DISABLED, mixconfig.panels.CertPanel.enableButtons(), mixconfig.panels.CertPanel.isCertificateVerifyable(), mixconfig.panels.CertPanel.m_bCertIsPKCS12, mixconfig.panels.CertPanel.m_bCreateDSACerts, mixconfig.panels.CertPanel.m_bttnChangePasswd, mixconfig.panels.CertPanel.m_bttnCreateCert, mixconfig.panels.CertPanel.m_bttnExportCert, mixconfig.panels.CertPanel.m_bttnImportCert, mixconfig.panels.CertPanel.m_bttnRemoveCert, mixconfig.panels.CertPanel.m_bttnSignCert, mixconfig.panels.CertPanel.m_cert, mixconfig.panels.CertPanel.m_certAlgorithm, mixconfig.panels.CertPanel.m_certLabel, mixconfig.panels.CertPanel.m_certType, mixconfig.panels.CertPanel.m_lblSubjectKeyIdentifier, mixconfig.panels.CertPanel.m_name, mixconfig.panels.CertPanel.m_nKeySize, mixconfig.panels.CertPanel.m_textCertValidity, mixconfig.panels.CertPanel.ms_certpanels, mixconfig.panels.CertPanel.setCert(), and mixconfig.panels.CertPanel.updateCertificateIcon().


Member Function Documentation

mixconfig.panels.CertPanel.[static initializer] (  )  [static, package]

TODO should be root mix instead

static void mixconfig.panels.CertPanel.addDefaultCertificates ( String  sPath,
int  iType 
) [static, private]

Read all certificates from a specified path

Parameters:
sPath 
iType 

References mixconfig.panels.CertPanel.m_trustedCertificates.

void mixconfig.panels.CertPanel.setCertCreationValidator ( ICertCreationValidator  a_cg  ) 

Set the validator for the creation of new certificates

Parameters:
a_cg the new validator
See also:
CertCreationValidator

References mixconfig.panels.CertPanel.enableButtons(), and mixconfig.panels.CertPanel.m_validator.

Referenced by mixconfig.panels.DataRetentionPanel.DataRetentionPanel(), mixconfig.tools.EncryptedLogTool.EncryptedLogTool(), and mixconfig.panels.OwnCertificatesPanel.OwnCertificatesPanel().

boolean mixconfig.panels.CertPanel.isCertificateSaved (  ) 

boolean mixconfig.panels.CertPanel.isCertificateVerifyable (  ) 

void mixconfig.panels.CertPanel.setChangedCertNotVerifyableMessage ( String  a_strChangedCertNotVerifyable,
JAPDialog.ILinkedInformation  a_linkedInformation 
)

Sets the message that is displayed when the user creates or imports an certificate that cannot be verified against one of the trusted certificates.

Parameters:
a_strChangedCertNotVerifyable String
a_linkedInformation an additional information, for example a help context, that is linked in the displayed message

References mixconfig.panels.CertPanel.m_linkedInformation, and mixconfig.panels.CertPanel.m_strChangedCertNotVerifyable.

Referenced by mixconfig.panels.OtherMixPanel.OtherMixPanel().

void mixconfig.panels.CertPanel.setEnabled ( boolean  enabled  ) 

static boolean mixconfig.panels.CertPanel.isAutoSign (  )  [static]

static void mixconfig.panels.CertPanel.setAutoSign ( boolean  b_autoSign  )  [static]

void mixconfig.panels.CertPanel.actionPerformed ( ActionEvent  a_event  ) 

char [] mixconfig.panels.CertPanel.getPrivateCertPassword (  ) 

ICertificate mixconfig.panels.CertPanel.getCert (  ) 

void mixconfig.panels.CertPanel.setCert ( JAPCertificate  a_certificate  ) 

ICertificateView mixconfig.panels.CertPanel.getCertificateView (  ) 

void mixconfig.panels.CertPanel.setCertificateView ( ICertificateView  a_certificateView  ) 

Sets a view for the certificate stored in this panel.

Parameters:
a_certificateView a certificate view

References mixconfig.panels.CertPanel.m_certView.

Referenced by mixconfig.panels.OtherMixPanel.OtherMixPanel(), and mixconfig.panels.OwnCertificatesPanel.OwnCertificatesPanel().

boolean mixconfig.panels.CertPanel.setCert ( byte[]  cert  )  throws IllegalArgumentException

Set the certificate. The method decides according to isPKCS12() whether to set the PKCS12 or X.509 certificate.

Parameters:
cert A certificate, which must be of the appropriate type for this object.
Returns:
true if the certificate has been changed; false otherwise
Exceptions:
IOException If an error occurs while converting the certificate
IllegalArgumentException If the certificate is not of the required type

References mixconfig.panels.CertPanel.checkPublicKeyAlgorithm(), mixconfig.panels.CertPanel.clearCertInfo(), mixconfig.panels.CertPanel.enableButtons(), mixconfig.panels.CertPanel.fireStateChanged(), mixconfig.panels.CertPanel.CertPanelPasswordReader.getPassword(), mixconfig.panels.CertPanel.m_bCertIsPKCS12, mixconfig.panels.CertPanel.m_cert, mixconfig.panels.CertPanel.MSG_CERT_TYPE_UNKNOWN, mixconfig.panels.CertPanel.MSG_NO_PRIVATE_CERT, mixconfig.panels.CertPanel.setCertificate(), and mixconfig.panels.CertPanel.setCertInfo().

void mixconfig.panels.CertPanel.setAdditionalVerifier ( ICertificate  a_cert  ) 

void mixconfig.panels.CertPanel.removeCert (  ) 

void mixconfig.panels.CertPanel.addChangeListener ( ChangeListener  a_cl  ) 

void mixconfig.panels.CertPanel.checkPublicKeyAlgorithm ( IMyPublicKey  a_publicKey  )  throws IllegalArgumentException [private]

Checks if this panel accepts a public key of this type and throws an IllegalArgumentException if not.

Parameters:
a_publicKey a public key
Exceptions:
IllegalArgumentException if this panel does not accept a public key of the given type

References mixconfig.panels.CertPanel.CERT_ALGORITHM_BOTH, mixconfig.panels.CertPanel.CERT_ALGORITHM_DSA, mixconfig.panels.CertPanel.CERT_ALGORITHM_RSA, mixconfig.panels.CertPanel.m_certAlgorithm, and mixconfig.panels.CertPanel.MSG_MANDATORY_ALGO.

Referenced by mixconfig.panels.CertPanel.setCert(), and mixconfig.panels.CertPanel.setCertificate().

void mixconfig.panels.CertPanel.fireStateChanged (  )  [private]

boolean mixconfig.panels.CertPanel.setCertificate ( PKCS12  pkcs12,
char[]  strPrivCertPasswd 
) throws IllegalArgumentException [private]

Sets the PKCS12 certificate and the password.

Parameters:
pkcs12 The new PKCS12 certificate.
strPrivCertPasswd The new password for the certificate.
Returns:
true if the certificate has changed; false otherwise
Exceptions:
IllegalArgumentException if this panel does not accept a public key of the given type

References mixconfig.panels.CertPanel.checkPublicKeyAlgorithm(), mixconfig.panels.CertPanel.enableButtons(), mixconfig.panels.CertPanel.fireStateChanged(), mixconfig.panels.CertPanel.m_bCertificateSaved, mixconfig.panels.CertPanel.m_cert, mixconfig.panels.CertPanel.m_privCertPasswd, mixconfig.panels.CertPanel.setCertInfo(), and mixconfig.panels.CertPanel.STRING_ZERO.

Referenced by mixconfig.panels.CertPanel.generateNewCert(), mixconfig.panels.CertPanel.importPrivCert(), and mixconfig.panels.CertPanel.setCert().

void mixconfig.panels.CertPanel.updateCertificateIcon ( boolean  a_bActive  ) 

void mixconfig.panels.CertPanel.enableButtons (  )  [private]

boolean mixconfig.panels.CertPanel.importPubCert (  )  throws IOException [private]

Imports an X.509 public certificate. The user is prompted to give the name of a file from which to import. If that fails, the user is prompted to paste a certificate from the system clipboard.

Returns:
true if the certificate has changed; false otherwise
Exceptions:
IOException If an error occurs while reading the certificate.

References mixconfig.panels.ChooseStorageMethodPane.isMethodFile(), mixconfig.panels.CertPanel.MSG_CHOOSE_LOAD_METHOD, and mixconfig.panels.CertPanel.setCert().

Referenced by mixconfig.panels.CertPanel.actionPerformed().

boolean mixconfig.panels.CertPanel.importPrivCert (  )  throws IOException [private]

Imports a PKCS12 certificate. The user is prompted to give the name of a file from which to import. If that fails, the user is prompted to paste a certificate from the system clipboard.

Returns:
true if an certificate has been imported; false otherwise
Exceptions:
IOException If an error occurs while reading the certificate.

References mixconfig.panels.ChooseStorageMethodPane.isMethodFile(), mixconfig.panels.CertPanel.m_cert, mixconfig.panels.CertPanel.m_privCertPasswd, mixconfig.panels.CertPanel.MSG_CHOOSE_LOAD_METHOD, mixconfig.panels.CertPanel.setCert(), and mixconfig.panels.CertPanel.setCertificate().

Referenced by mixconfig.panels.CertPanel.actionPerformed().

void mixconfig.panels.CertPanel.changePasswd (  )  [private]

boolean mixconfig.panels.CertPanel.generateNewCert (  )  throws NullPointerException, CannotContinueException [private]

Generates a new certificate. For this purpose, a new thread is started that works in the background.

Returns:
true if a new certificate has been created; false otherwise
Exceptions:
NullPointerException If this object's certificate generation validator is null.
CannotContinueException if this object's certificate generation validator is not valid or null
See also:
CertCreationValidator

References mixconfig.ICertCreationValidator.getExtensions(), mixconfig.ICertCreationValidator.getInvalidityMessages(), mixconfig.ICertCreationValidator.getPasswordInfoMessage(), mixconfig.ICertCreationValidator.getSigName(), mixconfig.ICertCreationValidator.isValid(), mixconfig.panels.CertPanel.m_bCertificateSaved, mixconfig.panels.CertPanel.m_bCreateDSACerts, mixconfig.panels.CertPanel.m_nKeySize, mixconfig.panels.CertPanel.m_validator, and mixconfig.panels.CertPanel.setCertificate().

Referenced by mixconfig.panels.CertPanel.actionPerformed().

void mixconfig.panels.CertPanel.exportCert (  )  [private]

void mixconfig.panels.CertPanel.signCert (  )  [private]

Method to sign a certificate (only for OwnCertificatesPanels!)

Referenced by mixconfig.panels.CertPanel.actionPerformed().

void mixconfig.panels.CertPanel.setCertInfo ( JAPCertificate  a_x509cs  )  [private]

Fills the text fields in the panel with the data from the specified certificate.

Parameters:
a_x509cs an X.509 certificate structure containing the required data about subject, issuer, validity etc.

References mixconfig.panels.CertPanel.m_lblSubjectKeyIdentifier, and mixconfig.panels.CertPanel.m_textCertValidity.

Referenced by mixconfig.panels.CertPanel.setCert(), and mixconfig.panels.CertPanel.setCertificate().

void mixconfig.panels.CertPanel.clearCertInfo (  )  [private]

void mixconfig.panels.CertPanel.stateChanged ( ChangeEvent  arg0  ) 

String mixconfig.panels.CertPanel.getCertName (  ) 

Return the title that is shown in the border

References mixconfig.panels.CertPanel.m_name.

Referenced by mixconfig.tools.EmailComposer.composeEmail().

static Vector<CertPanel> mixconfig.panels.CertPanel.getCertPanels (  )  [static]

Return the vector containing all CertPanels

References mixconfig.panels.CertPanel.ms_certpanels.


Member Data Documentation

final String mixconfig.panels.CertPanel.STRING_ZERO = new String(new char[]{0}) [static, private]

A String that contains a single char with value 0

Referenced by mixconfig.panels.CertPanel.setCertificate().

CertificateStore mixconfig.panels.CertPanel.m_trustedCertificates [static, private]

final String mixconfig.panels.CertPanel.CERTPATH = "certificates/" [static, private]

final String mixconfig.panels.CertPanel.CERTPATH_MIX = CERTPATH + "acceptedMixCAs/" [static]

final String mixconfig.panels.CertPanel.CERTPATH_PAYMENT = CERTPATH + "acceptedPaymentInstances/" [static]

final String mixconfig.panels.CertPanel.CERTPATH_TERMS = CERTPATH + "acceptedTaCTemplates/" [static]

final String mixconfig.panels.CertPanel.CERTPATH_INFOSERVICES = CERTPATH + "acceptedInfoServiceCAs/" [static]

final String mixconfig.panels.CertPanel.CERT_VALID = "cert.gif" [static, private]

final String mixconfig.panels.CertPanel.CERT_INVALID = "certinvalid.gif" [static, private]

final String mixconfig.panels.CertPanel.CERT_VALID_INACTIVE = "certinactive.gif" [static, private]

final String mixconfig.panels.CertPanel.CERT_INVALID_INACTIVE = "certinvalidinactive.gif" [static, private]

final String mixconfig.panels.CertPanel.CERT_DISABLED = "certdisabled.gif" [static, private]

final String mixconfig.panels.CertPanel.MSG_MANDATORY_ALGO = CertPanel.class.getName() + "_mandatoryAlgorithm" [static, private]

final String mixconfig.panels.CertPanel.MSG_CERT_TYPE_UNKNOWN = CertPanel.class.getName() + "_certTypeUnknown" [static, private]

final String mixconfig.panels.CertPanel.MSG_CONFIRM_DELETION = CertPanel.class.getName() + "_confirmDeletion" [static, private]

final String mixconfig.panels.CertPanel.MSG_CHOOSE_LOAD_METHOD = CertPanel.class.getName() + "_chooseLoadMethod" [static, private]

final String mixconfig.panels.CertPanel.MSG_CHOOSE_SAVE_METHOD = CertPanel.class.getName() + "_chooseSaveMethod" [static, private]

final String mixconfig.panels.CertPanel.MSG_CHOOSE_CERT_TYPE = CertPanel.class.getName() + "_chooseCertType" [static, private]

final String mixconfig.panels.CertPanel.MSG_NO_PRIVATE_CERT = CertPanel.class.getName() + "_noPrivateCert" [static, private]

Vector<CertPanel> mixconfig.panels.CertPanel.ms_certpanels = new Vector<CertPanel>() [static, private]

boolean mixconfig.panels.CertPanel.m_autoSign = false [static, private]

JAPDialog.ILinkedInformation mixconfig.panels.CertPanel.m_linkedInformation [private]

A text field for the validity end date TextPane for showing the SubjectKeyIdentifier

Referenced by mixconfig.panels.CertPanel.CertPanel(), mixconfig.panels.CertPanel.clearCertInfo(), and mixconfig.panels.CertPanel.setCertInfo().

boolean mixconfig.panels.CertPanel.m_bCertIsPKCS12 = false [private]

ICertificate mixconfig.panels.CertPanel.m_cert [private]

An additional certificate for the verification

Referenced by mixconfig.panels.CertPanel.isCertificateVerifyable(), and mixconfig.panels.CertPanel.setAdditionalVerifier().

The password for the private certificate (null if the certificate is an X.509 public certificate)

Referenced by mixconfig.panels.CertPanel.changePasswd(), mixconfig.panels.CertPanel.getPrivateCertPassword(), mixconfig.panels.CertPanel.importPrivCert(), and mixconfig.panels.CertPanel.setCertificate().

The name of this cert that is shown in the titled border

Referenced by mixconfig.panels.CertPanel.CertPanel(), and mixconfig.panels.CertPanel.getCertName().

The validator for newly generated certificates.

See also:
mixconfig.CertPanel.CertCreationValidator

Referenced by mixconfig.panels.CertPanel.changePasswd(), mixconfig.panels.CertPanel.enableButtons(), mixconfig.panels.CertPanel.generateNewCert(), and mixconfig.panels.CertPanel.setCertCreationValidator().

Optional component, may be null; stores the current view of the stored certificate.

Referenced by mixconfig.panels.CertPanel.fireStateChanged(), mixconfig.panels.CertPanel.getCertificateView(), and mixconfig.panels.CertPanel.setCertificateView().

Vector<ChangeListener> mixconfig.panels.CertPanel.m_changeListeners = new Vector<ChangeListener>() [private]

The list of objects that listen to ChangeEvents from this object

Referenced by mixconfig.panels.CertPanel.addChangeListener(), and mixconfig.panels.CertPanel.fireStateChanged().


The documentation for this class was generated from the following file:

Generated on Mon Nov 16 23:24:47 2009 for MixConfig by  doxygen 1.5.6