public ConfigDialog(QWidget parent) {
    super(parent);
    contentsWidget = new QListWidget(this);
    contentsWidget.setViewMode(QListView.ViewMode.IconMode);
    contentsWidget.setIconSize(new QSize(96, 84));
    contentsWidget.setMovement(QListView.Movement.Static);
    contentsWidget.setMaximumWidth(128);
    contentsWidget.setSpacing(12);

    pagesWidget = new QStackedWidget(this);
    pagesWidget.addWidget(new ConfigurationPage(this));
    pagesWidget.addWidget(new UpdatePage(this));
    pagesWidget.addWidget(new QueryPage(this));

    QPushButton closeButton = new QPushButton(tr("Close"));

    createIcons();
    contentsWidget.setCurrentRow(0);

    closeButton.clicked.connect(this, "close()");

    QHBoxLayout horizontalLayout = new QHBoxLayout();
    horizontalLayout.addWidget(contentsWidget);
    horizontalLayout.addWidget(pagesWidget, 1);

    QHBoxLayout buttonsLayout = new QHBoxLayout();
    buttonsLayout.addStretch(1);
    buttonsLayout.addWidget(closeButton);

    QVBoxLayout mainLayout = new QVBoxLayout();
    mainLayout.addLayout(horizontalLayout);
    mainLayout.addStretch(1);
    mainLayout.addSpacing(12);
    mainLayout.addLayout(buttonsLayout);
    setLayout(mainLayout);

    setWindowTitle(tr("Config Dialog"));
    setWindowIcon(new QIcon("classpath:com/trolltech/images/qt-logo.png"));
  }
 protected void changePage(QListWidgetItem current, QListWidgetItem previous) {
   pagesWidget.setCurrentIndex(contentsWidget.row(current));
 }